diff -r 1e7ff3ba3666 -r ba912ef24b27 rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java Wed Apr 30 15:04:10 2014 +0200 @@ -0,0 +1,87 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package org.apidesign.vm4brwsr; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; + +/** + * + * @author Jaroslav Tulach + */ +public class Resources { + public static String loadKO() throws IOException { + InputStream is = Resources.class.getResourceAsStream("ko.js"); + return readIS(is, false); + } + + static String loadClazz() throws IOException { + InputStream is = Resources.class.getResourceAsStream("Bck2BrwsrToolkit.class"); + return readIS(is, false); + } + + private static String readIS(InputStream is, boolean asString) throws IOException { + if (is == null) { + return "No resource found!"; + } + byte[] arr = new byte[4092]; + int len = is.read(arr); + if (len < 5) { + return "No data read! Len: " + len; + } + + if (asString) { + return new String(arr, 0, len, "UTF-8").toString().toString(); + } + + StringBuilder sb = new StringBuilder(); + sb.append("["); + for (int i = 0; i < len; i++) { + sb.append(arr[i]).append(", "); + } + + return sb.toString().toString(); + } + static long bytesToLong(byte b1, byte b2, int shift) { + return (((long)b1 << 56) + + ((long)b2 & 255) << 48) >> shift; + } + + static String loadHello() throws IOException { + Enumeration en; + try { + en = Resources.class.getClassLoader().getResources("META-INF/ahoj"); + } catch (SecurityException ex) { + return "SecurityException"; + } + StringBuilder sb = new StringBuilder(); + while (en.hasMoreElements()) { + URL url = en.nextElement(); + sb.append(readIS(url.openStream(), true)); + } + return sb.toString().toString(); + } + static String loadJustHello() throws IOException { + URL url = Resources.class.getResource("/META-INF/ahoj"); + StringBuilder sb = new StringBuilder(); + sb.append(readIS(url.openStream(), true)); + return sb.toString().toString(); + } +}