package aQute.libg.uri; import java.io.File; import java.net.URI; import junit.framework.TestCase; public class URIUtilsTest extends TestCase { public void testResolveAbsolute() throws Exception { // reference is absolute, so base is irrelevant URI result = URIUtil.resolve(URI.create("http://example.com/foo.xml"), "http://example.org/bar.xml"); assertEquals("http://example.org/bar.xml", result.toString()); } public void testResolveRelativeHttp() throws Exception { URI result = URIUtil.resolve(URI.create("http://example.com/foo.xml"), "bar.xml"); assertEquals("http://example.com/bar.xml", result.toString()); } public void testResolveRelativeBlank() throws Exception { URI result = URIUtil.resolve(URI.create("http://example.com/foo.xml"), ""); assertEquals("http://example.com/foo.xml", result.toString()); } public void testResolveAbsoluteWindowsPath() throws Exception { if (isWindows()) { URI result = URIUtil.resolve(URI.create("file:/C:/Users/jimbob/base.txt"), "C:\\Users\\jim\\foo.txt"); assertEquals("file:/C:/Users/jim/foo.txt", result.toString()); } } public void testResolveRelativeWindowsPath() throws Exception { if (isWindows()) { URI result = URIUtil.resolve(URI.create("file:/C:/Users/jim/base.txt"), "subdir\\foo.txt"); assertEquals("/C:/Users/jim/subdir/foo.txt", result.getPath()); } } private static boolean isWindows() { return File.separatorChar == '\\'; } }