diff options
Diffstat (limited to 'src/junit/com/jogamp/common/util')
5 files changed, 49 insertions, 511 deletions
diff --git a/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java b/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java deleted file mode 100644 index 3369afd..0000000 --- a/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.jogamp.common.util; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; - -import org.junit.Assert; -import org.junit.Test; - -import com.jogamp.common.util.IOUtil; -import com.jogamp.junit.util.JunitTracer; - -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class TestIOUtilURICompose extends JunitTracer { - - @Test - public void test01URLCompositioning() throws IOException, URISyntaxException { - testURNCompositioning("file:///rootDir/file1.txt"); - testURNCompositioning("file://host/rootDir/file1.txt"); - testURNCompositioning("jar:file:/web1/file1.jar!/rootDir/file1.txt"); - testURNCompositioning("asset:gluegen-test/info.txt"); - testURNCompositioning("asset:/gluegen-test/info.txt"); - testURNCompositioning("http://domain.com/web1/index.html?lala=23&lili=24#anchor"); - testURNCompositioning("http://domain.com:1234/web1/index.html?lala=23&lili=24#anchor"); - - final URI file1URI = new URI("asset:jar:file:/web1/file1.jar!/rootDir/file1.txt"); - testURICompositioning(file1URI); - testURICompositioning(file1URI, new URI("asset:jar:file:/web1/file1.jar!/rootDir/./file1.txt")); - testURICompositioning(file1URI, new URI("asset:jar:file:/web1/file1.jar!/rootDir/dummyParent/../file1.txt")); - - final URL file1URL = new URL("asset:jar:file:/web1/file1.jar!/rootDir/file1.txt"); - testURLCompositioning(file1URL); - testURLCompositioning(file1URL, new URL("asset:jar:file:/web1/file1.jar!/rootDir/./file1.txt")); - testURLCompositioning(file1URL, new URL("asset:jar:file:/web1/file1.jar!/rootDir/dummyParent/../file1.txt")); - } - - static void testURNCompositioning(final String urn) throws MalformedURLException, URISyntaxException { - testURICompositioning( new URI(urn) ); - testURLCompositioning( new URL(urn) ); - } - - static void testURICompositioning(final URI uri) throws MalformedURLException, URISyntaxException { - testURICompositioning(uri, uri); - } - static void testURICompositioning(final URI refURI, final URI uri1) throws MalformedURLException, URISyntaxException { - final String scheme = uri1.getScheme(); - final String ssp = uri1.getRawSchemeSpecificPart(); - final String fragment = uri1.getRawFragment(); - - System.err.println("scheme <"+scheme+">, ssp <"+ssp+">, fragment <"+fragment+">"); - final URI uri2 = IOUtil.compose(scheme, ssp, null, fragment); - - System.err.println("URL-equals: "+refURI.equals(uri2)); - System.err.println("URL-ref : <"+refURI+">"); - System.err.println("URL-orig : <"+uri1+">"); - System.err.println("URL-comp : <"+uri2+">"); - Assert.assertEquals(refURI, uri2); - } - - static void testURLCompositioning(final URL url) throws MalformedURLException, URISyntaxException { - testURLCompositioning(url, url); - } - static void testURLCompositioning(final URL refURL, final URL url1) throws MalformedURLException, URISyntaxException { - final URI uri1 = url1.toURI(); - final String scheme = uri1.getScheme(); - final String ssp = uri1.getRawSchemeSpecificPart(); - final String fragment = uri1.getRawFragment(); - - System.err.println("scheme <"+scheme+">, ssp <"+ssp+">, fragment <"+fragment+">"); - final URI uri2 = IOUtil.compose(scheme, ssp, null, fragment); - - System.err.println("URL-equals(1): "+refURL.toURI().equals(uri2)); - System.err.println("URL-equals(2): "+refURL.equals(uri2.toURL())); - System.err.println("URL-same : "+refURL.sameFile(uri2.toURL())); - System.err.println("URL-ref : <"+refURL+">"); - System.err.println("URL-orig : <"+url1+">"); - System.err.println("URL-comp : <"+uri2+">"); - Assert.assertEquals(refURL.toURI(), uri2); - Assert.assertEquals(refURL, uri2.toURL()); - Assert.assertTrue(refURL.sameFile(uri2.toURL())); - } - - public static void main(final String args[]) throws IOException { - final String tstname = TestIOUtilURICompose.class.getName(); - org.junit.runner.JUnitCore.main(tstname); - } -} diff --git a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java b/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java deleted file mode 100644 index 66dbacf..0000000 --- a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java +++ /dev/null @@ -1,393 +0,0 @@ -package com.jogamp.common.util; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; - -import jogamp.common.os.PlatformPropsImpl; - -import org.junit.Assert; -import org.junit.Test; - -import com.jogamp.common.net.URIDumpUtil; -import com.jogamp.common.os.Platform; -import com.jogamp.common.util.IOUtil; -import com.jogamp.junit.util.JunitTracer; - -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class TestIOUtilURIHandling extends JunitTracer { - - // Bug 908, issues w/ windows file path char: $ ^ ~ # [ ] - - public static final String[][] uriHttpSArray = new String[][] { - new String[] {"http://localhost/gluegen/build-x86_64/gluegen-rt.jar"}, - - new String[] {"http://localhost/gluegen/"+'\u0394'+"/gluegen-rt.jar"}, - - new String[] {"http://localhost/gluegen/build-x86_64%20lala/gluegen-rt.jar"}, - - new String[] {"http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"}, - - new String[] {"jar:http://localhost/gluegen/build-x86_64/gluegen-rt.jar!/"}, - - new String[] {"jar:http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"}, - - new String[] {"jar:http://localhost/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:http://localhost/gluegen/R%23/gluegen-rt.jar!/"}, - - new String[] {"jar:http://localhost/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"}, - }; - - public static final String[][] uriFileSArrayUnix = new String[][] { - new String[] {"file:/gluegen/build-x86_64/gluegen-rt.jar"}, - - new String[] {"file:/gluegen/"+'\u0394'+"/gluegen-rt.jar"}, - - new String[] {"file:/gluegen/build-x86_64%20lala/gluegen-rt.jar"}, - - new String[] {"file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"}, - - new String[] {"jar:file:/gluegen/build-x86_64/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file://filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file:/gluegen/R%23/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"}, - }; - - public static final String[][] uriFileSArrayWindows = new String[][] { - new String[] {"file:/C:/gluegen/build-x86_64/gluegen-rt.jar"}, - new String[] {"file:/C%3A/gluegen/build-x86_64/gluegen-rt.jar"}, - - new String[] {"file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar"}, - - new String[] {"file:/C:/gluegen/build-x86_64%20lala/gluegen-rt.jar"}, - - new String[] {"file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"}, - - new String[] {"jar:file:/C:/gluegen/build-x86_64/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/C:/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - new String[] {"jar:file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file:///C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file://filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"}, - - new String[] {"jar:file:/C:/gluegen/R%23/gluegen-rt.jar!/"}, - - new String[] {"jar:file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"}, - }; - - public static final String[][] fileSArrayUnix = new String[][] { - new String[] {"/gluegen/build-x86_64/gluegen-rt.jar", - "file:/gluegen/build-x86_64/gluegen-rt.jar", - "/gluegen/build-x86_64/gluegen-rt.jar"}, - - new String[] {"/gluegen/"+'\u0394'+"/gluegen-rt.jar", - "file:/gluegen/"+'\u0394'+"/gluegen-rt.jar", - "/gluegen/"+'\u0394'+"/gluegen-rt.jar"}, - - new String[] {"/gluegen/build-x86_64 lala/gluegen-rt.jar", - "file:/gluegen/build-x86_64%20lala/gluegen-rt.jar", - "/gluegen/build-x86_64 lala/gluegen-rt.jar"}, - - new String[] {"/gluegen/build-x86_64 öä lala/gluegen-rt.jar", - "file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "/gluegen/build-x86_64 öä lala/gluegen-rt.jar"}, - - new String[] {"/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar", - // "file:/gluegen/A%24/B%5E/C%7E/D%23/E%5B/F%5D/gluegen-rt.jar", // goal w/ new Uri class - "file:/gluegen/A$/B%5E/C~/D%23/E%5B/F%5D/gluegen-rt.jar", // current Java URI/URL decoding - "/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar" }, // goal w/ new Uri class - - new String[] {"/gluegen/$/^/~/#/[/]/gluegen-rt.jar", - // "file:/gluegen/%24/%5E/%7E/%23/%5B/%5D/gluegen-rt.jar", - "file:/gluegen/$/%5E/~/%23/%5B/%5D/gluegen-rt.jar", // current Java URI/URL decoding - "/gluegen/$/^/~/#/[/]/gluegen-rt.jar" }, - }; - - public static final String[][] fileSArrayWindows = new String[][] { - new String[] {"C:/gluegen/build-x86_64/gluegen-rt.jar", - // "file:/C%3A/gluegen/build-x86_64/gluegen-rt.jar", - "file:/C:/gluegen/build-x86_64/gluegen-rt.jar", - "C:\\gluegen\\build-x86_64\\gluegen-rt.jar"}, - - new String[] {"C:/gluegen/"+'\u0394'+"/gluegen-rt.jar", - // "file:/C%3A/gluegen/"+'\u0394'+"/gluegen-rt.jar", - "file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar", - "C:\\gluegen\\"+'\u0394'+"\\gluegen-rt.jar"}, - - new String[] {"C:/gluegen/build-x86_64 lala/gluegen-rt.jar", - // "file:/C%3A/gluegen/build-x86_64%20lala/gluegen-rt.jar", - "file:/C:/gluegen/build-x86_64%20lala/gluegen-rt.jar", - "C:\\gluegen\\build-x86_64 lala\\gluegen-rt.jar"}, - - new String[] {"C:/gluegen/build-x86_64 öä lala/gluegen-rt.jar", - // "file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"}, - - new String[] {"C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar", - // "file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"}, - - new String[] {"\\\\filehost\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar", - "file:////filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar", - "\\\\filehost\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"}, - - new String[] {"C:/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar", - // "file:/C%3A/gluegen/A%24/B%5E/C%7E/D%23/E%5B/F%5D/gluegen-rt.jar", - "file:/C:/gluegen/A$/B%5E/C~/D%23/E%5B/F%5D/gluegen-rt.jar", - "C:\\gluegen\\A$\\B^\\C~\\D#\\E[\\F]\\gluegen-rt.jar" }, - - new String[] {"C:/gluegen/$/^/~/#/[/]/gluegen-rt.jar", - // "file:/C%3A/gluegen/%24/%5E/%7E/%23/%5B/%5D/gluegen-rt.jar", - "file:/C:/gluegen/$/%5E/~/%23/%5B/%5D/gluegen-rt.jar", // current Java URI/URL decoding - "C:\\gluegen\\$\\^\\~\\#\\[\\]\\gluegen-rt.jar" }, - }; - - @Test - public void test00BasicCoding() throws IOException, URISyntaxException { - final String string = "Hallo Welt öä"; - System.err.println("sp1 "+string); - final File file = new File(string); - System.err.println("file "+file); - System.err.println("file.path.dec "+file.getPath()); - System.err.println("file.path.abs "+file.getAbsolutePath()); - System.err.println("file.path.can "+file.getCanonicalPath()); - final URI uri0 = file.toURI(); - System.err.println("uri0.string: "+uri0.toString()); - System.err.println("uri0.path : "+uri0.getPath()); - System.err.println("uri0.ascii : "+uri0.toASCIIString()); - boolean ok = true; - { - final URI uri1 = IOUtil.toURISimple(file); - final boolean equalString= uri0.toString().equals(uri1.toString()); - final boolean equalPath = uri0.getPath().equals(uri1.getPath()); - final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString()); - System.err.println("uri1.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR")); - System.err.println("uri1.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR")); - System.err.println("uri1.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR")); - ok = equalString && equalPath && equalASCII && ok; - } - { - final String s2 = IOUtil.slashify(file.getAbsolutePath(), true /* startWithSlash */, file.isDirectory() /* endWithSlash */); - System.err.println("uri2.slashify: "+s2); - { - // Expected !equals due to double-escaping of space %20 -> %25%20 - // Double escaping is due to IOUtil.encodeToURI(s2). - @SuppressWarnings("deprecation") - final String s3 = IOUtil.encodeToURI(s2); - System.err.println("uri2.encoded: "+s3); - final URI uri1 = new URI(IOUtil.FILE_SCHEME, null, s3, null); - final boolean equalString= uri0.toString().equals(uri1.toString()); - final boolean equalPath = uri0.getPath().equals(uri1.getPath()); - final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString()); - System.err.println("uri2.string: "+uri1.toString()+" - "+(equalString?"ERROR EQUAL":"OK NOT_EQUAL")); - System.err.println("uri2.path : "+uri1.getPath()+" - "+(equalPath?"ERROR EQUAL":"OK NOT_EQUAL")); - System.err.println("uri2.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"ERROR EQUAL":"OK NOT_EQUAL")); - ok = !equalString && !equalPath && !equalASCII && ok; - } - final URI uri1 = new URI(IOUtil.FILE_SCHEME, null, s2, null); - final boolean equalString= uri0.toString().equals(uri1.toString()); - final boolean equalPath = uri0.getPath().equals(uri1.getPath()); - final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString()); - System.err.println("uri2.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR")); - System.err.println("uri2.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR")); - System.err.println("uri2.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR")); - ok = equalString && equalPath && equalASCII && ok; - } - { - final String s2 = "/"+string; - System.err.println("uri3.orig: "+s2); - final URI uri1 = new URI(IOUtil.FILE_SCHEME, s2, null); - final String rString = "file:/Hallo%20Welt%20öä"; - final String rPath = s2; - final String rASCII = "file:/Hallo%20Welt%20%C3%B6%C3%A4"; - final boolean equalString= rString.equals(uri1.toString()); - final boolean equalPath = rPath.equals(uri1.getPath()); - final boolean equalASCII= rASCII.equals(uri1.toASCIIString()); - System.err.println("uri3.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR")); - System.err.println("uri3.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR")); - System.err.println("uri3.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR")); - ok = equalString && equalPath && equalASCII && ok; - } - { - final String s2 = "//lala.org/"+string; - System.err.println("uri4.orig: "+s2); - final URI uri1 = new URI(IOUtil.HTTP_SCHEME, s2, null); - final String rString = "http://lala.org/Hallo%20Welt%20öä"; - final String rPath = "/"+string; - final String rASCII = "http://lala.org/Hallo%20Welt%20%C3%B6%C3%A4"; - final boolean equalString= rString.equals(uri1.toString()); - final boolean equalPath = rPath.equals(uri1.getPath()); - final boolean equalASCII= rASCII.equals(uri1.toASCIIString()); - System.err.println("uri4.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR")); - System.err.println("uri4.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR")); - System.err.println("uri4.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR")); - ok = equalString && equalPath && equalASCII && ok; - } - Assert.assertTrue("One or more errors occured see stderr above", ok); - } - - @Test - public void test01HttpURI2URL() throws IOException, URISyntaxException { - testURI2URL(getSimpleTestName("."), uriHttpSArray); - } - - @Test - public void test02FileUnixURI2URL() throws IOException, URISyntaxException { - testURI2URL(getSimpleTestName("."), uriFileSArrayUnix); - } - - @Test - public void test03FileWindowsURI2URL() throws IOException, URISyntaxException { - testURI2URL(getSimpleTestName("."), uriFileSArrayWindows); - } - - @Test - public void test04FileUnixURI2URL() throws IOException, URISyntaxException { - if( Platform.OSType.WINDOWS != PlatformPropsImpl.OS_TYPE ) { - testFile2URI(getSimpleTestName("."), fileSArrayUnix); - } - } - - @Test - public void test05FileWindowsURI2URL() throws IOException, URISyntaxException { - if( Platform.OSType.WINDOWS == PlatformPropsImpl.OS_TYPE ) { - testFile2URI(getSimpleTestName("."), fileSArrayWindows); - } - } - - static void testURI2URL(final String testname, final String[][] uriSArray) throws IOException, URISyntaxException { - boolean ok = true; - for(int i=0; i<uriSArray.length; i++) { - final String[] uriSPair = uriSArray[i]; - final String uriSource = uriSPair[0]; - System.err.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS "+testname+": "+(i+1)+"/"+uriSArray.length); - ok = testURI2URL(uriSource) && ok; - System.err.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE "+testname+": "+(i+1)+"/"+uriSArray.length); - } - Assert.assertTrue("One or more errors occured see stderr above", ok); - } - - static boolean testURI2URL(final String uriSource) throws IOException, URISyntaxException { - final URI uri0 = new URI(uriSource); - URIDumpUtil.showURI(uri0); - - final String expected1 = uriSource.toString(); - final String expected2 = expected1.replaceFirst("///", "/"); - System.err.println("expected__s0: "+uriSource); - System.err.println("expected__d1: "+expected1); - System.err.println("expected__d2: "+expected2); - - final URL actualURL = uri0.toURL(); - final String actualURLStr = actualURL.toString(); - final boolean equalsURLSrc = uriSource.equals(actualURLStr); - final boolean equalsURLDec1 = expected1.equals(actualURLStr); - final boolean equalsURLDec2 = expected2.equals(actualURLStr); - final boolean equalsURL = equalsURLSrc || equalsURLDec1 || equalsURLDec2; - System.err.println("actual : "+actualURLStr+" - "+(equalsURL?"OK":"ERROR")+ - " - equalSrc "+equalsURLSrc+", equalDec1 "+equalsURLDec1+", equalDec2 "+equalsURLDec2); - - final boolean ok = equalsURL; - - // now test open .. - Throwable t = null; - URLConnection con = null; - try { - con = actualURL.openConnection(); - } catch (final Throwable _t) { - t = _t; - } - if( null != t ) { - System.err.println("XXX: "+t.getClass().getName()+": "+t.getMessage()); - t.printStackTrace(); - } else { - System.err.println("XXX: No openConnection() failure"); - System.err.println("XXX: "+con); - } - return ok; - } - - static void testFile2URI(final String testname, final String[][] uriSArray) throws IOException, URISyntaxException { - boolean ok = true; - for(int i=0; i<uriSArray.length; i++) { - final String[] uriSPair = uriSArray[i]; - final String uriSource = uriSPair[0]; - final String uriEncExpected= uriSPair[1]; - final String fileExpected= uriSPair[2]; - System.err.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS "+testname+": "+(i+1)+"/"+uriSArray.length); - ok = testFile2URI(uriSource, uriEncExpected, fileExpected) && ok; - System.err.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE "+testname+": "+(i+1)+"/"+uriSArray.length); - } - Assert.assertTrue("One or more errors occured see stderr above", ok); - } - - static boolean testFile2URI(final String fileSource, final String uriEncExpected, final String fileExpected) throws IOException, URISyntaxException { - System.err.println("fileSource: "+fileSource); - final File file = new File(fileSource); - System.err.println("file: "+file.getAbsolutePath()); - - final URI uri0 = IOUtil.toURISimple(file); - final URI uri1 = file.toURI(); - URIDumpUtil.showURI(uri0); - URIDumpUtil.showURI(uri1); - - final URL actualUrl = uri1.toURL(); - final String actualFileS = IOUtil.decodeURIIfFilePath(uri1); - final boolean equalsFilePath = fileExpected.equals(actualFileS); - System.err.println("expected_path: "+fileExpected); - System.err.println("actual___file-path: "+actualFileS+" - "+(equalsFilePath?"OK":"ERROR")); - final boolean equalsEncUri = uriEncExpected.equals(uri1.toString()); - System.err.println("expected__encUri: "+uriEncExpected); - System.err.println("actual_______Uri: "+uri1.toString()+" - "+(equalsEncUri?"OK":"ERROR")); - final boolean ok = equalsEncUri && equalsFilePath; - - System.err.println("actual_______URL: "+actualUrl.toExternalForm()); - - // now test open .. - Throwable t = null; - URLConnection con = null; - try { - con = actualUrl.openConnection(); - } catch (final Throwable _t) { - t = _t; - } - if( null != t ) { - System.err.println("XXX: "+t.getClass().getName()+": "+t.getMessage()); - t.printStackTrace(); - } else { - System.err.println("XXX: No openConnection() failure"); - System.err.println("XXX: "+con); - } - return ok; - } - - public static void main(final String args[]) throws IOException { - final String tstname = TestIOUtilURIHandling.class.getName(); - org.junit.runner.JUnitCore.main(tstname); - } -} diff --git a/src/junit/com/jogamp/common/util/TestJarUtil.java b/src/junit/com/jogamp/common/util/TestJarUtil.java index db5c268..06a2e43 100644 --- a/src/junit/com/jogamp/common/util/TestJarUtil.java +++ b/src/junit/com/jogamp/common/util/TestJarUtil.java @@ -30,7 +30,6 @@ package com.jogamp.common.util; import java.io.IOException; import java.net.MalformedURLException; -import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; @@ -46,6 +45,8 @@ import org.junit.BeforeClass; import org.junit.Test; import com.jogamp.common.GlueGenVersion; +import com.jogamp.common.net.URIDumpUtil; +import com.jogamp.common.net.Uri; import com.jogamp.common.os.AndroidVersion; import com.jogamp.common.util.cache.TempCacheReg; import com.jogamp.common.util.cache.TempFileCache; @@ -97,7 +98,7 @@ public class TestJarUtil extends JunitTracer { } } - void validateJarFileURL(final URI jarFileURI) throws IllegalArgumentException, IOException, URISyntaxException { + void validateJarFileURL(final Uri jarFileURI) throws IllegalArgumentException, IOException, URISyntaxException { Assert.assertNotNull(jarFileURI); final URL jarFileURL = jarFileURI.toURL(); final URLConnection aURLc = jarFileURL.openConnection(); @@ -110,18 +111,27 @@ public class TestJarUtil extends JunitTracer { } void validateJarUtil(final String expJarName, final String clazzBinName, final ClassLoader cl) throws IllegalArgumentException, IOException, URISyntaxException { - final String jarName= JarUtil.getJarBasename(clazzBinName, cl); + final Uri.Encoded expJarNameE = Uri.Encoded.cast(expJarName); + final Uri.Encoded jarName= JarUtil.getJarBasename(clazzBinName, cl); Assert.assertNotNull(jarName); - Assert.assertEquals(expJarName, jarName); + Assert.assertEquals(expJarNameE, jarName); - final URI jarSubURI = JarUtil.getJarSubURI(clazzBinName, cl); - Assert.assertNotNull(jarSubURI); - final URL jarSubURL= jarSubURI.toURL(); + final Uri jarUri = JarUtil.getJarUri(clazzBinName, cl); + Assert.assertNotNull(jarUri); + System.err.println("1 - jarUri:"); + URIDumpUtil.showUri(jarUri); + + final Uri jarSubUri = jarUri.getContainedUri(); + Assert.assertNotNull(jarSubUri); + System.err.println("2 - jarSubUri:"); + URIDumpUtil.showUri(jarSubUri); + + final URL jarSubURL= jarSubUri.toURL(); final URLConnection urlConn = jarSubURL.openConnection(); Assert.assertTrue("jarSubURL has zero content: "+jarSubURL, urlConn.getContentLength()>0); System.err.println("URLConnection of jarSubURL: "+urlConn); - final URI jarFileURL = JarUtil.getJarFileURI(clazzBinName, cl); + final Uri jarFileURL = JarUtil.getJarFileUri(clazzBinName, cl); validateJarFileURL(jarFileURL); final JarFile jarFile = JarUtil.getJarFile(clazzBinName, cl); @@ -146,10 +156,10 @@ public class TestJarUtil extends JunitTracer { final ClassLoader rootCL = this.getClass().getClassLoader(); // Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache - TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL)); + TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL)); // Fetch and load the contained "ClassInJar1.jar" - final URL ClassInJar1_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("ClassInJar1.jar")).toURL(); + final URL ClassInJar1_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("ClassInJar1.jar")).toURL(); final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar1_jarFileURL }, rootCL); Assert.assertNotNull(cl); validateJarUtil("ClassInJar1.jar", "ClassInJar1", cl); @@ -167,10 +177,10 @@ public class TestJarUtil extends JunitTracer { final ClassLoader rootCL = this.getClass().getClassLoader(); // Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache - TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL)); + TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL)); // Fetch and load the contained "ClassInJar1.jar" - final URL ClassInJar2_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("sub/ClassInJar2.jar")).toURL(); + final URL ClassInJar2_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("sub/ClassInJar2.jar")).toURL(); final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar2_jarFileURL }, rootCL); Assert.assertNotNull(cl); validateJarUtil("ClassInJar2.jar", "ClassInJar2", cl); @@ -231,7 +241,7 @@ public class TestJarUtil extends JunitTracer { public URL resolve( final URL url ) { if( url.getProtocol().equals("bundleresource") ) { try { - return new URL( IOUtil.JAR_SCHEME, "", url.getFile() ); + return new URL( Uri.JAR_SCHEME, "", url.getFile() ); } catch(final MalformedURLException e) { return url; } @@ -244,10 +254,10 @@ public class TestJarUtil extends JunitTracer { final ClassLoader rootCL = new CustomClassLoader(); // Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache - TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL)); + TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL)); // Fetch and load the contained "ClassInJar1.jar" - final URL ClassInJar2_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("sub/ClassInJar2.jar")).toURL(); + final URL ClassInJar2_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("sub/ClassInJar2.jar")).toURL(); final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar2_jarFileURL }, rootCL); Assert.assertNotNull(cl); validateJarUtil("ClassInJar2.jar", "ClassInJar2", cl); diff --git a/src/junit/com/jogamp/common/util/TestTempJarCache.java b/src/junit/com/jogamp/common/util/TestTempJarCache.java index ce06e9a..474a17a 100644 --- a/src/junit/com/jogamp/common/util/TestTempJarCache.java +++ b/src/junit/com/jogamp/common/util/TestTempJarCache.java @@ -29,10 +29,8 @@ package com.jogamp.common.util; import java.io.File; - import java.io.IOException; import java.lang.reflect.Method; -import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; @@ -45,7 +43,8 @@ import org.junit.Test; import org.junit.runners.MethodSorters; import com.jogamp.common.GlueGenVersion; -import com.jogamp.common.jvm.JNILibLoaderBase; +import com.jogamp.common.net.URIDumpUtil; +import com.jogamp.common.net.Uri; import com.jogamp.common.os.AndroidVersion; import com.jogamp.common.os.NativeLibrary; import com.jogamp.common.os.Platform; @@ -177,7 +176,7 @@ public class TestTempJarCache extends JunitTracer { if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; } final ClassLoader cl = getClass().getClassLoader(); - TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI(GlueGenVersion.class.getName(), cl)); + TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri(GlueGenVersion.class.getName(), cl)); File f0 = new File(TempJarCache.getTempFileCache().getTempDir(), "META-INF/MANIFEST.MF"); Assert.assertTrue(f0.exists()); @@ -197,14 +196,28 @@ public class TestTempJarCache extends JunitTracer { @Test public void testTempJarCache02AddNativeLibs() throws IOException, IllegalArgumentException, URISyntaxException { if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; } - final String nativeJarName = "gluegen-rt-natives-"+Platform.getOSAndArch()+".jar"; + final Uri.Encoded nativeJarName = Uri.Encoded.cast("gluegen-rt-natives-"+Platform.getOSAndArch()+".jar"); final String libBaseName = "gluegen-rt"; final ClassLoader cl = getClass().getClassLoader(); - URI jarUriRoot = JarUtil.getJarSubURI(TempJarCache.class.getName(), cl); - jarUriRoot = IOUtil.getURIDirname(jarUriRoot); + final Uri jarUri = JarUtil.getJarUri(TempJarCache.class.getName(), cl); + Assert.assertNotNull(jarUri); + System.err.println("1 - jarUri:"); + URIDumpUtil.showUri(jarUri); + + final Uri jarFileUri = jarUri.getContainedUri(); + Assert.assertNotNull(jarFileUri); + System.err.println("2 - jarFileUri:"); + URIDumpUtil.showUri(jarFileUri); + + final Uri jarFileDir = jarFileUri.getParent(); + Assert.assertNotNull(jarFileDir); + System.err.println("3 - jarFileDir:"); + URIDumpUtil.showUri(jarFileDir); - final URI nativeJarURI = JarUtil.getJarFileURI(jarUriRoot, nativeJarName); + final Uri nativeJarURI = JarUtil.getJarFileUri(jarFileDir, nativeJarName); + System.err.println("4 - nativeJarURI:"); + URIDumpUtil.showUri(nativeJarURI); TempJarCache.addNativeLibs(TempJarCache.class, nativeJarURI, null /* nativeLibraryPath */); final String libFullPath = TempJarCache.findLibrary(libBaseName); @@ -227,7 +240,7 @@ public class TestTempJarCache extends JunitTracer { @Test public void testTempJarCache04bDiffClassLoader() throws IOException, IllegalArgumentException, URISyntaxException { if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; } - final URL[] urls = new URL[] { JarUtil.getJarFileURI(TempJarCache.class.getName(), getClass().getClassLoader()).toURL() }; + final URL[] urls = new URL[] { JarUtil.getJarFileUri(TempJarCache.class.getName(), getClass().getClassLoader()).toURL() }; System.err.println("url: "+urls[0]); final ClassLoader cl2 = new TestClassLoader(urls, null); final ClassLoader cl3 = new TestClassLoader(urls, null); diff --git a/src/junit/com/jogamp/common/util/TestVersionSemantics.java b/src/junit/com/jogamp/common/util/TestVersionSemantics.java index 77d3b72..edc0dc2 100644 --- a/src/junit/com/jogamp/common/util/TestVersionSemantics.java +++ b/src/junit/com/jogamp/common/util/TestVersionSemantics.java @@ -67,8 +67,8 @@ import com.jogamp.junit.util.VersionSemanticsUtil; public class TestVersionSemantics extends JunitTracer { static final String jarFile = "gluegen-rt.jar"; static final VersionNumberString preVersionNumber = new VersionNumberString("2.2.0"); - // static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.NON_BACKWARD_COMPATIBLE; - static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER; + static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.NON_BACKWARD_COMPATIBLE; + // static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER; static final DiffCriteria diffCriteria = new SimpleDiffCriteria(); // static final DiffCriteria diffCriteria = new PublicDiffCriteria(); |