summaryrefslogtreecommitdiffstats
path: root/simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java')
-rw-r--r--simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java b/simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java
new file mode 100644
index 0000000..4ae4d60
--- /dev/null
+++ b/simple/simple-http/src/test/java/org/simpleframework/http/parse/PathParserTest.java
@@ -0,0 +1,97 @@
+package org.simpleframework.http.parse;
+
+import junit.framework.TestCase;
+
+import org.simpleframework.http.parse.PathParser;
+
+public class PathParserTest extends TestCase {
+
+ private PathParser path;
+
+ protected void setUp() {
+ path = new PathParser();
+ }
+
+ public void testEmpty() {
+ assertEquals(null, path.getPath());
+ assertEquals(null, path.getExtension());
+ assertEquals(null, path.getName());
+ }
+
+ public void testSegments() {
+ path.parse("/a/b/c/d");
+
+ String[] list = path.getSegments();
+
+ assertEquals("a", list[0]);
+ assertEquals("b", list[1]);
+ assertEquals("c", list[2]);
+ assertEquals("d", list[3]);
+ }
+
+ public void testSubPath() {
+ path.parse("/0/1/2/3/4/5/6/index.html");
+
+ testSubPath(1);
+ testSubPath(2);
+ testSubPath(3);
+ testSubPath(4);
+ testSubPath(5);
+ testSubPath(6);
+ testSubPath(7);
+
+ testSubPath(0,4);
+ testSubPath(1,2);
+ testSubPath(2,3);
+ testSubPath(3,4);
+ testSubPath(1,3);
+ testSubPath(1,4);
+ testSubPath(1,5);
+
+ path.parse("/a/b/c/d/e/index.html");
+
+ testSubPath(1,2);
+ testSubPath(2,3);
+ testSubPath(3,1);
+ testSubPath(1,3);
+ }
+
+ private void testSubPath(int from) {
+ System.err.printf("[%s] %s: %s%n", path, from, path.getPath(from));
+ }
+
+ private void testSubPath(int from, int to) {
+ System.err.printf("[%s] %s, %s: %s%n", path, from, to, path.getPath(from, to));
+ }
+
+ public void testDirectory() {
+ path.parse("/some/directory/path/index.html");
+ assertEquals("/some/directory/path/", path.getDirectory());
+
+ path.parse("/some/path/README");
+ assertEquals("/some/path/", path.getDirectory());
+ }
+
+ public void testNormalization() {
+ path.parse("/path/./../index.html");
+ assertEquals("/", path.getDirectory());
+
+ path.parse("/path/hidden/./index.html");
+ assertEquals("/path/hidden/", path.getDirectory());
+
+ path.parse("/path/README");
+ assertEquals("/path/", path.getDirectory());
+ }
+
+ public void testString() {
+ path.parse("/some/path/../path/./to//a/file.txt");
+ assertEquals("/some/path/to//a/file.txt", path.toString());
+ }
+
+ public void testAIOB(){
+ path.parse("/admin/ws");
+ String result = path.getRelative("/admin/ws/");
+ String expResult = null;
+ assertEquals(expResult, result);
+ }
+}