Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java')
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java204
1 files changed, 104 insertions, 100 deletions
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java
index e6ec0ae50b..2ea4cc5a9e 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java
@@ -4,63 +4,67 @@
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
-// The Eclipse Public License is available at
+// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
-// You may elect to redistribute this code under either of these licenses.
+// You may elect to redistribute this code under either of these licenses.
// ========================================================================
package org.eclipse.jetty.server;
-import junit.framework.TestCase;
-
import org.eclipse.jetty.http.HttpURI;
import org.eclipse.jetty.io.ByteArrayBuffer;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
-public class HttpURITest extends TestCase
+public class HttpURITest
{
- String[][] partial_tests=
- {
- /* 0*/ {"/path/info",null,null,null,null,"/path/info",null,null,null},
- /* 1*/ {"/path/info#fragment",null,null,null,null,"/path/info",null,null,"fragment"},
- /* 2*/ {"/path/info?query",null,null,null,null,"/path/info",null,"query",null},
- /* 3*/ {"/path/info?query#fragment",null,null,null,null,"/path/info",null,"query","fragment"},
- /* 4*/ {"/path/info;param",null,null,null,null,"/path/info","param",null,null},
- /* 5*/ {"/path/info;param#fragment",null,null,null,null,"/path/info","param",null,"fragment"},
- /* 6*/ {"/path/info;param?query",null,null,null,null,"/path/info","param","query",null},
- /* 7*/ {"/path/info;param?query#fragment",null,null,null,null,"/path/info","param","query","fragment"},
- /* 8*/ {"//host/path/info",null,"//host","host",null,"/path/info",null,null,null},
- /* 9*/ {"//user@host/path/info",null,"//user@host","host",null,"/path/info",null,null,null},
- /*10*/ {"//user@host:8080/path/info",null,"//user@host:8080","host","8080","/path/info",null,null,null},
- /*11*/ {"//host:8080/path/info",null,"//host:8080","host","8080","/path/info",null,null,null},
- /*12*/ {"http:/path/info","http",null,null,null,"/path/info",null,null,null},
- /*13*/ {"http:/path/info#fragment","http",null,null,null,"/path/info",null,null,"fragment"},
- /*14*/ {"http:/path/info?query","http",null,null,null,"/path/info",null,"query",null},
- /*15*/ {"http:/path/info?query#fragment","http",null,null,null,"/path/info",null,"query","fragment"},
- /*16*/ {"http:/path/info;param","http",null,null,null,"/path/info","param",null,null},
- /*17*/ {"http:/path/info;param#fragment","http",null,null,null,"/path/info","param",null,"fragment"},
- /*18*/ {"http:/path/info;param?query","http",null,null,null,"/path/info","param","query",null},
- /*19*/ {"http:/path/info;param?query#fragment","http",null,null,null,"/path/info","param","query","fragment"},
- /*20*/ {"http://user@host:8080/path/info;param?query#fragment","http","//user@host:8080","host","8080","/path/info","param","query","fragment"},
- /*21*/ {"xxxxx://user@host:8080/path/info;param?query#fragment","xxxxx","//user@host:8080","host","8080","/path/info","param","query","fragment"},
- /*22*/ {"http:///;?#","http","//",null,null,"/","","",""},
- /*23*/ {"/path/info?a=?query",null,null,null,null,"/path/info",null,"a=?query",null},
- /*24*/ {"/path/info?a=;query",null,null,null,null,"/path/info",null,"a=;query",null},
- /*25*/ {"//host:8080//",null,"//host:8080","host","8080","//",null,null,null},
- /*26*/ {"file:///path/info","file","//",null,null,"/path/info",null,null,null},
- /*27*/ {"//",null,"//",null,null,null,null,null,null},
+ private final String[][] partial_tests=
+ {
+ /* 0*/ {"/path/info",null,null,null,null,"/path/info",null,null,null},
+ /* 1*/ {"/path/info#fragment",null,null,null,null,"/path/info",null,null,"fragment"},
+ /* 2*/ {"/path/info?query",null,null,null,null,"/path/info",null,"query",null},
+ /* 3*/ {"/path/info?query#fragment",null,null,null,null,"/path/info",null,"query","fragment"},
+ /* 4*/ {"/path/info;param",null,null,null,null,"/path/info","param",null,null},
+ /* 5*/ {"/path/info;param#fragment",null,null,null,null,"/path/info","param",null,"fragment"},
+ /* 6*/ {"/path/info;param?query",null,null,null,null,"/path/info","param","query",null},
+ /* 7*/ {"/path/info;param?query#fragment",null,null,null,null,"/path/info","param","query","fragment"},
+ /* 8*/ {"//host/path/info",null,"//host","host",null,"/path/info",null,null,null},
+ /* 9*/ {"//user@host/path/info",null,"//user@host","host",null,"/path/info",null,null,null},
+ /*10*/ {"//user@host:8080/path/info",null,"//user@host:8080","host","8080","/path/info",null,null,null},
+ /*11*/ {"//host:8080/path/info",null,"//host:8080","host","8080","/path/info",null,null,null},
+ /*12*/ {"http:/path/info","http",null,null,null,"/path/info",null,null,null},
+ /*13*/ {"http:/path/info#fragment","http",null,null,null,"/path/info",null,null,"fragment"},
+ /*14*/ {"http:/path/info?query","http",null,null,null,"/path/info",null,"query",null},
+ /*15*/ {"http:/path/info?query#fragment","http",null,null,null,"/path/info",null,"query","fragment"},
+ /*16*/ {"http:/path/info;param","http",null,null,null,"/path/info","param",null,null},
+ /*17*/ {"http:/path/info;param#fragment","http",null,null,null,"/path/info","param",null,"fragment"},
+ /*18*/ {"http:/path/info;param?query","http",null,null,null,"/path/info","param","query",null},
+ /*19*/ {"http:/path/info;param?query#fragment","http",null,null,null,"/path/info","param","query","fragment"},
+ /*20*/ {"http://user@host:8080/path/info;param?query#fragment","http","//user@host:8080","host","8080","/path/info","param","query","fragment"},
+ /*21*/ {"xxxxx://user@host:8080/path/info;param?query#fragment","xxxxx","//user@host:8080","host","8080","/path/info","param","query","fragment"},
+ /*22*/ {"http:///;?#","http","//",null,null,"/","","",""},
+ /*23*/ {"/path/info?a=?query",null,null,null,null,"/path/info",null,"a=?query",null},
+ /*24*/ {"/path/info?a=;query",null,null,null,null,"/path/info",null,"a=;query",null},
+ /*25*/ {"//host:8080//",null,"//host:8080","host","8080","//",null,null,null},
+ /*26*/ {"file:///path/info","file","//",null,null,"/path/info",null,null,null},
+ /*27*/ {"//",null,"//",null,null,null,null,null,null},
/*28*/ {"/;param",null, null, null,null,"/", "param",null,null},
/*29*/ {"/?x=y",null, null, null,null,"/", null,"x=y",null},
/*30*/ {"/?abc=test",null, null, null,null,"/", null,"abc=test",null},
- /*31*/ {"/#fragment",null, null, null,null,"/", null,null,"fragment"},
+ /*31*/ {"/#fragment",null, null, null,null,"/", null,null,"fragment"},
};
- public void testPartialURIs()
- throws Exception
+ @Test
+ public void testPartialURIs() throws Exception
{
HttpURI uri = new HttpURI(true);
-
+
for (int t=0;t<partial_tests.length;t++)
{
uri.parse(partial_tests[t][0].getBytes(),0,partial_tests[t][0].length());
@@ -74,39 +78,39 @@ public class HttpURITest extends TestCase
assertEquals(t+" "+partial_tests[t][0],partial_tests[t][8],uri.getFragment());
assertEquals(partial_tests[t][0], uri.toString());
}
-
+
}
- String[][] path_tests=
- {
- /* 0*/ {"/path/info",null,null,null,null,"/path/info",null,null,null},
- /* 1*/ {"/path/info#fragment",null,null,null,null,"/path/info",null,null,"fragment"},
- /* 2*/ {"/path/info?query",null,null,null,null,"/path/info",null,"query",null},
- /* 3*/ {"/path/info?query#fragment",null,null,null,null,"/path/info",null,"query","fragment"},
- /* 4*/ {"/path/info;param",null,null,null,null,"/path/info","param",null,null},
- /* 5*/ {"/path/info;param#fragment",null,null,null,null,"/path/info","param",null,"fragment"},
- /* 6*/ {"/path/info;param?query",null,null,null,null,"/path/info","param","query",null},
- /* 7*/ {"/path/info;param?query#fragment",null,null,null,null,"/path/info","param","query","fragment"},
- /* 8*/ {"//host/path/info",null,null,null,null,"//host/path/info",null,null,null},
- /* 9*/ {"//user@host/path/info",null,null,null,null,"//user@host/path/info",null,null,null},
- /*10*/ {"//user@host:8080/path/info",null,null,null,null,"//user@host:8080/path/info",null,null,null},
- /*11*/ {"//host:8080/path/info",null,null,null,null,"//host:8080/path/info",null,null,null},
- /*12*/ {"http:/path/info","http",null,null,null,"/path/info",null,null,null},
- /*13*/ {"http:/path/info#fragment","http",null,null,null,"/path/info",null,null,"fragment"},
- /*14*/ {"http:/path/info?query","http",null,null,null,"/path/info",null,"query",null},
- /*15*/ {"http:/path/info?query#fragment","http",null,null,null,"/path/info",null,"query","fragment"},
- /*16*/ {"http:/path/info;param","http",null,null,null,"/path/info","param",null,null},
- /*17*/ {"http:/path/info;param#fragment","http",null,null,null,"/path/info","param",null,"fragment"},
- /*18*/ {"http:/path/info;param?query","http",null,null,null,"/path/info","param","query",null},
- /*19*/ {"http:/path/info;param?query#fragment","http",null,null,null,"/path/info","param","query","fragment"},
- /*20*/ {"http://user@host:8080/path/info;param?query#fragment","http","//user@host:8080","host","8080","/path/info","param","query","fragment"},
- /*21*/ {"xxxxx://user@host:8080/path/info;param?query#fragment","xxxxx","//user@host:8080","host","8080","/path/info","param","query","fragment"},
- /*22*/ {"http:///;?#","http","//",null,null,"/","","",""},
- /*23*/ {"/path/info?a=?query",null,null,null,null,"/path/info",null,"a=?query",null},
- /*24*/ {"/path/info?a=;query",null,null,null,null,"/path/info",null,"a=;query",null},
- /*25*/ {"//host:8080//",null,null,null,null,"//host:8080//",null,null,null},
- /*26*/ {"file:///path/info","file","//",null,null,"/path/info",null,null,null},
- /*27*/ {"//",null,null,null,null,"//",null,null,null},
+ private final String[][] path_tests=
+ {
+ /* 0*/ {"/path/info",null,null,null,null,"/path/info",null,null,null},
+ /* 1*/ {"/path/info#fragment",null,null,null,null,"/path/info",null,null,"fragment"},
+ /* 2*/ {"/path/info?query",null,null,null,null,"/path/info",null,"query",null},
+ /* 3*/ {"/path/info?query#fragment",null,null,null,null,"/path/info",null,"query","fragment"},
+ /* 4*/ {"/path/info;param",null,null,null,null,"/path/info","param",null,null},
+ /* 5*/ {"/path/info;param#fragment",null,null,null,null,"/path/info","param",null,"fragment"},
+ /* 6*/ {"/path/info;param?query",null,null,null,null,"/path/info","param","query",null},
+ /* 7*/ {"/path/info;param?query#fragment",null,null,null,null,"/path/info","param","query","fragment"},
+ /* 8*/ {"//host/path/info",null,null,null,null,"//host/path/info",null,null,null},
+ /* 9*/ {"//user@host/path/info",null,null,null,null,"//user@host/path/info",null,null,null},
+ /*10*/ {"//user@host:8080/path/info",null,null,null,null,"//user@host:8080/path/info",null,null,null},
+ /*11*/ {"//host:8080/path/info",null,null,null,null,"//host:8080/path/info",null,null,null},
+ /*12*/ {"http:/path/info","http",null,null,null,"/path/info",null,null,null},
+ /*13*/ {"http:/path/info#fragment","http",null,null,null,"/path/info",null,null,"fragment"},
+ /*14*/ {"http:/path/info?query","http",null,null,null,"/path/info",null,"query",null},
+ /*15*/ {"http:/path/info?query#fragment","http",null,null,null,"/path/info",null,"query","fragment"},
+ /*16*/ {"http:/path/info;param","http",null,null,null,"/path/info","param",null,null},
+ /*17*/ {"http:/path/info;param#fragment","http",null,null,null,"/path/info","param",null,"fragment"},
+ /*18*/ {"http:/path/info;param?query","http",null,null,null,"/path/info","param","query",null},
+ /*19*/ {"http:/path/info;param?query#fragment","http",null,null,null,"/path/info","param","query","fragment"},
+ /*20*/ {"http://user@host:8080/path/info;param?query#fragment","http","//user@host:8080","host","8080","/path/info","param","query","fragment"},
+ /*21*/ {"xxxxx://user@host:8080/path/info;param?query#fragment","xxxxx","//user@host:8080","host","8080","/path/info","param","query","fragment"},
+ /*22*/ {"http:///;?#","http","//",null,null,"/","","",""},
+ /*23*/ {"/path/info?a=?query",null,null,null,null,"/path/info",null,"a=?query",null},
+ /*24*/ {"/path/info?a=;query",null,null,null,null,"/path/info",null,"a=;query",null},
+ /*25*/ {"//host:8080//",null,null,null,null,"//host:8080//",null,null,null},
+ /*26*/ {"file:///path/info","file","//",null,null,"/path/info",null,null,null},
+ /*27*/ {"//",null,null,null,null,"//",null,null,null},
/*28*/ {"http://localhost/","http","//localhost","localhost",null,"/",null,null,null},
/*29*/ {"http://localhost:8080/", "http", "//localhost:8080", "localhost","8080","/", null, null,null},
/*30*/ {"http://localhost/?x=y", "http", "//localhost", "localhost",null,"/", null,"x=y",null},
@@ -122,13 +126,12 @@ public class HttpURITest extends TestCase
/*40*/ {"http://user@[2001:db8::1]:8080/","http","//user@[2001:db8::1]:8080","[2001:db8::1]","8080","/",null,null,null},
/*41*/ {"*",null,null,null,null,"*",null, null,null}
};
-
-
- public void testPathURIs()
- throws Exception
+
+ @Test
+ public void testPathURIs() throws Exception
{
HttpURI uri = new HttpURI();
-
+
for (int t=0;t<path_tests.length;t++)
{
uri.parse(path_tests[t][0].getBytes(),0,path_tests[t][0].length());
@@ -142,17 +145,18 @@ public class HttpURITest extends TestCase
assertEquals(t+" "+path_tests[t][0],path_tests[t][8],uri.getFragment());
assertEquals(path_tests[t][0], uri.toString());
}
-
+
}
-
+
+ @Test
public void testInvalidAddress() throws Exception
{
assertInvalidURI("http://[ffff::1:8080/", "Invalid URL; no closing ']' -- should throw exception");
assertInvalidURI("**", "only '*', not '**'");
assertInvalidURI("*/", "only '*', not '*/'");
}
-
- public void assertInvalidURI(String invalidURI, String message)
+
+ private void assertInvalidURI(String invalidURI, String message)
{
HttpURI uri = new HttpURI();
try
@@ -166,38 +170,38 @@ public class HttpURITest extends TestCase
}
}
- String[][] encoding_tests=
- {
- /* 0*/ {"/path/info","/path/info"},
- /* 1*/ {"/path/%69nfo","/path/info"},
- /* 2*/ {"http://host/path/%69nfo","/path/info"},
- /* 3*/ {"http://host/path/%69nf%c2%a4","/path/inf\u00a4"},
+ private final String[][] encoding_tests=
+ {
+ /* 0*/ {"/path/info","/path/info"},
+ /* 1*/ {"/path/%69nfo","/path/info"},
+ /* 2*/ {"http://host/path/%69nfo","/path/info"},
+ /* 3*/ {"http://host/path/%69nf%c2%a4","/path/inf\u00a4"},
};
-
+
+ @Test
public void testEncoded()
{
-
HttpURI uri = new HttpURI();
-
+
for (int t=0;t<encoding_tests.length;t++)
{
uri.parse(encoding_tests[t][0]);
assertEquals(""+t,encoding_tests[t][1],uri.getDecodedPath());
-
+
}
}
- String[][] connect_tests=
- {
- /* 0*/ {" localhost:8080 ","localhost","8080"},
- /* 1*/ {" 127.0.0.1:8080 ","127.0.0.1","8080"},
- /* 2*/ {" [127::0::0::1]:8080 ","[127::0::0::1]","8080"},
- /* 3*/ {" error ",null,null},
- /* 4*/ {" http://localhost:8080/ ",null,null},
+ private final String[][] connect_tests=
+ {
+ /* 0*/ {" localhost:8080 ","localhost","8080"},
+ /* 1*/ {" 127.0.0.1:8080 ","127.0.0.1","8080"},
+ /* 2*/ {" [127::0::0::1]:8080 ","[127::0::0::1]","8080"},
+ /* 3*/ {" error ",null,null},
+ /* 4*/ {" http://localhost:8080/ ",null,null},
};
-
- public void testCONNECT()
- throws Exception
+
+ @Test
+ public void testCONNECT() throws Exception
{
HttpURI uri = new HttpURI();
for (int i=0;i<connect_tests.length;i++)
@@ -213,7 +217,7 @@ public class HttpURITest extends TestCase
catch(Exception e)
{
assertNull("error"+i,connect_tests[i][1]);
- }
+ }
}
}
}

Back to the top