1.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ResourcesTest.java Thu Oct 03 15:51:55 2013 +0200
1.2 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/ResourcesTest.java Sun Oct 20 20:36:03 2013 +0200
1.3 @@ -17,8 +17,10 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.tck;
1.6
1.7 +import java.io.IOException;
1.8 import java.io.InputStream;
1.9 import java.net.URL;
1.10 +import java.util.Enumeration;
1.11 import org.apidesign.bck2brwsr.vmtest.Compare;
1.12 import org.apidesign.bck2brwsr.vmtest.VMTest;
1.13 import org.testng.annotations.Factory;
1.14 @@ -28,27 +30,52 @@
1.15 * @author Jaroslav Tulach <jtulach@netbeans.org>
1.16 */
1.17 public class ResourcesTest {
1.18 + @Compare public String allManifests() throws Exception {
1.19 + Enumeration<URL> en = ClassLoader.getSystemResources("META-INF/MANIFEST.MF");
1.20 + assert en.hasMoreElements() : "Should have at least one manifest";
1.21 + String first = readString(en.nextElement().openStream());
1.22 + boolean different = false;
1.23 + int cnt = 1;
1.24 + while (en.hasMoreElements()) {
1.25 + URL url = en.nextElement();
1.26 + String now = readString(url.openStream());
1.27 + if (!first.equals(now)) {
1.28 + different = true;
1.29 + }
1.30 + cnt++;
1.31 + if (cnt > 500) {
1.32 + throw new IllegalStateException(
1.33 + "Giving up. First manifest:\n" + first +
1.34 + "\nLast manifest:\n" + now
1.35 + );
1.36 + }
1.37 + }
1.38 + assert different : "Not all manifests should look like first one:\n" + first;
1.39 + return "" + cnt;
1.40 + }
1.41
1.42 @Compare public String readResourceAsStream() throws Exception {
1.43 InputStream is = getClass().getResourceAsStream("Resources.txt");
1.44 - byte[] b = new byte[30];
1.45 - int len = is.read(b);
1.46 + return readString(is);
1.47 + }
1.48 +
1.49 + private String readString(InputStream is) throws IOException {
1.50 StringBuilder sb = new StringBuilder();
1.51 - for (int i = 0; i < len; i++) {
1.52 - sb.append((char)b[i]);
1.53 + byte[] b = new byte[512];
1.54 + for (;;) {
1.55 + int len = is.read(b);
1.56 + if (len == -1) {
1.57 + return sb.toString();
1.58 + }
1.59 + for (int i = 0; i < len; i++) {
1.60 + sb.append((char)b[i]);
1.61 + }
1.62 }
1.63 - return sb.toString();
1.64 }
1.65
1.66 @Compare public String readResourceAsStreamFromClassLoader() throws Exception {
1.67 InputStream is = getClass().getClassLoader().getResourceAsStream("org/apidesign/bck2brwsr/tck/Resources.txt");
1.68 - byte[] b = new byte[30];
1.69 - int len = is.read(b);
1.70 - StringBuilder sb = new StringBuilder();
1.71 - for (int i = 0; i < len; i++) {
1.72 - sb.append((char)b[i]);
1.73 - }
1.74 - return sb.toString();
1.75 + return readString(is);
1.76 }
1.77
1.78 @Compare public String toURIFromURL() throws Exception {