diff options
author | Sven Gothel <[email protected]> | 2013-10-18 22:09:43 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-10-18 22:09:43 +0200 |
commit | c9093e491d4b78b12973ec1614bf3146fce26a83 (patch) | |
tree | af084b8ab527a574a35ca390ac9d089595382d43 /src/junit/com/jogamp/common/net/TestURIQueryProps.java | |
parent | a2a71139e6d8dc1527cd45df5c710b1ad1f2f611 (diff) |
Fix Bug 857: GlueGen produces erroneous file URI on Windows, which breaks Netbeans's JarURLStreamHandler
- 'URL IOUtil.toURL(URI)'
- Needs to encode the file-path portion on Windows(*) if exists.
The file-path here shall only be encoded as follows:
- backslash -> slash
- ensure starting with slash
(*) We perform above action for all OS,
if 'false == File.separator.equals("/")'
- Added high verbosity in DEBUG mode to easy debugging
for future cases ..
- Cleanup URI/URL unit tests, i.e. split URLCompositionTest into:
- TestIOUtilURICompose
- TestIOUtilURIHandling (Now covers Bug 857 as well)
- TestUrisWithAssetHandler
- TestURIQueryProps
Tested all unit tests manually on GNU/Linux and Windows w/ JRE 7u45
Diffstat (limited to 'src/junit/com/jogamp/common/net/TestURIQueryProps.java')
-rw-r--r-- | src/junit/com/jogamp/common/net/TestURIQueryProps.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/junit/com/jogamp/common/net/TestURIQueryProps.java b/src/junit/com/jogamp/common/net/TestURIQueryProps.java new file mode 100644 index 0000000..09cef61 --- /dev/null +++ b/src/junit/com/jogamp/common/net/TestURIQueryProps.java @@ -0,0 +1,50 @@ +package com.jogamp.common.net; + +import static com.jogamp.common.net.URIDumpUtil.showURI; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + +import org.junit.Assert; +import org.junit.Test; + +import com.jogamp.junit.util.JunitTracer; + +import org.junit.FixMethodOrder; +import org.junit.runners.MethodSorters; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class TestURIQueryProps extends JunitTracer { + + @Test + public void test() throws IOException, URISyntaxException { + final String SCHEME = "camera"; + final String HOST = "somewhere"; + final String PATH = "0"; + String[] args = new String[] { + SCHEME+"://"+HOST+"/"+PATH, + SCHEME+"://"+HOST+"/"+PATH+"?p1=1", + }; + for(int i=0; i<args.length-1; i+=2) { + String uri_s0 = args[i]; + String uri_s1 = args[i+1]; + URI uri0 = new URI(uri_s0); + URI uri1 = new URI(uri_s1); + showURI(uri0); + showURI(uri1); + URIQueryProps data = URIQueryProps.create(uri1, ';'); + if(null == data) { + System.err.println("Error: NULL: <"+uri_s1+"> -> "+uri1+" -> NULL"); + } else { + URI uri1T = data.appendQuery(uri0); + showURI(uri1T); + Assert.assertEquals(uri1, uri1T); + } + } + } + public static void main(String args[]) throws IOException { + String tstname = TestURIQueryProps.class.getName(); + org.junit.runner.JUnitCore.main(tstname); + } +} |