1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
package org.xwiki.test.ui.appwithinminutes; |
21 |
|
|
22 |
|
import java.util.List; |
23 |
|
|
24 |
|
import org.junit.Assert; |
25 |
|
import org.junit.BeforeClass; |
26 |
|
import org.junit.Test; |
27 |
|
import org.openqa.selenium.By; |
28 |
|
import org.openqa.selenium.Keys; |
29 |
|
import org.openqa.selenium.WebElement; |
30 |
|
import org.xwiki.appwithinminutes.test.po.UserClassFieldEditPane; |
31 |
|
import org.xwiki.test.ui.po.InlinePage; |
32 |
|
import org.xwiki.test.ui.po.editor.UserPicker; |
33 |
|
import org.xwiki.test.ui.po.editor.UserPicker.UserElement; |
34 |
|
import org.xwiki.xclass.test.po.ClassSheetPage; |
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
@version |
40 |
|
@since |
41 |
|
|
|
|
| 97.5% |
Uncovered Elements: 4 (163) |
Complexity: 12 |
Complexity Density: 0.08 |
|
42 |
|
public class UserClassFieldTest extends AbstractClassEditorTest |
43 |
|
{ |
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
44 |
1 |
@BeforeClass... |
45 |
|
public static void setUpClass() throws Exception |
46 |
|
{ |
47 |
|
|
48 |
1 |
getUtil().createUserAndLogin("tmortagne", "tmortagne", "first_name", "Thomas", "last_name", "Mortagne", |
49 |
|
"avatar", "tmortagne.png"); |
50 |
1 |
getUtil().attachFile("XWiki", "tmortagne", "tmortagne.png", |
51 |
|
UserClassFieldTest.class.getResourceAsStream("/appwithinminutes/tmortagne.png"), false); |
52 |
1 |
getUtil().createUserAndLogin("Enygma2002", "Enygma2002", "first_name", "Eduard", "last_name", "Moraru", |
53 |
|
"avatar", "Enygma2002.png"); |
54 |
1 |
getUtil().attachFile("XWiki", "Enygma2002", "Enygma2002.png", |
55 |
|
UserClassFieldTest.class.getResourceAsStream("/appwithinminutes/Enygma2002.png"), false); |
56 |
|
} |
57 |
|
|
|
|
| 92.9% |
Uncovered Elements: 2 (28) |
Complexity: 3 |
Complexity Density: 0.11 |
1PASS
|
|
58 |
1 |
@Test... |
59 |
|
public void testSuggestions() |
60 |
|
{ |
61 |
1 |
UserPicker userPicker = new UserClassFieldEditPane(editor.addField("User").getName()).getUserPicker(); |
62 |
|
|
63 |
|
|
64 |
1 |
List<UserElement> suggestions = userPicker.sendKeys("mOr").waitForSuggestions().getSuggestions(); |
65 |
1 |
Assert.assertEquals(2, suggestions.size()); |
66 |
1 |
assertUserElement(suggestions.get(0), "Eduard Moraru", "Enygma2002"); |
67 |
1 |
assertUserElement(suggestions.get(1), "Thomas Mortagne"); |
68 |
|
|
69 |
|
|
70 |
1 |
suggestions = userPicker.sendKeys(Keys.BACK_SPACE, Keys.BACK_SPACE, "As").waitForSuggestions().getSuggestions(); |
71 |
1 |
Assert.assertEquals(1, suggestions.size()); |
72 |
1 |
assertUserElement(suggestions.get(0), "Thomas Mortagne"); |
73 |
|
|
74 |
|
|
75 |
1 |
suggestions = userPicker.sendKeys(Keys.BACK_SPACE, "20").waitForSuggestions().getSuggestions(); |
76 |
1 |
Assert.assertEquals(1, suggestions.size()); |
77 |
1 |
assertUserElement(suggestions.get(0), "Eduard Moraru", "Enygma2002"); |
78 |
|
|
79 |
|
|
80 |
1 |
suggestions = userPicker.clear().sendKeys("guest").waitForSuggestions().getSuggestions(); |
81 |
1 |
Assert.assertEquals(1, suggestions.size()); |
82 |
1 |
Assert.assertEquals("User not found", suggestions.get(0).getText()); |
83 |
|
|
84 |
|
|
85 |
1 |
suggestions = userPicker.clear().sendKeys("admin").waitForSuggestions().getSuggestions(); |
86 |
1 |
Assert.assertEquals(1, suggestions.size()); |
87 |
1 |
assertUserElement(suggestions.get(0), "Administrator", "Admin", "noavatar.png"); |
88 |
|
|
89 |
|
|
90 |
1 |
Assert.assertTrue(userPicker.clear().sendKeys("a").waitForSuggestions().getSuggestions().size() > 2); |
91 |
|
|
92 |
|
|
93 |
1 |
try { |
94 |
1 |
userPicker.sendKeys(Keys.BACK_SPACE).waitForSuggestions(); |
95 |
0 |
Assert.fail(); |
96 |
|
} catch (Exception e) { |
97 |
|
} |
98 |
|
|
99 |
|
|
100 |
1 |
userPicker.sendKeys("mor").waitForSuggestions().sendKeys(Keys.ESCAPE).waitForSuggestionsToFadeOut(); |
101 |
|
|
102 |
|
|
103 |
1 |
userPicker.moveMouseOver().sendKeys(Keys.BACK_SPACE).waitForSuggestions().waitForSuggestionsToDisappear(); |
104 |
|
|
105 |
|
|
106 |
1 |
userPicker.sendKeys(Keys.BACK_SPACE).waitForSuggestions().getSuggestions().get(0).moveMouseOver(); |
107 |
1 |
try { |
108 |
1 |
userPicker.waitForSuggestionsToDisappear(); |
109 |
0 |
Assert.fail(); |
110 |
|
} catch (Exception e) { |
111 |
|
} |
112 |
|
|
113 |
|
|
114 |
1 |
userPicker.moveMouseOver().waitForSuggestionsToFadeOut(); |
115 |
|
} |
116 |
|
|
117 |
|
|
118 |
|
|
119 |
|
|
120 |
|
@param |
121 |
|
@param |
122 |
|
@param |
123 |
|
|
|
|
| 90.5% |
Uncovered Elements: 2 (21) |
Complexity: 4 |
Complexity Density: 0.27 |
|
124 |
19 |
private void assertUserElement(UserElement user, String name, String... extra)... |
125 |
|
{ |
126 |
19 |
String alias; |
127 |
19 |
if (extra.length > 0) { |
128 |
12 |
alias = extra[0]; |
129 |
|
} else { |
130 |
7 |
String[] parts = name.split("\\s+"); |
131 |
7 |
if (parts.length > 1) { |
132 |
7 |
alias = parts[0].toLowerCase().charAt(0) + parts[1].toLowerCase(); |
133 |
|
} else { |
134 |
0 |
alias = name; |
135 |
|
} |
136 |
|
} |
137 |
|
|
138 |
19 |
String image = alias + ".png?"; |
139 |
19 |
if (extra.length > 1) { |
140 |
6 |
image = extra[1]; |
141 |
|
} |
142 |
|
|
143 |
19 |
Assert.assertEquals(name, user.getName()); |
144 |
19 |
Assert.assertEquals(alias, user.getAlias()); |
145 |
19 |
WebElement avatar = user.getAvatar(); |
146 |
19 |
Assert.assertEquals(name, avatar.getAttribute("alt")); |
147 |
19 |
Assert.assertTrue(avatar.getAttribute("src").contains("/" + image)); |
148 |
|
} |
149 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (22) |
Complexity: 1 |
Complexity Density: 0.05 |
1PASS
|
|
150 |
1 |
@Test... |
151 |
|
public void testSingleSelection() |
152 |
|
{ |
153 |
1 |
UserPicker userPicker = new UserClassFieldEditPane(editor.addField("User").getName()).getUserPicker(); |
154 |
|
|
155 |
|
|
156 |
1 |
userPicker.sendKeys("mor").waitForSuggestions().sendKeys(Keys.ARROW_DOWN, Keys.ARROW_DOWN, Keys.ENTER); |
157 |
1 |
List<UserElement> selectedUsers = userPicker.waitForSuggestionsToFadeOut().getAcceptedSuggestions(); |
158 |
1 |
Assert.assertEquals(1, selectedUsers.size()); |
159 |
1 |
assertUserElement(selectedUsers.get(0), "Thomas Mortagne"); |
160 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
161 |
|
|
162 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
163 |
|
|
164 |
|
|
165 |
1 |
userPicker.sendKeys("mor").waitForSuggestions().select("Enygma2002"); |
166 |
1 |
selectedUsers = userPicker.waitForSuggestionsToFadeOut().getAcceptedSuggestions(); |
167 |
1 |
Assert.assertEquals(1, selectedUsers.size()); |
168 |
1 |
assertUserElement(selectedUsers.get(0), "Eduard Moraru", "Enygma2002"); |
169 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
170 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
171 |
|
|
172 |
|
|
173 |
1 |
selectedUsers.get(0).delete(); |
174 |
1 |
Assert.assertEquals(0, userPicker.getAcceptedSuggestions().size()); |
175 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
176 |
|
|
177 |
|
|
178 |
1 |
userPicker.sendKeys("admin").waitForSuggestions().sendKeys(Keys.ENTER); |
179 |
1 |
selectedUsers = userPicker.waitForSuggestionsToFadeOut().getAcceptedSuggestions(); |
180 |
1 |
Assert.assertEquals(1, selectedUsers.size()); |
181 |
1 |
assertUserElement(selectedUsers.get(0), "Administrator", "Admin", "noavatar.png"); |
182 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
183 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
184 |
|
} |
185 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (27) |
Complexity: 1 |
Complexity Density: 0.04 |
1PASS
|
|
186 |
1 |
@Test... |
187 |
|
public void testMultipleSelection() |
188 |
|
{ |
189 |
1 |
UserClassFieldEditPane userField = new UserClassFieldEditPane(editor.addField("User").getName()); |
190 |
1 |
userField.openConfigPanel(); |
191 |
1 |
userField.setMultipleSelect(true); |
192 |
1 |
userField.closeConfigPanel(); |
193 |
1 |
UserPicker userPicker = userField.getUserPicker(); |
194 |
|
|
195 |
|
|
196 |
1 |
userPicker.sendKeys("tmortagne").waitForSuggestions().sendKeys(Keys.ENTER).waitForSuggestionsToFadeOut(); |
197 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
198 |
1 |
userPicker.sendKeys("2002").waitForSuggestions().select("Enygma").waitForSuggestionsToFadeOut(); |
199 |
1 |
Assert.assertTrue(userPicker.getClearSelectionLink().isDisplayed()); |
200 |
1 |
List<UserElement> selectedUsers = userPicker.getAcceptedSuggestions(); |
201 |
1 |
Assert.assertEquals(2, selectedUsers.size()); |
202 |
1 |
assertUserElement(selectedUsers.get(0), "Thomas Mortagne"); |
203 |
1 |
assertUserElement(selectedUsers.get(1), "Eduard Moraru", "Enygma2002"); |
204 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
205 |
|
|
206 |
|
|
207 |
1 |
selectedUsers.get(0).delete(); |
208 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
209 |
|
|
210 |
|
|
211 |
1 |
userPicker.sendKeys("admin").waitForSuggestions().sendKeys(Keys.ENTER).waitForSuggestionsToFadeOut(); |
212 |
1 |
selectedUsers = userPicker.getAcceptedSuggestions(); |
213 |
1 |
Assert.assertEquals(2, selectedUsers.size()); |
214 |
1 |
assertUserElement(selectedUsers.get(0), "Eduard Moraru", "Enygma2002"); |
215 |
1 |
assertUserElement(selectedUsers.get(1), "Administrator", "Admin", "noavatar.png"); |
216 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
217 |
|
|
218 |
|
|
219 |
1 |
selectedUsers.get(1).moveBefore(selectedUsers.get(0)); |
220 |
1 |
assertUserElement(userPicker.getAcceptedSuggestions().get(0), "Administrator", "Admin", "noavatar.png"); |
221 |
|
|
222 |
|
|
223 |
1 |
userPicker.getClearSelectionLink().click(); |
224 |
1 |
Assert.assertFalse(userPicker.getClearSelectionLink().isDisplayed()); |
225 |
1 |
Assert.assertEquals(0, userPicker.getAcceptedSuggestions().size()); |
226 |
|
} |
227 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (38) |
Complexity: 1 |
Complexity Density: 0.03 |
1PASS
|
|
228 |
1 |
@Test... |
229 |
|
public void testSaveAndInitialSelection() |
230 |
|
{ |
231 |
1 |
UserPicker userPicker = new UserClassFieldEditPane(editor.addField("User").getName()).getUserPicker(); |
232 |
1 |
userPicker.sendKeys("thomas").waitForSuggestions().sendKeys(Keys.ENTER); |
233 |
1 |
editor.clickSaveAndView().edit(); |
234 |
|
|
235 |
1 |
UserClassFieldEditPane userField = new UserClassFieldEditPane("user1"); |
236 |
1 |
userPicker = userField.getUserPicker().waitToLoad(); |
237 |
1 |
List<UserElement> selectedUsers = userPicker.getAcceptedSuggestions(); |
238 |
1 |
Assert.assertEquals(1, selectedUsers.size()); |
239 |
1 |
assertUserElement(selectedUsers.get(0), "Thomas Mortagne"); |
240 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
241 |
|
|
242 |
|
|
243 |
1 |
userField.openConfigPanel(); |
244 |
1 |
userField.setMultipleSelect(true); |
245 |
1 |
userField.closeConfigPanel(); |
246 |
|
|
247 |
|
|
248 |
1 |
userPicker = userField.getUserPicker(); |
249 |
|
|
250 |
|
|
251 |
1 |
userPicker.waitToLoad().sendKeys("admin").waitForSuggestions().sendKeys(Keys.ENTER); |
252 |
1 |
editor.clickSaveAndContinue(); |
253 |
1 |
editor.clickCancel().edit(); |
254 |
|
|
255 |
1 |
userPicker = new UserClassFieldEditPane("user1").getUserPicker().waitToLoad(); |
256 |
1 |
selectedUsers = userPicker.getAcceptedSuggestions(); |
257 |
1 |
Assert.assertEquals(2, selectedUsers.size()); |
258 |
1 |
assertUserElement(selectedUsers.get(0), "Thomas Mortagne"); |
259 |
1 |
assertUserElement(selectedUsers.get(1), "Administrator", "Admin", "noavatar.png"); |
260 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
261 |
|
|
262 |
|
|
263 |
1 |
userPicker.sendKeys("foobar").waitForSuggestions().sendKeys(Keys.ESCAPE).waitForSuggestionsToFadeOut(); |
264 |
1 |
editor.clickSaveAndContinue(); |
265 |
1 |
editor.clickCancel().edit(); |
266 |
|
|
267 |
1 |
userPicker = new UserClassFieldEditPane("user1").getUserPicker().waitToLoad(); |
268 |
1 |
selectedUsers = userPicker.getAcceptedSuggestions(); |
269 |
1 |
Assert.assertEquals(3, selectedUsers.size()); |
270 |
1 |
assertUserElement(selectedUsers.get(2), "foobar", "foobar", "noavatar.png"); |
271 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
272 |
|
|
273 |
|
|
274 |
1 |
selectedUsers.get(2).delete(); |
275 |
1 |
Assert.assertEquals(2, userPicker.getAcceptedSuggestions().size()); |
276 |
|
|
277 |
|
|
278 |
1 |
userPicker.getClearSelectionLink().click(); |
279 |
1 |
editor.clickSaveAndContinue(); |
280 |
1 |
editor.clickCancel().edit(); |
281 |
|
|
282 |
1 |
userPicker = new UserClassFieldEditPane("user1").getUserPicker().waitToLoad(); |
283 |
1 |
Assert.assertEquals(0, userPicker.getAcceptedSuggestions().size()); |
284 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
285 |
|
} |
286 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (16) |
Complexity: 1 |
Complexity Density: 0.06 |
1PASS
|
|
287 |
1 |
@Test... |
288 |
|
public void testApplicationEntry() |
289 |
|
{ |
290 |
|
|
291 |
1 |
UserPicker userPicker = new UserClassFieldEditPane(editor.addField("User").getName()).getUserPicker(); |
292 |
1 |
userPicker.sendKeys("thomas").waitForSuggestions().sendKeys(Keys.ENTER); |
293 |
1 |
editor.clickSaveAndView(); |
294 |
|
|
295 |
|
|
296 |
1 |
ClassSheetPage classSheetPage = new ClassSheetPage(); |
297 |
1 |
InlinePage entryEditPage = classSheetPage.createNewDocument(getTestClassName(), getTestMethodName() + "Entry"); |
298 |
|
|
299 |
|
|
300 |
1 |
String id = getTestClassName() + "." + getTestMethodName() + "_0_user1"; |
301 |
1 |
userPicker = new UserPicker(getDriver().findElement(By.id(id))); |
302 |
1 |
List<UserElement> selectedUsers = userPicker.waitToLoad().getAcceptedSuggestions(); |
303 |
1 |
Assert.assertEquals(1, selectedUsers.size()); |
304 |
1 |
assertUserElement(selectedUsers.get(0), "Thomas Mortagne"); |
305 |
1 |
Assert.assertEquals("", userPicker.getValue()); |
306 |
|
|
307 |
|
|
308 |
1 |
userPicker.sendKeys("eduard").waitForSuggestions().sendKeys(Keys.ENTER).waitForSuggestionsToFadeOut(); |
309 |
|
|
310 |
1 |
entryEditPage.clickSaveAndView().waitUntilPageIsLoaded(); |
311 |
|
|
312 |
|
|
313 |
1 |
List<WebElement> users = getDriver().findElements(By.className("user")); |
314 |
1 |
Assert.assertEquals(1, users.size()); |
315 |
1 |
assertUserElement(new UserElement(users.get(0)), "Eduard Moraru", "Enygma2002"); |
316 |
|
} |
317 |
|
} |