1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sourceforge.jwebunit.tests;
20
21 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionNotPresent;
22 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionPresent;
23 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionValueNotPresent;
24 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionValuePresent;
25 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionValuesEqual;
26 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionValuesNotEqual;
27 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionValuesPresent;
28 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionsEqual;
29 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionsNotEqual;
30 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectOptionsPresent;
31 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionEquals;
32 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionMatches;
33 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionValueEquals;
34 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionValuesEqual;
35 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionsEqual;
36 import static net.sourceforge.jwebunit.junit.JWebUnit.assertSelectedOptionsMatch;
37 import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt;
38 import static net.sourceforge.jwebunit.junit.JWebUnit.selectOption;
39 import static net.sourceforge.jwebunit.junit.JWebUnit.selectOptionByValue;
40 import static net.sourceforge.jwebunit.junit.JWebUnit.selectOptions;
41 import static net.sourceforge.jwebunit.junit.JWebUnit.selectOptionsByValues;
42 import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl;
43 import static net.sourceforge.jwebunit.junit.JWebUnit.setWorkingForm;
44
45 import org.junit.Test;
46
47
48
49
50 public class SelectOptionsTest extends JWebUnitAPITestCase
51 {
52
53 public void setUp() throws Exception
54 {
55 super.setUp();
56 setBaseUrl(HOST_PATH + "/SelectOptionsTest");
57 }
58
59 @Test public void testAssertSelectOptionsOneForm()
60 {
61 beginAt("/pageWithOneForm.html");
62 assertSelectOptionsForm1();
63
64 setWorkingForm("form1");
65 assertSelectOptionsForm1();
66 beginAt("/pageWithOneFormMulti.html");
67 assertSelectOptionsForm1();
68
69 setWorkingForm("form1");
70 assertSelectOptionsForm1();
71 }
72
73 @Test public void testAssertSelectOptionsTwoForms()
74 {
75 beginAt("/pageWithTwoForms.html");
76 setWorkingForm("form1");
77 assertSelectOptionsForm1();
78 setWorkingForm("form2");
79 assertSelectOptionsForm2();
80 beginAt("/pageWithTwoFormsMulti.html");
81 setWorkingForm("form1");
82 assertSelectOptionsForm1();
83 setWorkingForm("form2");
84 assertSelectOptionsForm2();
85 }
86
87 @Test public void testSelectOptionsOneForm()
88 {
89
90 beginAt("/pageWithOneForm.html");
91 selectOption("singleSelect", "Option 2");
92 assertSelectedOptionEquals("singleSelect", "Option 2");
93 selectOption("duplicateSelect", "Option 2");
94 assertSelectedOptionEquals("duplicateSelect", "Option 2");
95 selectOption("duplicateSelect", 0, "Option 3");
96 assertSelectedOptionEquals("duplicateSelect", 0, "Option 3");
97 selectOption("duplicateSelect", 1, "Option B");
98 assertSelectedOptionEquals("duplicateSelect", 1, "Option B");
99
100 beginAt("/pageWithOneFormMulti.html");
101 selectOption("singleSelect", "Option 2");
102 assertSelectedOptionEquals("singleSelect", "Option 2");
103 selectOption("duplicateSelect", "Option 2");
104 assertSelectedOptionEquals("duplicateSelect", "Option 2");
105
106 beginAt("/pageWithOneFormMulti.html");
107 selectOption("duplicateSelect", 0, "Option 3");
108 assertSelectedOptionEquals("duplicateSelect", 0, "Option 3");
109 selectOption("duplicateSelect", 1, "Option B");
110 assertSelectedOptionEquals("duplicateSelect", 1, "Option B");
111
112
113 beginAt("/pageWithOneFormMulti.html");
114 selectOptions("singleSelect", new String[] { "Option 3", "Option 4"});
115 assertSelectedOptionsEqual("singleSelect", new String[] { "Option 3", "Option 4"});
116 selectOptions("duplicateSelect", new String[] { "Option 1", "Option 4"});
117 assertSelectedOptionsEqual("duplicateSelect", new String[] { "Option 1", "Option 4"});
118
119 beginAt("/pageWithOneFormMulti.html");
120 selectOptions("duplicateSelect", 0, new String[] { "Option 2", "Option 4"});
121 assertSelectedOptionsEqual("duplicateSelect", 0, new String[] { "Option 2", "Option 4"});
122 selectOptions("duplicateSelect", 1, new String[] { "Option C", "Option B"});
123 assertSelectedOptionsEqual("duplicateSelect", 1, new String[] { "Option B", "Option C"});
124
125
126 beginAt("/pageWithOneForm.html");
127 selectOptionByValue("singleSelect", "option2");
128 assertSelectedOptionValueEquals("singleSelect", "option2");
129 selectOptionByValue("duplicateSelect", "option2");
130 assertSelectedOptionValueEquals("duplicateSelect", "option2");
131 selectOptionByValue("duplicateSelect", 0, "option3");
132 assertSelectedOptionValueEquals("duplicateSelect", 0, "option3");
133 selectOptionByValue("duplicateSelect", 1, "optionB");
134 assertSelectedOptionValueEquals("duplicateSelect", 1, "optionB");
135
136 beginAt("/pageWithOneFormMulti.html");
137 selectOptionByValue("singleSelect", "option2");
138 assertSelectedOptionValueEquals("singleSelect", "option2");
139 assertSelectedOptionMatches("singleSelect", "option2");
140 selectOptionByValue("duplicateSelect", "option2");
141 assertSelectedOptionValueEquals("duplicateSelect", "option2");
142
143 beginAt("/pageWithOneFormMulti.html");
144 selectOptionByValue("duplicateSelect", 0, "option3");
145 assertSelectedOptionValueEquals("duplicateSelect", 0, "option3");
146 assertSelectedOptionMatches("duplicateSelect", 0, "option3");
147 selectOptionByValue("duplicateSelect", 1, "optionB");
148 assertSelectedOptionValueEquals("duplicateSelect", 1, "optionB");
149
150
151 beginAt("/pageWithOneFormMulti.html");
152 selectOptionsByValues("singleSelect", new String[] { "option3", "option4"});
153 assertSelectedOptionValuesEqual("singleSelect", new String[] { "option3", "option4"});
154
155
156 assertSelectedOptionsMatch("singleSelect", new String[] { "option3", "option4"});
157 selectOptionsByValues("duplicateSelect", new String[] { "option1", "option4"});
158 assertSelectedOptionValuesEqual("duplicateSelect", new String[] { "option1", "option4"});
159
160 beginAt("/pageWithOneFormMulti.html");
161 selectOptionsByValues("duplicateSelect", 0, new String[] { "option2", "option4"});
162 assertSelectedOptionValuesEqual("duplicateSelect", 0, new String[] { "option2", "option4"});
163 assertSelectedOptionsMatch("duplicateSelect", 0, new String[] { "option2", "option4"});
164 selectOptions("duplicateSelect", 1, new String[] { "Option C", "Option B"});
165 assertSelectedOptionValuesEqual("duplicateSelect", 1, new String[] { "optionB", "optionC"});
166 assertSelectedOptionsMatch("duplicateSelect", 0, new String[] { "option2", "option4"});
167 }
168
169
170
171
172 private void assertSelectOptions(String selectName,
173 String[] validOptions, String invalidOption,
174 String[] validOptionValues, String invalidOptionValue)
175 {
176 for ( int i = 0; i < validOptions.length; ++i )
177 {
178 assertSelectOptionPresent(selectName, validOptions[i]);
179 }
180 assertSelectOptionsPresent(selectName, validOptions);
181 assertSelectOptionsEqual(selectName, validOptions);
182 for ( int i = 0; i < validOptionValues.length; ++i )
183 {
184 assertSelectOptionValuePresent(selectName, validOptionValues[i]);
185 }
186 assertSelectOptionValuesPresent(selectName, validOptionValues);
187 assertSelectOptionValuesEqual(selectName, validOptionValues);
188
189 assertSelectOptionNotPresent(selectName, invalidOption);
190 assertSelectOptionsNotEqual(selectName, new String[] { invalidOption});
191 assertSelectOptionValueNotPresent(selectName, invalidOptionValue);
192 assertSelectOptionValuesNotEqual(selectName, new String[] { invalidOptionValue });
193 }
194
195 private void assertSelectOptions(String selectName, int index,
196 String[] validOptions, String invalidOption,
197 String[] validOptionValues, String invalidOptionValue)
198 {
199 for ( int i = 0; i < validOptions.length; ++i )
200 {
201 assertSelectOptionPresent(selectName, index, validOptions[i]);
202 }
203 assertSelectOptionsPresent(selectName, index, validOptions);
204 assertSelectOptionsEqual(selectName, index, validOptions);
205 for ( int i = 0; i < validOptionValues.length; ++i )
206 {
207 assertSelectOptionValuePresent(selectName, index, validOptionValues[i]);
208 }
209 assertSelectOptionValuesPresent(selectName, index, validOptionValues);
210 assertSelectOptionValuesEqual(selectName, index, validOptionValues);
211
212 assertSelectOptionNotPresent(selectName, index, invalidOption);
213 assertSelectOptionsNotEqual(selectName, index, new String[] { invalidOption});
214 assertSelectOptionValueNotPresent(selectName, index, invalidOptionValue);
215 assertSelectOptionValuesNotEqual(selectName, index, new String[] { invalidOptionValue });
216 }
217
218
219 private void assertSelectOptionsForm1()
220 {
221
222
223 assertSelectOptions("singleSelect",
224 new String[] { "Option 1", "Option 2", "Option 3", "Option 4"},
225 "badoption",
226 new String[] { "option1", "option2", "option3", "option4"},
227 "badoption");
228 assertSelectOptions("singleSelect", 0,
229 new String[] { "Option 1", "Option 2", "Option 3", "Option 4"},
230 "badoption",
231 new String[] { "option1", "option2", "option3", "option4"},
232 "badoption");
233
234
235
236
237 assertSelectOptions("duplicateSelect",
238 new String[] { "Option 1", "Option 2", "Option 3", "Option 4"},
239 "badoption",
240 new String[] { "option1", "option2", "option3", "option4"},
241 "badoption");
242 assertSelectOptions("duplicateSelect", 0,
243 new String[] { "Option 1", "Option 2", "Option 3", "Option 4"},
244 "badoption",
245 new String[] { "option1", "option2", "option3", "option4"},
246 "badoption");
247 assertSelectOptions("duplicateSelect", 1,
248 new String[] { "Option A", "Option B", "Option C", "Option D"},
249 "badoption",
250 new String[] { "optionA", "optionB", "optionC", "optionD"},
251 "badoption");
252 }
253 private void assertSelectOptionsForm2()
254 {
255
256
257 assertSelectOptions("singleSelectA",
258 new String[] { "Option 1a", "Option 2a", "Option 3a", "Option 4a"},
259 "badoption",
260 new String[] { "option1a", "option2a", "option3a", "option4a"},
261 "badoption");
262 assertSelectOptions("singleSelectA", 0,
263 new String[] { "Option 1a", "Option 2a", "Option 3a", "Option 4a"},
264 "badoption",
265 new String[] { "option1a", "option2a", "option3a", "option4a"},
266 "badoption");
267
268
269
270
271 assertSelectOptions("duplicateSelectA",
272 new String[] { "Option 1a", "Option 2a", "Option 3a", "Option 4a"},
273 "badoption",
274 new String[] { "option1a", "option2a", "option3a", "option4a"},
275 "badoption");
276 assertSelectOptions("duplicateSelectA", 0,
277 new String[] { "Option 1a", "Option 2a", "Option 3a", "Option 4a"},
278 "badoption",
279 new String[] { "option1a", "option2a", "option3a", "option4a"},
280 "badoption");
281 assertSelectOptions("duplicateSelectA", 1,
282 new String[] { "Option Aa", "Option Ba", "Option Ca", "Option Da"},
283 "badoption",
284 new String[] { "optionAa", "optionBa", "optionCa", "optionDa"},
285 "badoption");
286 }
287 }