vmtest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/ZipFileTest.java
branchemul
changeset 644 cfbd4eecb941
parent 640 693745d01b55
child 645 a947e379f161
     1.1 --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/ZipFileTest.java	Fri Feb 01 18:02:16 2013 +0100
     1.2 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/ZipFileTest.java	Fri Feb 01 18:42:07 2013 +0100
     1.3 @@ -53,6 +53,26 @@
     1.4          return ret;
     1.5      }
     1.6      
     1.7 +    @JavaScriptBody(args = { "res", "path" }, body = 
     1.8 +          "var myvm = new bck2brwsr(path);\n"
     1.9 +        + "var cls = myvm.loadClass('java.lang.String');\n"
    1.10 +        + "return cls.getClass__Ljava_lang_Class_2().getResourceAsStream__Ljava_io_InputStream_2Ljava_lang_String_2(res);\n"
    1.11 +    )
    1.12 +    private static native Object loadVMResource(String res, String...path);
    1.13 +
    1.14 +    @HttpResource(path = "/readAnEntry.jar", mimeType = "x-application/zip", content = "", resource="readAnEntry.zip")
    1.15 +    @BrwsrTest  public void canVmLoadResourceFromZip() throws IOException {
    1.16 +        Object res = loadVMResource("/my/main/file.txt", "http:/readAnEntry.jar");
    1.17 +        assert res instanceof InputStream : "Got array of bytes: " + res;
    1.18 +        InputStream is = (InputStream)res;
    1.19 +        
    1.20 +        byte[] arr = new byte[4096];
    1.21 +        int len = is.read(arr);
    1.22 +        
    1.23 +        final String ret = new String(arr, 0, len, "UTF-8");
    1.24 +
    1.25 +        assertEquals(ret, "Hello World!", "Can read the bytes");
    1.26 +    }
    1.27      
    1.28      private static void assertEquals(Object real, Object exp, String msg) {
    1.29          assert Objects.equals(exp, real) : msg + " exp: " + exp + " real: " + real;