1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.fit.console;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertNull;
24
25 import java.util.Calendar;
26 import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
27 import org.apache.syncope.client.ui.commons.Constants;
28 import org.apache.wicket.Component;
29 import org.apache.wicket.markup.html.basic.Label;
30 import org.apache.wicket.markup.html.form.TextField;
31 import org.apache.wicket.util.tester.FormTester;
32 import org.junit.jupiter.api.BeforeEach;
33 import org.junit.jupiter.api.Test;
34
35 public class UsersITCase extends AbstractConsoleITCase {
36
37 private static final String TAB_PANEL = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
38
39 private static final String CONTAINER = TAB_PANEL + "container:content:";
40
41 @BeforeEach
42 public void login() {
43 doLogin(ADMIN_UNAME, ADMIN_PWD);
44 }
45
46 @Test
47 public void filteredSearch() {
48 TESTER.clickLink("body:realmsLI:realms", false);
49 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
50
51 TESTER.clickLink(
52 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
53
54 TESTER.executeAjaxEvent(
55 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
56 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
57 Constants.ON_CLICK);
58
59 TESTER.assertComponent(
60 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:"
61 + "searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:value:"
62 + "textField", TextField.class);
63 TESTER.assertComponent(
64 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:"
65 + "searchFormContainer:search:multiValueContainer:innerForm:content:view:1:panel:container:value:"
66 + "textField", TextField.class);
67 }
68
69 @Test
70 public void forceChangePassword() {
71 TESTER.clickLink("body:realmsLI:realms", false);
72 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
73
74 Component component = findComponentByProp("username", CONTAINER
75 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "verdi");
76 assertNotNull(component);
77
78 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
79 TESTER.clickLink(TAB_PANEL
80 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
81 + "actions:actions:actionRepeater:1:action:action");
82
83 assertSuccessMessage();
84 }
85
86 @Test
87 public void clickToCloneUser() {
88 TESTER.clickLink("body:realmsLI:realms", false);
89 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
90
91 Component component = findComponentByProp("username", CONTAINER
92 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
93 assertNotNull(component);
94
95 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
96 TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
97 + "actions:actions:actionRepeater:10:action:action");
98
99 TESTER.assertComponent(TAB_PANEL
100 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
101 TextField.class);
102
103 FormTester formTester = TESTER.newFormTester(TAB_PANEL
104 + "outerObjectsRepeater:0:outer:form:content:form");
105 assertNotNull(formTester);
106
107 formTester.submit("buttons:cancel");
108 }
109
110 @Test
111 public void editRelationships() {
112 TESTER.clickLink("body:realmsLI:realms", false);
113 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
114
115 Component component = findComponentByProp("username", CONTAINER
116 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
117 assertNotNull(component);
118
119 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
120 TESTER.clickLink(TAB_PANEL
121 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
122 + "actions:actions:actionRepeater:0:action:action");
123
124 TESTER.assertComponent(TAB_PANEL
125 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
126 TextField.class);
127
128 FormTester formTester = TESTER.newFormTester(TAB_PANEL
129 + "outerObjectsRepeater:0:outer:form:content:form");
130 assertNotNull(formTester);
131
132 formTester.submit("buttons:next");
133
134 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
135 assertNotNull(formTester);
136 formTester.submit("buttons:next");
137
138 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
139 assertNotNull(formTester);
140 formTester.submit("buttons:next");
141
142 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
143 assertNotNull(formTester);
144 formTester.submit("buttons:next");
145
146 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
147 assertNotNull(formTester);
148 formTester.submit("buttons:next");
149
150 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
151 assertNotNull(formTester);
152 formTester.submit("buttons:next");
153
154 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
155 assertNotNull(formTester);
156 formTester.submit("buttons:next");
157
158 TESTER.executeAjaxEvent(TAB_PANEL
159 + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:actions:"
160 + "actionRepeater:0:action:action", Constants.ON_CLICK);
161
162 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
163 assertNotNull(formTester);
164
165 formTester.setValue("view:relationships:specification:type:dropDownChoiceField", "1");
166 TESTER.executeAjaxEvent(TAB_PANEL
167 + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
168 + "specification:type:dropDownChoiceField", Constants.ON_CHANGE);
169
170 Component otherType = findComponentById(
171 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:specification",
172 "otherType");
173 assertNotNull(otherType);
174 otherType.setEnabled(true);
175
176 formTester.setValue("view:relationships:specification:otherType:dropDownChoiceField", "PRINTER");
177 TESTER.executeAjaxEvent(TAB_PANEL
178 + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
179 + "specification:otherType:dropDownChoiceField", Constants.ON_CHANGE);
180
181 component = findComponentByProp("name", TAB_PANEL + "outerObjectsRepeater:"
182 + "0:outer:form:content:form:view:relationships:specification:searchPanelContainer:searchPanel:"
183 + "searchResultPanel:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:"
184 + "dataTable:body:rows:1:cells:2:cell", "Canon MF 8030cn");
185 assertNotNull(component);
186
187 formTester.submit("buttons:cancel");
188 }
189
190 @Test
191 public void editUser() {
192 TESTER.clickLink("body:realmsLI:realms", false);
193 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
194
195 Component component = findComponentByProp("username", CONTAINER
196 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
197 assertNotNull(component);
198
199 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
200 TESTER.clickLink(TAB_PANEL
201 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
202 + "actions:actions:actionRepeater:0:action:action");
203
204 TESTER.assertComponent(TAB_PANEL
205 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
206 TextField.class);
207
208 FormTester formTester = TESTER.newFormTester(TAB_PANEL
209 + "outerObjectsRepeater:0:outer:form:content:form");
210 assertNotNull(formTester);
211
212 formTester.submit("buttons:next");
213
214 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
215 assertNotNull(formTester);
216 formTester.submit("buttons:next");
217
218 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
219 assertNotNull(formTester);
220 formTester.submit("buttons:next");
221
222 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
223 assertNotNull(formTester);
224 formTester.submit("buttons:next");
225
226 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
227 assertNotNull(formTester);
228 formTester.submit("buttons:next");
229
230 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
231 assertNotNull(formTester);
232 formTester.submit("buttons:next");
233
234 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
235 assertNotNull(formTester);
236 formTester.submit("buttons:next");
237
238 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
239 assertNotNull(formTester);
240 formTester.submit("buttons:finish");
241
242 assertSuccessMessage();
243
244 TESTER.assertComponent(TAB_PANEL
245 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
246 + "container:content:group:beans:0:fields:1:field", Label.class);
247
248 TESTER.clickLink(TAB_PANEL
249 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
250
251 component = findComponentByProp("username", CONTAINER
252 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
253 assertNotNull(component);
254 }
255
256 @Test
257 public void editUserMembership() {
258 TESTER.clickLink("body:realmsLI:realms", false);
259 TESTER.executeAjaxEvent("body:content:realmChoicePanel:container"
260 + ":realmsFragment:realms:btn", Constants.ON_CLICK);
261 TESTER.executeAjaxEvent("body:content:realmChoicePanel:container"
262 + ":realmsFragment:realms:dropdown-menu:buttons:2:button",
263 Constants.ON_CLICK);
264
265 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
266
267 Component component = findComponentByProp("username", CONTAINER
268 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
269 assertNull(component);
270
271 component = findComponentByProp("username", CONTAINER
272 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
273 assertNotNull(component);
274
275 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
276 TESTER.clickLink(TAB_PANEL
277 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
278 + "actions:actions:actionRepeater:0:action:action");
279
280 FormTester formTester = TESTER.newFormTester(TAB_PANEL
281 + "outerObjectsRepeater:0:outer:form:content:form");
282 assertNotNull(formTester);
283 formTester.submit("buttons:next");
284
285 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
286 assertNotNull(formTester);
287 formTester.submit("buttons:next");
288
289 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
290 assertNotNull(formTester);
291
292 formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
293 TESTER.executeAjaxEvent(
294 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
295
296 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
297 assertNotNull(formTester);
298
299 TESTER.executeAjaxEvent(
300 "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:0:"
301 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
302 Constants.ON_CLICK);
303
304 formTester.setValue("view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
305 + "schemas:0:panel:spinner", "1");
306 formTester.submit("buttons:next");
307
308 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
309 assertNotNull(formTester);
310 formTester.submit("buttons:finish");
311
312 assertSuccessMessage();
313 TESTER.cleanupFeedbackMessages();
314
315 TESTER.assertComponent(TAB_PANEL
316 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
317 + "container:content:group:beans:0:fields:1:field", Label.class);
318
319 TESTER.clickLink(TAB_PANEL
320 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
321
322 component = findComponentByProp("username", CONTAINER
323 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
324 assertNotNull(component);
325
326
327 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
328 TESTER.clickLink(TAB_PANEL
329 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
330 + "actions:actions:actionRepeater:0:action:action");
331
332 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
333 assertNotNull(formTester);
334 formTester.submit("buttons:next");
335
336 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
337 assertNotNull(formTester);
338 formTester.submit("buttons:next");
339
340 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
341 assertNotNull(formTester);
342 formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "root,otherchild");
343 TESTER.executeAjaxEvent(
344 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:finish", Constants.ON_CLICK);
345
346 assertSuccessMessage();
347 TESTER.cleanupFeedbackMessages();
348 }
349
350 @Test
351 public void editUserMemberships() {
352 TESTER.clickLink("body:realmsLI:realms", false);
353 TESTER.executeAjaxEvent("body:content:realmChoicePanel:container"
354 + ":realmsFragment:realms:btn", Constants.ON_CLICK);
355 TESTER.executeAjaxEvent("body:content:realmChoicePanel:container"
356 + ":realmsFragment:realms:dropdown-menu:buttons:2:button",
357 Constants.ON_CLICK);
358
359 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
360
361 Component component = findComponentByProp("username", CONTAINER
362 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
363 assertNotNull(component);
364
365
366 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
367 TESTER.clickLink(TAB_PANEL
368 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
369 + "actions:actions:actionRepeater:0:action:action");
370
371 FormTester formTester = TESTER.newFormTester(TAB_PANEL
372 + "outerObjectsRepeater:0:outer:form:content:form");
373 assertNotNull(formTester);
374 formTester.submit("buttons:next");
375
376 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
377 assertNotNull(formTester);
378 formTester.submit("buttons:next");
379
380 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
381 assertNotNull(formTester);
382
383
384 formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
385 TESTER.executeAjaxEvent(TAB_PANEL
386 + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
387 Constants.ON_CLICK);
388
389 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
390 assertNotNull(formTester);
391
392
393 TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
394 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
395 Constants.ON_CLICK);
396
397
398 TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
399 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
400 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field",
401 TextField.class);
402 formTester.setValue("view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
403 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", "2019-03-05");
404
405 TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
406 + "outerObjectsRepeater:0:"
407 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
408 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panelPlus:add"));
409
410 TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
411 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
412 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field",
413 TextField.class);
414 formTester.setValue("view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
415 + "schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field", "2019-03-06");
416
417 TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
418 + "outerObjectsRepeater:0:"
419 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
420 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panelPlus:add"));
421
422 formTester.submit("buttons:next");
423
424 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
425 assertNotNull(formTester);
426 formTester.submit("buttons:finish");
427
428 assertSuccessMessage();
429 TESTER.cleanupFeedbackMessages();
430
431 TESTER.assertComponent(TAB_PANEL
432 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
433 + "container:content:group:beans:0:fields:1:field", Label.class);
434
435 TESTER.clickLink(TAB_PANEL
436 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
437
438
439 component = findComponentByProp("username", CONTAINER
440 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
441 assertNotNull(component);
442
443 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
444 TESTER.clickLink(TAB_PANEL
445 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
446 + "actions:actions:actionRepeater:0:action:action");
447
448 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
449 assertNotNull(formTester);
450 formTester.submit("buttons:next");
451
452 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
453 assertNotNull(formTester);
454 formTester.submit("buttons:next");
455
456 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
457 assertNotNull(formTester);
458
459
460 formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
461 TESTER.executeAjaxEvent(TAB_PANEL
462 + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
463 Constants.ON_CLICK);
464
465 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
466 assertNotNull(formTester);
467
468
469 TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
470 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
471 Constants.ON_CLICK);
472
473
474 TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
475 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
476 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field",
477 TextField.class);
478
479 TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
480 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
481 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field",
482 TextField.class);
483
484 Calendar cal = Calendar.getInstance();
485 cal.set(2019, Calendar.MARCH, 5, 0, 0, 0);
486 cal.set(Calendar.MILLISECOND, 0);
487 Calendar cal2 = Calendar.getInstance();
488 cal2.set(2019, Calendar.MARCH, 6, 0, 0, 0);
489 cal2.set(Calendar.MILLISECOND, 0);
490 TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
491 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
492 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", cal.getTime());
493 TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
494 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
495 + "schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field", cal2.getTime());
496
497
498 TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
499 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
500 + "content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:drop",
501 Constants.ON_CLICK);
502 TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
503 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
504 + "content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:drop",
505 Constants.ON_CLICK);
506
507 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
508 assertNotNull(formTester);
509 formTester.submit("buttons:finish");
510
511 assertSuccessMessage();
512 TESTER.cleanupFeedbackMessages();
513
514 TESTER.assertComponent(TAB_PANEL
515 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
516 + "container:content:group:beans:0:fields:1:field", Label.class);
517
518 TESTER.clickLink(TAB_PANEL
519 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
520
521
522 component = findComponentByProp("username", CONTAINER
523 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
524 assertNotNull(component);
525
526 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
527 TESTER.clickLink(TAB_PANEL
528 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
529 + "actions:actions:actionRepeater:0:action:action");
530
531 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
532 assertNotNull(formTester);
533 formTester.submit("buttons:next");
534
535 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
536 assertNotNull(formTester);
537 formTester.submit("buttons:next");
538
539 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
540 assertNotNull(formTester);
541
542
543 formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
544 TESTER.executeAjaxEvent(TAB_PANEL
545 + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
546 Constants.ON_CLICK);
547
548 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
549 assertNotNull(formTester);
550
551
552 TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
553 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
554 Constants.ON_CLICK);
555
556
557 TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
558 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
559 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", null);
560 component = findComponentByProp("syncope-path", TAB_PANEL + "outerObjectsRepeater:0:"
561 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
562 + "content:schemas:5:panel:multiValueContainer:innerForm",
563 TAB_PANEL + "outerObjectsRepeater:0:"
564 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
565 + "content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field");
566 assertNull(component);
567
568
569 formTester.submit("buttons:cancel");
570 }
571
572 @Test
573 public void checkDeleteUsrLink() {
574 TESTER.clickLink("body:realmsLI:realms", false);
575 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
576
577 Component component = findComponentByProp("username", CONTAINER
578 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
579 assertNotNull(component);
580
581 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
582 TESTER.assertComponent(TAB_PANEL
583 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
584 + "actions:actions:actionRepeater:11:action:action", IndicatingOnConfirmAjaxLink.class);
585 }
586
587 @Test
588 public void editDateTimeField() {
589 TESTER.clickLink("body:realmsLI:realms", false);
590 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
591
592 Component component = findComponentByProp("username", CONTAINER
593 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
594 assertNotNull(component);
595
596 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
597 TESTER.clickLink(TAB_PANEL
598 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
599 + "actions:actions:actionRepeater:0:action:action");
600
601 TESTER.assertComponent(TAB_PANEL
602 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
603 TextField.class);
604
605 FormTester formTester = TESTER.newFormTester(TAB_PANEL
606 + "outerObjectsRepeater:0:outer:form:content:form");
607 assertNotNull(formTester);
608 formTester.submit("buttons:next");
609
610 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
611 assertNotNull(formTester);
612 formTester.submit("buttons:next");
613
614 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
615 assertNotNull(formTester);
616 formTester.submit("buttons:next");
617
618 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
619 assertNotNull(formTester);
620 formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:datepicker", "1/19/17");
621 formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:timepicker", "12:00 AM");
622
623 formTester.setValue("view:plainSchemas:tabs:0:body:"
624 + "content:schemas:8:panel:multiValueContainer:innerForm:content:view:0:panel:field", "2017-01-19");
625
626 formTester.submit("buttons:finish");
627
628 assertSuccessMessage();
629 TESTER.cleanupFeedbackMessages();
630
631 TESTER.assertComponent(TAB_PANEL
632 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
633 + "container:content:group:beans:0:fields:1:field", Label.class);
634
635 TESTER.clickLink(TAB_PANEL
636 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
637
638 component = findComponentByProp("username", CONTAINER
639 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
640 assertNotNull(component);
641
642 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
643 TESTER.clickLink(TAB_PANEL
644 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
645 + "actions:actions:actionRepeater:0:action:action");
646
647 TESTER.assertComponent(TAB_PANEL
648 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
649 TextField.class);
650
651 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
652 assertNotNull(formTester);
653 formTester.submit("buttons:next");
654
655 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
656 assertNotNull(formTester);
657 formTester.submit("buttons:next");
658
659 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
660 assertNotNull(formTester);
661 formTester.submit("buttons:next");
662
663 Calendar cal = Calendar.getInstance();
664 cal.set(2017, Calendar.JANUARY, 19, 0, 0, 0);
665 cal.set(Calendar.MILLISECOND, 0);
666
667 assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:"
668 + "container:content:tabbedPanel:panel:searchResult:"
669 + "outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"
670 + "tabs:0:body:content:schemas:1:panel:field:timepicker").getDefaultModelObjectAsString(), "12:00 AM");
671
672 TESTER.assertModelValue("body:content:body:container:content:"
673 + "tabbedPanel:panel:searchResult:outerObjectsRepeater:0:outer:form:content:"
674 + "form:view:plainSchemas:tabs:0:body:content:schemas:8:panel:"
675 + "multiValueContainer:innerForm:content:view:0:panel:field", cal.getTime());
676 }
677
678 @Test
679 public void changePassword() {
680 TESTER.cleanupFeedbackMessages();
681
682 TESTER.clickLink("body:realmsLI:realms", false);
683 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
684
685 Component component = findComponentByProp("username", CONTAINER
686 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "vivaldi");
687 assertNotNull(component);
688
689 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
690 TESTER.clickLink(TAB_PANEL
691 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
692 + "actions:actions:actionRepeater:2:action:action");
693
694 TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
695 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", "syncope");
696
697 FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
698 formTester.setValue("content:passwordPanel:passwordInnerForm:password:passwordField", "Password345");
699 formTester.setValue("content:passwordPanel:passwordInnerForm:confirmPassword:passwordField", "Password345");
700 formTester.select("content:status:resources:firstLevelContainer:first:container:content:group", 0);
701
702 TESTER.executeAjaxEvent(
703 TAB_PANEL + "outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
704
705 assertSuccessMessage();
706 TESTER.cleanupFeedbackMessages();
707
708 TESTER.clickLink("body:realmsLI:realms", false);
709 TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
710
711 component = findComponentByProp("username", CONTAINER
712 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "vivaldi");
713 assertNotNull(component);
714
715 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
716 TESTER.clickLink(TAB_PANEL
717 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
718 + "actions:actions:actionRepeater:2:action:action");
719
720 TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
721 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", "syncope");
722
723 formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
724 formTester.setValue("content:passwordPanel:passwordInnerForm:password:passwordField", "Password123");
725 formTester.setValue("content:passwordPanel:passwordInnerForm:confirmPassword:passwordField", "Password123");
726 formTester.select("content:status:resources:firstLevelContainer:first:container:content:group", 0);
727
728 TESTER.executeAjaxEvent(
729 TAB_PANEL + "outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
730
731 assertSuccessMessage();
732 TESTER.cleanupFeedbackMessages();
733 }
734 }