diff options
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.java | 97 |
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); + } +} |