1 package org.apache.turbine.util.uri;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.fulcrum.parser.DefaultParameterParser;
23 import org.apache.fulcrum.parser.ParameterParser;
24 import org.apache.fulcrum.parser.ParserService;
25 import org.apache.turbine.services.TurbineServices;
26 import org.apache.turbine.test.BaseTestCase;
27 import org.apache.turbine.util.ServerData;
28 import org.apache.turbine.util.TurbineConfig;
29
30
31
32
33
34
35
36
37 public class TurbineURITest extends BaseTestCase
38 {
39 private TurbineURI turi;
40
41 private ParserService parserService;
42
43 private static TurbineConfig tc = null;
44
45
46
47
48
49
50
51 public TurbineURITest(String testName) throws Exception
52 {
53 super(testName);
54
55
56 tc =
57 new TurbineConfig(
58 ".",
59 "/conf/test/CompleteTurbineResources.properties");
60 tc.initialize();
61 }
62
63
64
65
66 protected void setUp()
67 {
68 ServerData sd = new ServerData("www.testserver.com",
69 URIConstants.HTTP_PORT, URIConstants.HTTP, "/servlet/turbine",
70 "/context");
71 turi = new TurbineURI(sd);
72
73 parserService = (ParserService)TurbineServices.getInstance().getService(ParserService.ROLE);
74 }
75
76
77
78
79 protected void tearDown()
80 {
81 if (tc != null)
82 {
83 tc.dispose();
84 }
85
86 turi = null;
87 }
88
89 public void testAddRemove()
90 {
91 assertEquals("TurbineURI should not have a pathInfo", false, turi
92 .hasPathInfo());
93 assertEquals("TurbineURI must not have a queryData", false, turi
94 .hasQueryData());
95 turi.addPathInfo("test", "x");
96 assertEquals("TurbineURI must have a pathInfo", true, turi
97 .hasPathInfo());
98 assertEquals("TurbineURI must not have a queryData", false, turi
99 .hasQueryData());
100 turi.removePathInfo("test");
101 assertEquals("TurbineURI must not have a pathInfo", false, turi
102 .hasPathInfo());
103 assertEquals("TurbineURI must not have a queryData", false, turi
104 .hasQueryData());
105
106 assertEquals("TurbineURI should not have a queryData", false, turi
107 .hasQueryData());
108 assertEquals("TurbineURI must not have a pathInfo", false, turi
109 .hasPathInfo());
110 turi.addQueryData("test", "x");
111 assertEquals("TurbineURI must have a queryData", true, turi
112 .hasQueryData());
113 assertEquals("TurbineURI must not have a pathInfo", false, turi
114 .hasPathInfo());
115 turi.removeQueryData("test");
116 assertEquals("TurbineURI must not have a queryData", false, turi
117 .hasQueryData());
118 assertEquals("TurbineURI must not have a pathInfo", false, turi
119 .hasPathInfo());
120 }
121
122 public void testEmptyAndNullQueryData()
123 {
124
125 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
126 turi.addQueryData("test", "");
127 assertEquals("/context/servlet/turbine?test=", turi.getRelativeLink());
128 turi.removeQueryData("test");
129
130
131 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
132 turi.addQueryData("test", null);
133 assertEquals("/context/servlet/turbine?test=null", turi
134 .getRelativeLink());
135 turi.removeQueryData("test");
136 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
137 }
138
139 public void testEmptyAndNullPathInfo()
140 {
141
142 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
143 turi.addPathInfo("test", "");
144
145 assertEquals("/context/servlet/turbine/test/", turi.getRelativeLink());
146 turi.removePathInfo("test");
147
148
149 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
150 turi.addPathInfo("test", null);
151 assertEquals("/context/servlet/turbine/test/null", turi
152 .getRelativeLink());
153 turi.removePathInfo("test");
154 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
155 }
156
157 public void testAddEmptyParameterParser()
158 {
159 ParameterParser pp = new DefaultParameterParser();
160 turi.add(1, pp);
161 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
162 }
163
164 public void testAddParameterParser() throws InstantiationException
165 {
166 ParameterParser pp = (ParameterParser) parserService.getParser(DefaultParameterParser.class);
167 pp.add("test", "");
168 turi.add(1, pp);
169 assertEquals("/context/servlet/turbine?test=", turi.getRelativeLink());
170 turi.removeQueryData("test");
171 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
172
173 parserService.putParser(pp);
174 pp = (ParameterParser) parserService.getParser(DefaultParameterParser.class);
175 pp.add("test", (String) null);
176 turi.add(1, pp);
177
178
179
180
181 turi.removeQueryData("test");
182 assertEquals("/context/servlet/turbine", turi.getRelativeLink());
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202 }
203
204 }