package org.dcache.webdav; import org.junit.Test; import static org.junit.Assert.assertEquals; public class UrlPathWrapperTests { private static final String UNENCODED = "\u0561\u0580\u0574\u0578\u0582\u0576\u056F\u0020"; private static final String ENCODED = "%D5%A1%D6%80%D5%B4%D5%B8%D6%82%D5%B6%D5%AF%20"; @Test public void testGetEmptyString() { UrlPathWrapper empty = UrlPathWrapper.forEmptyPath(); assertEquals("", empty.toString()); assertEquals("", empty.getEncoded()); assertEquals("", empty.getUnencoded()); } @Test public void testAsciiForPath() { String source = "pathElement"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithColon() { String source = "path:element"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithSpaceColon() { String decoded = "path :element"; UrlPathWrapper.forPath(decoded); /* * Check that URISyntaxException isn't thrown, due to bug: * https://bugs.openjdk.java.net/show_bug.cgi?id=100223 */ } @Test public void testGoettingen() { String decoded="Göttingen:information"; UrlPathWrapper.forPath(decoded); /* * Check that URISyntaxException isn't thrown, due to bug: * https://bugs.openjdk.java.net/show_bug.cgi?id=100223 */ } @Test public void testForPathWithMiddleSlash() { String source = "path/element"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithEndSlash() { String source = "pathElement/"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithStartSlash() { String source = "/pathElement"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithDoubleStartSlash() { String source = "//pathElement"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(source, path.toString()); assertEquals(source, path.getEncoded()); assertEquals(source, path.getUnencoded()); } @Test public void testForPathWithPercent() { String source = "path%element"; String encoded = "path%25element"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(encoded, path.getEncoded()); assertEquals(source, path.getUnencoded()); assertEquals(source, path.toString()); } @Test public void testForPathWithQuestion() { String source = "path?element"; String encoded = "path%3Felement"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(encoded, path.getEncoded()); assertEquals(source, path.getUnencoded()); assertEquals(source, path.toString()); } @Test public void testForPathWithSpace() { String source = "path element"; String encoded = "path%20element"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(encoded, path.getEncoded()); assertEquals(source, path.getUnencoded()); assertEquals(source, path.toString()); } @Test public void testForPathWithSquareBrackets() { String source = "path[element]"; String encoded = "path%5Belement%5D"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(encoded, path.getEncoded()); assertEquals(source, path.getUnencoded()); assertEquals(source, path.toString()); } @Test public void testForPathWithHash() { String source = "path#element"; String encoded = "path%23element"; UrlPathWrapper path = UrlPathWrapper.forPath(source); assertEquals(encoded, path.getEncoded()); assertEquals(source, path.getUnencoded()); assertEquals(source, path.toString()); } @Test public void testForPathWithNonAscii() { UrlPathWrapper path = UrlPathWrapper.forPath(UNENCODED); assertEquals(ENCODED, path.getEncoded()); assertEquals(UNENCODED, path.getUnencoded()); assertEquals(UNENCODED, path.toString()); } }