1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package nl.hippo.client.webapp.matchers;
17
18 import java.util.Iterator;
19
20 import junit.framework.TestCase;
21 import nl.hippo.client.webapp.Pipeline;
22 import nl.hippo.client.webapp.Request;
23
24 public class PipelineTest extends TestCase {
25
26 private Pipeline pipeline;
27
28 public void setUp() {
29 pipeline = new Pipeline();
30 }
31
32 public void testContentMatcher() {
33 verify("content", new ContentMatcher());
34 verify("content/", new ContentMatcher());
35 verify("/content", new ContentMatcher());
36 verify("/content/", new ContentMatcher());
37
38 verify("/content/logo", new ContentMatcher());
39 verify("/content/foo/bar/aap", new ContentMatcher());
40 verify("/content/.gif", new ContentMatcher());
41 verify("/content/logo.gif", new ContentMatcher());
42 verify("/content/logo.gif/foo", new ContentMatcher());
43 verify("/content/foo/bar/aap.noot", new ContentMatcher());
44
45 verify("", new ContentMatcher());
46 verify("/", new ContentMatcher());
47 verify("bla/bla/aap/noot.xml", new ContentMatcher());
48 verify("/bla/bla/aap/noot.xml", new ContentMatcher());
49 }
50
51 public void testGetQueryMatcher() {
52 verify("getquery", new ContentMatcher());
53 verify("getquery/", new ContentMatcher());
54 verify("/getquery", new ContentMatcher());
55
56 verify("/getquery/", new GetQueryMatcher());
57 verify("/getquery/test.xml", new GetQueryMatcher());
58 verify("/getquery/test", new GetQueryMatcher());
59 verify("/getquery/foo/bar/aap.noot", new GetQueryMatcher());
60 verify("/getquery/foo/bar/aap", new GetQueryMatcher());
61 }
62
63 public void testAdminMatcher() {
64 verify("admin", new ContentMatcher());
65 verify("admin/", new ContentMatcher());
66
67 verify("/admin", new AdminMatcher());
68 verify("/admin/", new AdminMatcher());
69 verify("/admin/test.xml", new AdminMatcher());
70 verify("/admin/test", new AdminMatcher());
71 verify("/admin/foo/bar/aap.noot", new AdminMatcher());
72 verify("/admin/foo/bar/aap", new AdminMatcher());
73 }
74
75
76 public void testQueryMatcher() {
77 verify("query", new ContentMatcher());
78 verify("query/", new ContentMatcher());
79 verify("/query", new ContentMatcher());
80 verify("/query/", new ContentMatcher());
81 verify("/query/aap", new ContentMatcher());
82 verify("/query/aap/noot", new ContentMatcher());
83 verify("/query///", new ContentMatcher());
84
85 verify("/query/aap/noot/mies", new QueryMatcher());
86 verify("/query/aap/noot/mies/foo", new QueryMatcher());
87 verify("/query/aap/noot/mies/foo/bar/baz", new QueryMatcher());
88 }
89
90 private void verify(String request, Matcher expectedMatcher) {
91 Request req = new Request(new MockHttpServletContext(), new MockHttpServletRequest(request));
92 Iterator it = pipeline.iterator();
93 while (it.hasNext()) {
94 Matcher matcher = (Matcher) it.next();
95 if (matcher.matches(req)) {
96 System.out.println("request: " + request + ", params: " + req.toString(matcher.regexp));
97 assertEquals(request + " should match " + expectedMatcher.toString() + " but matched "
98 + matcher.toString(), expectedMatcher, matcher);
99 return;
100 }
101 }
102 }
103
104 }