rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/compact/tck/ReaderTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 19 Nov 2014 19:32:00 +0100
changeset 1723 3a1f262311cf
parent 1260 rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/ReaderTest.java@fe3567c7b522
child 1787 ea12a3bb4b33
permissions -rw-r--r--
Separating compact profile tests into own project, so launcher.http can depend on compact profile JAR
     1 /**
     2  * Back 2 Browser Bytecode Translator
     3  * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://opensource.org/licenses/GPL-2.0.
    17  */
    18 package org.apidesign.bck2brwsr.compact.tck;
    19 
    20 import java.io.ByteArrayInputStream;
    21 import java.io.ByteArrayOutputStream;
    22 import java.io.IOException;
    23 import java.io.InputStreamReader;
    24 import java.io.OutputStreamWriter;
    25 import java.io.UnsupportedEncodingException;
    26 import java.util.Arrays;
    27 import org.apidesign.bck2brwsr.vmtest.Compare;
    28 import org.apidesign.bck2brwsr.vmtest.VMTest;
    29 import org.testng.annotations.Factory;
    30 
    31 /**
    32  *
    33  * @author Jaroslav Tulach <jtulach@netbeans.org>
    34  */
    35 public class ReaderTest {
    36     @Compare public String readUTFString() throws IOException {
    37         byte[] arr = { 
    38             (byte)-59, (byte)-67, (byte)108, (byte)117, (byte)-59, (byte)-91, 
    39             (byte)111, (byte)117, (byte)-60, (byte)-115, (byte)107, (byte)-61, 
    40             (byte)-67, (byte)32, (byte)107, (byte)-59, (byte)-81, (byte)-59, 
    41             (byte)-120 
    42         };
    43         ByteArrayInputStream is = new ByteArrayInputStream(arr);
    44         InputStreamReader r = new InputStreamReader(is, "UTF-8");
    45         return readReader(r);        
    46     }
    47 
    48     private String readReader(InputStreamReader r) throws IOException {
    49         StringBuilder sb = new StringBuilder();
    50         for (;;) {
    51             int ch = r.read();
    52             if (ch == -1) {
    53                 break;
    54             }
    55             sb.append((char)ch);
    56         }
    57         return sb.toString().toString();
    58     }
    59     @Compare public String stringToBytes() throws UnsupportedEncodingException {
    60         return Arrays.toString(YellowHorse.getBytes("UTF-8"));
    61     }
    62     private final String YellowHorse = "\u017dlu\u0165ou\u010dk\u00fd k\u016f\u0148";
    63     
    64     @Compare public String readAndWrite() throws Exception {
    65         ByteArrayOutputStream arr = new ByteArrayOutputStream();
    66         OutputStreamWriter w = new OutputStreamWriter(arr);
    67         w.write(YellowHorse);
    68         w.close();
    69         
    70         ByteArrayInputStream is = new ByteArrayInputStream(arr.toByteArray());
    71         InputStreamReader r = new InputStreamReader(is, "UTF-8");
    72         return readReader(r);
    73     }
    74     
    75     @Factory public static Object[] create() {
    76         return VMTest.create(ReaderTest.class);
    77     }
    78 }