rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ResourcesTest.java
changeset 1723 3a1f262311cf
parent 1722 fd3a354d6e8f
child 1724 50ad005d1597
     1.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ResourcesTest.java	Sun Nov 09 10:36:08 2014 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,190 +0,0 @@
     1.4 -/**
     1.5 - * Back 2 Browser Bytecode Translator
     1.6 - * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     1.7 - *
     1.8 - * This program is free software: you can redistribute it and/or modify
     1.9 - * it under the terms of the GNU General Public License as published by
    1.10 - * the Free Software Foundation, version 2 of the License.
    1.11 - *
    1.12 - * This program is distributed in the hope that it will be useful,
    1.13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.15 - * GNU General Public License for more details.
    1.16 - *
    1.17 - * You should have received a copy of the GNU General Public License
    1.18 - * along with this program. Look for COPYING file in the top folder.
    1.19 - * If not, see http://opensource.org/licenses/GPL-2.0.
    1.20 - */
    1.21 -package org.apidesign.bck2brwsr.tck;
    1.22 -
    1.23 -import java.io.ByteArrayInputStream;
    1.24 -import java.io.Closeable;
    1.25 -import java.io.IOException;
    1.26 -import java.io.InputStream;
    1.27 -import java.net.URL;
    1.28 -import java.net.URLConnection;
    1.29 -import java.util.Enumeration;
    1.30 -import net.java.html.js.JavaScriptBody;
    1.31 -import org.apidesign.bck2brwsr.vmtest.BrwsrTest;
    1.32 -import org.apidesign.bck2brwsr.vmtest.Compare;
    1.33 -import org.apidesign.bck2brwsr.vmtest.VMTest;
    1.34 -import org.testng.annotations.Factory;
    1.35 -
    1.36 -/**
    1.37 - *
    1.38 - * @author Jaroslav Tulach <jtulach@netbeans.org>
    1.39 - */
    1.40 -public class ResourcesTest {
    1.41 -    @Compare public String allManifests() throws Exception {
    1.42 -        Enumeration<URL> en = ClassLoader.getSystemResources("META-INF/MANIFEST.MF");
    1.43 -        assert en.hasMoreElements() : "Should have at least one manifest";
    1.44 -        String first = readString(en.nextElement().openStream());
    1.45 -        boolean different = false;
    1.46 -        int cnt = 1;
    1.47 -        while (en.hasMoreElements()) {
    1.48 -            URL url = en.nextElement();
    1.49 -            String now = readString(url.openStream());
    1.50 -            if (!first.equals(now)) {
    1.51 -                different = true;
    1.52 -            }
    1.53 -            cnt++;
    1.54 -            if (cnt > 500) {
    1.55 -                throw new IllegalStateException(
    1.56 -                    "Giving up. First manifest:\n" + first + 
    1.57 -                    "\nLast manifest:\n" + now
    1.58 -                );
    1.59 -            }
    1.60 -        }
    1.61 -        assert different : "Not all manifests should look like first one:\n" + first;
    1.62 -        if (cnt > 40 && cnt < 50) {
    1.63 -            return "OK";
    1.64 -        } else {
    1.65 -            return "" + cnt;
    1.66 -        }
    1.67 -    }
    1.68 -    
    1.69 -    @Compare public String readResourceAsStream() throws Exception {
    1.70 -        InputStream is = getClass().getResourceAsStream("Resources.txt");
    1.71 -        return readString(is);
    1.72 -    }
    1.73 -    
    1.74 -    @Compare public String readResourceViaXMLHttpRequest() throws Exception {
    1.75 -        return readResourceViaXHR("Resources.txt", null);
    1.76 -    }
    1.77 -    
    1.78 -    @BrwsrTest public void xhrTestedInBrowser() throws Exception {
    1.79 -        boolean[] run = { false };
    1.80 -        readResourceViaXHR("Resources.txt", run);
    1.81 -        assert run[0] : "XHR really used in browser";
    1.82 -    }
    1.83 -
    1.84 -    @Compare public String readBinaryResourceViaXMLHttpRequest() throws Exception {
    1.85 -        return readResourceViaXHR("0xfe", null);
    1.86 -    }
    1.87 -
    1.88 -    private String readResourceViaXHR(final String res, boolean[] exec) throws IOException {
    1.89 -        URL url = getClass().getResource(res);
    1.90 -        URLConnection conn = url.openConnection();
    1.91 -        String java = readBytes(url.openStream());
    1.92 -        String java2 = readBytes(conn.getInputStream());
    1.93 -        assert java.equals(java2) : "Java:\n" + java + "\nConn:\n" + java2;
    1.94 -        
    1.95 -        URL url2 = conn.getURL();
    1.96 -        String java3 = readBytes(url.openStream());
    1.97 -        assert java.equals(java3) : "Java:\n" + java + "\nConnURL:\n" + java3;
    1.98 -        
    1.99 -        
   1.100 -        byte[] xhr = readXHR(url2.toExternalForm());
   1.101 -        if (xhr != null) {
   1.102 -            if (exec != null) {
   1.103 -                exec[0] = true;
   1.104 -            }
   1.105 -            String s = readBytes(new ByteArrayInputStream(xhr));
   1.106 -            assert java.equals(s) : "Java:\n" + java + "\nXHR:\n" + s;
   1.107 -            
   1.108 -            assert conn instanceof Closeable : "Can be closed";
   1.109 -            
   1.110 -            Closeable c = (Closeable) conn;
   1.111 -            c.close();
   1.112 -            
   1.113 -            byte[] xhr2 = null;
   1.114 -            try {
   1.115 -                xhr2 = readXHR(url2.toExternalForm());
   1.116 -            } catch (Throwable t) {
   1.117 -                // OK, expecting error
   1.118 -            }
   1.119 -            assert xhr2 == null : "Cannot read the URL anymore";
   1.120 -        }
   1.121 -        return java;
   1.122 -    }
   1.123 -
   1.124 -    @JavaScriptBody(args = { "url" }, body =
   1.125 -        "if (typeof XMLHttpRequest === 'undefined') return null;\n" +
   1.126 -        "var xhr = new XMLHttpRequest();\n" +
   1.127 -        "xhr.overrideMimeType('text\\/plain; charset=x-user-defined');\n" +
   1.128 -        "xhr.open('GET', url, false);\n" +
   1.129 -        "xhr.send();\n" +
   1.130 -        "if (xhr.status >= 300) throw 'Status: ' + xhr.status + ' ' + xhr.statusText;\n" +
   1.131 -        "var ret = []\n" +
   1.132 -        "for (var i = 0; i < xhr.responseText.length; i++) {\n" +
   1.133 -        "  var b = xhr.responseText.charCodeAt(i) & 0xff;\n" +
   1.134 -        "  if (b > 127) b -= 256;\n" +
   1.135 -        "  ret.push(b);\n" +
   1.136 -        "}\n" +
   1.137 -        "return ret;\n"
   1.138 -    )
   1.139 -    private static byte[] readXHR(String url) {
   1.140 -        return null;
   1.141 -    }
   1.142 -    
   1.143 -    @Compare public String readResourceViaConnection() throws Exception {
   1.144 -        final URL url = getClass().getResource("Resources.txt");
   1.145 -        String str = url.toExternalForm();
   1.146 -        int idx = str.indexOf("org/apidesign/bck2brwsr/tck");
   1.147 -        assert idx >= 0 : "Package name found in the URL name: " + str;
   1.148 -        InputStream is = url.openConnection().getInputStream();
   1.149 -        return readString(is);
   1.150 -    }
   1.151 -
   1.152 -    private String readString(InputStream is) throws IOException {
   1.153 -        StringBuilder sb = new StringBuilder();
   1.154 -        byte[] b = new byte[512];
   1.155 -        for (;;) { 
   1.156 -            int len = is.read(b);
   1.157 -            if (len == -1) {
   1.158 -                return sb.toString();
   1.159 -            }
   1.160 -            for (int i = 0; i < len; i++) {
   1.161 -                sb.append((char)b[i]);
   1.162 -            }
   1.163 -        }
   1.164 -    }
   1.165 -
   1.166 -    private String readBytes(InputStream is) throws IOException {
   1.167 -        StringBuilder sb = new StringBuilder();
   1.168 -        byte[] b = new byte[512];
   1.169 -        for (;;) { 
   1.170 -            int len = is.read(b);
   1.171 -            if (len == -1) {
   1.172 -                return sb.toString();
   1.173 -            }
   1.174 -            for (int i = 0; i < len; i++) {
   1.175 -                sb.append((int)b[i]).append(" ");
   1.176 -            }
   1.177 -        }
   1.178 -    }
   1.179 -
   1.180 -    @Compare public String readResourceAsStreamFromClassLoader() throws Exception {
   1.181 -        InputStream is = getClass().getClassLoader().getResourceAsStream("org/apidesign/bck2brwsr/tck/Resources.txt");
   1.182 -        return readString(is);
   1.183 -    }
   1.184 -    
   1.185 -    @Compare public String toURIFromURL() throws Exception {
   1.186 -        URL u = new URL("http://apidesign.org");
   1.187 -        return u.toURI().toString();
   1.188 -    }
   1.189 -    
   1.190 -    @Factory public static Object[] create() {
   1.191 -        return VMTest.create(ResourcesTest.class);
   1.192 -    }
   1.193 -}