summaryrefslogtreecommitdiffstats
path: root/src/junit/com/jogamp/common/util
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-11-28 12:50:12 +0100
committerSven Gothel <[email protected]>2013-11-28 12:50:12 +0100
commit67dd9498368f0250180528d4fa10a09854066fea (patch)
treed912a62139a600d5ef563bb773c79a51245797b6 /src/junit/com/jogamp/common/util
parent4c835f0337674a0181c43f448d44d961e27b2f54 (diff)
IOUtil.encodeToURI(): Only use method if required
Only use IOUtil.encodeToURI() if required, i.e. 'new URI(String)' but not 'new URI(scheme, ...)' since the latter already encodes the path. TestIOUtilURIHandling.test00BasicCoding() validates above findings.
Diffstat (limited to 'src/junit/com/jogamp/common/util')
-rw-r--r--src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java b/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java
index 6103d9a..ecf950b 100644
--- a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java
+++ b/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java
@@ -168,6 +168,111 @@ public class TestIOUtilURIHandling extends JunitTracer {
};
@Test
+ public void test00BasicCoding() throws IOException, URISyntaxException {
+ final String string = "Hallo Welt öä";
+ System.err.println("sp1 "+string);
+ {
+ String sp2 = IOUtil.encodeToURI(string);
+ String sp3 = IOUtil.encodeToURI(sp2);
+ System.err.println("sp2 "+sp2);
+ System.err.println("sp3 "+sp3);
+ }
+ 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).
+ 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?"EQUAL":"NOT_EQUAL"));
+ System.err.println("uri2.path : "+uri1.getPath()+" - "+(equalPath?"EQUAL":"NOT_EQUAL"));
+ System.err.println("uri2.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"EQUAL":"NOT_EQUAL"));
+ }
+ 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;
+ }
+ {
+ final String s2 = "http://lala.org/"+string;
+ final String s2enc = IOUtil.encodeToURI(s2);
+ System.err.println("uri5.orig: "+s2);
+ System.err.println("uri5.enc : "+s2enc);
+ final URI uri1 = new URI(s2enc);
+ 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("uri5.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR"));
+ System.err.println("uri5.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR"));
+ System.err.println("uri5.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);
}
@@ -257,6 +362,11 @@ public class TestIOUtilURIHandling extends JunitTracer {
static boolean testFile2URI(String fileSource, String uriEncExpected, String uriDecExpected, String fileExpected) throws IOException, URISyntaxException {
final File file = new File(fileSource);
+ {
+ final URI uri0 = file.toURI();
+ System.err.println("uri.string: "+uri0.toString());
+ System.err.println("uri.ascii : "+uri0.toASCIIString());
+ }
final URI uri0 = IOUtil.toURISimple(file);
System.err.println("uri.string: "+uri0.toString());
System.err.println("uri.ascii : "+uri0.toASCIIString());