From 93462447b47565b80b134833777933edef26a5de Mon Sep 17 00:00:00 2001 From: Marc Strapetz Date: Sat, 9 Dec 2017 12:12:24 +0100 Subject: [PATCH] URIishTest: more Windows file-protocol tests Change-Id: Id5fbd8bb9cd05da89d27e9532612d64ae84a55ba Signed-off-by: Marc Strapetz --- .../eclipse/jgit/transport/URIishTest.java | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java index e55d37334..9bd30b883 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java @@ -198,6 +198,10 @@ public void testFileProtoWindows() throws Exception { URIish u = new URIish(str); assertEquals("file", u.getScheme()); assertFalse(u.isRemote()); + assertEquals(null, u.getHost()); + assertEquals(-1, u.getPort()); + assertEquals(null, u.getUser()); + assertEquals(null, u.getPass()); assertEquals("D:/m y", u.getRawPath()); assertEquals("D:/m y", u.getPath()); assertEquals("file:///D:/m y", u.toString()); @@ -205,6 +209,84 @@ public void testFileProtoWindows() throws Exception { assertEquals(u, new URIish(str)); } + @Test + public void testFileProtoWindowsWithHost() throws Exception { + final String str = "file://localhost/D:/m y"; + URIish u = new URIish(str); + assertEquals("file", u.getScheme()); + assertTrue(u.isRemote()); + assertEquals("localhost", u.getHost()); + assertEquals(-1, u.getPort()); + assertEquals(null, u.getUser()); + assertEquals(null, u.getPass()); + assertEquals("D:/m y", u.getRawPath()); + assertEquals("D:/m y", u.getPath()); + assertEquals("file://localhost/D:/m y", u.toString()); + assertEquals("file://localhost/D:/m%20y", u.toASCIIString()); + assertEquals(u, new URIish(str)); + } + + @Test + public void testFileProtoWindowsWithHostAndPort() throws Exception { + final String str = "file://localhost:80/D:/m y"; + URIish u = new URIish(str); + assertEquals("file", u.getScheme()); + assertTrue(u.isRemote()); + assertEquals("localhost", u.getHost()); + assertEquals(80, u.getPort()); + assertEquals(null, u.getUser()); + assertEquals(null, u.getPass()); + assertEquals("D:/m y", u.getRawPath()); + assertEquals("D:/m y", u.getPath()); + assertEquals("file://localhost:80/D:/m y", u.toString()); + assertEquals("file://localhost:80/D:/m%20y", u.toASCIIString()); + assertEquals(u, new URIish(str)); + } + + @Test + public void testFileProtoWindowsWithHostAndEmptyPortIsAmbiguous() + throws Exception { + final String str = "file://localhost:/D:/m y"; + URIish u = new URIish(str); + assertEquals("file", u.getScheme()); + assertFalse(u.isRemote()); + assertEquals(null, u.getHost()); + assertEquals(-1, u.getPort()); + assertEquals(null, u.getUser()); + assertEquals(null, u.getPass()); + assertEquals("localhost:/D:/m y", u.getRawPath()); + assertEquals("localhost:/D:/m y", u.getPath()); + assertEquals("file:///localhost:/D:/m y", u.toString()); + assertEquals("file:///localhost:/D:/m%20y", u.toASCIIString()); + assertEquals(u, new URIish(str)); + } + + @Test + public void testFileProtoWindowsMissingHostSlash() throws Exception { + final String str = "file://D:/m y"; + URIish u = new URIish(str); + assertEquals("file", u.getScheme()); + assertFalse(u.isRemote()); + assertEquals("D:/m y", u.getRawPath()); + assertEquals("D:/m y", u.getPath()); + assertEquals("file:///D:/m y", u.toString()); + assertEquals("file:///D:/m%20y", u.toASCIIString()); + assertEquals(u, new URIish(str)); + } + + @Test + public void testFileProtoWindowsMissingHostSlash2() throws Exception { + final String str = "file://D: /m y"; + URIish u = new URIish(str); + assertEquals("file", u.getScheme()); + assertFalse(u.isRemote()); + assertEquals("D: /m y", u.getRawPath()); + assertEquals("D: /m y", u.getPath()); + assertEquals("file:///D: /m y", u.toString()); + assertEquals("file:///D:%20/m%20y", u.toASCIIString()); + assertEquals(u, new URIish(str)); + } + @Test public void testGitProtoUnix() throws Exception { final String str = "git://example.com/home/m y";