1 package test.squeakysand.sling;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNull;
5
6 import com.squeakysand.sling.request.RequestPathInfoFactory;
7
8 import org.apache.sling.api.request.RequestPathInfo;
9 import org.junit.After;
10 import org.junit.AfterClass;
11 import org.junit.Before;
12 import org.junit.BeforeClass;
13 import org.junit.Test;
14
15
16
17
18
19 public class RequestPathInfoFactoryTest {
20
21 @BeforeClass
22 public static void setUpBeforeClass() throws Exception {
23 }
24
25 @AfterClass
26 public static void tearDownAfterClass() throws Exception {
27 }
28
29 @Before
30 public void setUp() throws Exception {
31 }
32
33 @After
34 public void tearDown() throws Exception {
35 }
36
37 @Test
38 public void testContentPathOnly() {
39 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b");
40 assertEquals("/a/b", pathInfo.getResourcePath());
41 assertNull(pathInfo.getSelectorString());
42 assertEquals(0, pathInfo.getSelectors().length);
43 assertNull(pathInfo.getExtension());
44 assertNull(pathInfo.getSuffix());
45 }
46
47 @Test
48 public void testContentPathPlusExtension() {
49 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.html");
50 assertEquals("/a/b", pathInfo.getResourcePath());
51 assertNull(pathInfo.getSelectorString());
52 assertEquals(0, pathInfo.getSelectors().length);
53 assertEquals("html", pathInfo.getExtension());
54 assertNull(pathInfo.getSuffix());
55 }
56
57 @Test
58 public void testContentPathPlusExtensionPlusMultipleSelectors() {
59 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.s1.s2.html");
60 assertEquals("/a/b", pathInfo.getResourcePath());
61 assertEquals("s1.s2", pathInfo.getSelectorString());
62 assertEquals(2, pathInfo.getSelectors().length);
63 assertEquals("s1", pathInfo.getSelectors()[0]);
64 assertEquals("s2", pathInfo.getSelectors()[1]);
65 assertEquals("html", pathInfo.getExtension());
66 assertNull(pathInfo.getSuffix());
67 }
68
69 @Test
70 public void testContentPathPlusExtensionPlusMultipleSelectorsPlusSuffix() {
71 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.s1.s2.html/c/d");
72 assertEquals("/a/b", pathInfo.getResourcePath());
73 assertEquals("s1.s2", pathInfo.getSelectorString());
74 assertEquals(2, pathInfo.getSelectors().length);
75 assertEquals("s1", pathInfo.getSelectors()[0]);
76 assertEquals("s2", pathInfo.getSelectors()[1]);
77 assertEquals("html", pathInfo.getExtension());
78 assertEquals("/c/d", pathInfo.getSuffix());
79 }
80
81 @Test
82 public void testContentPathPlusExtensionPlusSelector() {
83 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.s1.html");
84 assertEquals("/a/b", pathInfo.getResourcePath());
85 assertEquals("s1", pathInfo.getSelectorString());
86 assertEquals(1, pathInfo.getSelectors().length);
87 assertEquals("s1", pathInfo.getSelectors()[0]);
88 assertEquals("html", pathInfo.getExtension());
89 assertNull(pathInfo.getSuffix());
90 }
91
92 @Test
93 public void testContentPathPlusExtensionPlusSelectorPlusSuffix() {
94 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.s1.html/c/d");
95 assertEquals("/a/b", pathInfo.getResourcePath());
96 assertEquals("s1", pathInfo.getSelectorString());
97 assertEquals(1, pathInfo.getSelectors().length);
98 assertEquals("s1", pathInfo.getSelectors()[0]);
99 assertEquals("html", pathInfo.getExtension());
100 assertEquals("/c/d", pathInfo.getSuffix());
101 }
102
103 @Test
104 public void testContentPathPlusExtensionPlusSuffix() {
105 RequestPathInfo pathInfo = RequestPathInfoFactory.create("/a/b.html/c/d");
106 assertEquals("/a/b", pathInfo.getResourcePath());
107 assertNull(pathInfo.getSelectorString());
108 assertEquals(0, pathInfo.getSelectors().length);
109 assertEquals("html", pathInfo.getExtension());
110 assertEquals("/c/d", pathInfo.getSuffix());
111 }
112
113 }