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.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23
24 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
25 import java.util.UUID;
26 import org.apache.syncope.client.console.panels.TogglePanel;
27 import org.apache.syncope.client.console.topology.Topology;
28 import org.apache.syncope.client.ui.commons.Constants;
29 import org.apache.syncope.client.ui.commons.markup.html.form.NonI18nPalette;
30 import org.apache.syncope.common.lib.types.ResourceOperation;
31 import org.apache.wicket.Component;
32 import org.apache.wicket.ajax.markup.html.AjaxLink;
33 import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
34 import org.apache.wicket.markup.html.WebMarkupContainer;
35 import org.apache.wicket.markup.html.basic.Label;
36 import org.apache.wicket.util.tester.FormTester;
37 import org.junit.jupiter.api.BeforeEach;
38 import org.junit.jupiter.api.Test;
39
40 public class TopologyITCase extends AbstractConsoleITCase {
41
42 @BeforeEach
43 public void login() {
44 doLogin(ADMIN_UNAME, ADMIN_PWD);
45 TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
46 TESTER.assertRenderedPage(Topology.class);
47 }
48
49 @Test
50 public void showTopology() {
51 TESTER.assertComponent("body:syncope", WebMarkupContainer.class);
52 TESTER.assertComponent("body:resources:1", WebMarkupContainer.class);
53 TESTER.assertComponent("body:resources:2:resources:0", WebMarkupContainer.class);
54 }
55
56 @Test
57 public void showTopologyToggleMenu() {
58 TESTER.executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK);
59 TESTER.assertComponent(
60 "body:toggle:container:content:togglePanelContainer:container:actions:delete",
61 AjaxLink.class);
62 TESTER.assertComponent(
63 "body:toggle:container:content:togglePanelContainer:container:actions:edit",
64 AjaxLink.class);
65 TESTER.assertComponent(
66 "body:toggle:container:content:togglePanelContainer:container:actions:propagation",
67 AjaxLink.class);
68 TESTER.assertComponent(
69 "body:toggle:container:content:togglePanelContainer:container:actions:pull",
70 AjaxLink.class);
71 TESTER.assertComponent(
72 "body:toggle:container:content:togglePanelContainer:container:actions:push",
73 AjaxLink.class);
74 TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
75 TESTER.executeAjaxEvent("body:conns:0:conns:3:conn", Constants.ON_CLICK);
76 TESTER.assertComponent(
77 "body:toggle:container:content:togglePanelContainer:container:actions:create",
78 AjaxLink.class);
79 TESTER.assertComponent(
80 "body:toggle:container:content:togglePanelContainer:container:actions:delete",
81 AjaxLink.class);
82 TESTER.assertComponent(
83 "body:toggle:container:content:togglePanelContainer:container:actions:edit",
84 AjaxLink.class);
85 }
86
87 @Test
88 public void resourceBatchAction() {
89 Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
90 assertNotNull(component);
91 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
92 TESTER.clickLink(
93 "body:toggle:container:content:togglePanelContainer:container:actions:reconciliation");
94
95 TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer", Modal.class);
96
97 FormTester formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:1:outer:form");
98 formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
99 TESTER.executeAjaxEvent(
100 "body:toggle:outerObjectsRepeater:1:outer:form:content:anyTypes:dropDownChoiceField",
101 Constants.ON_CHANGE);
102 formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
103
104 component = findComponentByProp("key",
105 "body:toggle:outerObjectsRepeater:1:outer:form:content:status:"
106 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
107 + "checkgroup:dataTable", "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
108
109 assertNotNull(component);
110
111 TESTER.executeAjaxEvent(
112 "body:toggle:outerObjectsRepeater:1:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
113 }
114
115 @Test
116 public void editProvisioning() {
117 Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
118 assertNotNull(component);
119 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
120 TESTER.clickLink(
121 "body:toggle:container:content:togglePanelContainer:container:actions:provision");
122
123 TESTER.executeAjaxEvent(
124 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
125 + "content:group:beans:0:fields:0", Constants.ON_CLICK);
126
127 TESTER.clickLink(
128 "body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
129 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
130
131 FormTester formTester = TESTER.newFormTester(
132 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
133 formTester.submit("buttons:next");
134
135 formTester = TESTER.newFormTester(
136 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
137 formTester.submit("buttons:next");
138
139 TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
140 + "container:content:wizard:form:view:mapping:mappingContainer:mappings:1", WebMarkupContainer.class);
141
142 TESTER.executeAjaxEvent(
143 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
144 + "content:wizard:form:view:mapping:mappingContainer:mappings:1:itemTransformers:icon",
145 Constants.ON_CLICK);
146
147 TESTER.clickLink(
148 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:"
149 + "wizard:form:view:mapping:mappingContainer:mappings:0:itemTransformers:alertsLink");
150
151 TESTER.assertComponent(
152 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
153 + "content:wizard:outerObjectsRepeater:0:outer:container:content:togglePanelContainer:"
154 + "form:classes:paletteField", NonI18nPalette.class);
155 }
156
157 @Test
158 public void createNewResurceAndProvisionRules() {
159 String res = UUID.randomUUID().toString();
160
161 TESTER.executeAjaxEvent(
162 "body:conns:0:conns:1:conn", Constants.ON_CLICK);
163 TESTER.executeAjaxEvent(
164 "body:toggle:container:content:togglePanelContainer:container:actions:create", Constants.ON_CLICK);
165
166 FormTester formTester = TESTER.newFormTester(
167 "body:toggle:outerObjectsRepeater:0:outer:form:content:form");
168
169 formTester.setValue("view:container:key:textField", res);
170 formTester.submit("buttons:next");
171
172 formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form");
173 formTester.submit("buttons:next");
174
175
176 TESTER.cleanupFeedbackMessages();
177
178 TESTER.executeAjaxEvent(
179 "body:toggle:outerObjectsRepeater:0:outer:form:content:form:buttons:finish", Constants.ON_CLICK);
180 assertSuccessMessage();
181
182 TESTER.cleanupFeedbackMessages();
183 TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
184
185 Component component = findComponentByProp("key", "body:resources", res);
186 assertNotNull(component);
187 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
188 TESTER.clickLink(
189 "body:toggle:container:content:togglePanelContainer:container:actions:provision");
190
191
192 TESTER.clickLink(
193 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:add");
194
195 formTester = TESTER.newFormTester(
196 "body:toggle:outerObjectsRepeater:3:outer:form:content:objectTypeToggle:container:"
197 + "content:togglePanelContainer:objectTypeForm");
198 formTester.select("type:dropDownChoiceField", 1);
199 formTester.submit("changeit");
200 TESTER.assertNoErrorMessage();
201 TESTER.assertNoInfoMessage();
202
203
204 formTester = TESTER.newFormTester(
205 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
206 formTester.submit("buttons:next");
207 TESTER.assertNoErrorMessage();
208 TESTER.assertNoInfoMessage();
209
210
211 formTester = TESTER.newFormTester(
212 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
213 formTester.submit("buttons:next");
214 TESTER.assertNoErrorMessage();
215 TESTER.assertNoInfoMessage();
216
217
218 TESTER.executeAjaxEvent(
219 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
220 + "content:wizard:form:view:mapping:mappingContainer:addMappingBtn", Constants.ON_CLICK);
221
222 formTester = TESTER.newFormTester(
223 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
224
225 formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
226 TESTER.executeAjaxEvent(
227 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form"
228 + ":view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", Constants.ON_CHANGE);
229
230 formTester.setValue("view:mapping:mappingContainer:mappings:0:intAttrName:textField", "key");
231 formTester.setValue("view:mapping:mappingContainer:mappings:0:extAttrName:textField", "ID");
232 formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
233
234 formTester.submit("buttons:next");
235 TESTER.assertNoErrorMessage();
236 TESTER.assertNoInfoMessage();
237
238
239 TESTER.cleanupFeedbackMessages();
240
241 TESTER.executeAjaxEvent(
242 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
243 + "content:wizard:form:buttons:finish", Constants.ON_CLICK);
244 assertSuccessMessage();
245
246 TESTER.assertComponent(
247 "body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", AjaxSubmitLink.class);
248
249
250 TESTER.cleanupFeedbackMessages();
251 TESTER.executeAjaxEvent(
252 "body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
253 TESTER.assertNoErrorMessage();
254 assertSuccessMessage();
255
256 TESTER.executeAjaxEvent(
257 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
258 + "content:group:beans:0:fields:0", Constants.ON_CLICK);
259
260 TESTER.clickLink(
261 "body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
262 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
263
264 formTester = TESTER.newFormTester(
265 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
266 formTester.submit("buttons:next");
267
268 formTester = TESTER.newFormTester(
269 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
270 formTester.submit("buttons:next");
271
272 TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
273 + "container:content:wizard:form:view:mapping:mappingContainer:mappings:0", WebMarkupContainer.class);
274
275 TESTER.executeAjaxEvent(
276 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
277 + "content:wizard:form:buttons:cancel", Constants.ON_CLICK);
278
279 TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:dialog:footer:buttons:0:button");
280
281 TESTER.cleanupFeedbackMessages();
282 TESTER.getRequest().addParameter("confirm", "true");
283 TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:delete");
284
285 assertSuccessMessage();
286 TESTER.cleanupFeedbackMessages();
287
288 TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
289 component = findComponentByProp("key", "body:resources", res);
290 assertNull(component);
291 }
292
293 @Test
294 public void executePullTask() {
295 Component component = findComponentByProp("key", "body:resources", "resource-testdb");
296 assertNotNull(component);
297 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
298 TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
299
300 component = findComponentByProp("name",
301 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
302 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
303 + "checkgroup:dataTable", "TestDB Task");
304
305 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
306 TESTER.clickLink(
307 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
308 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
309 + "actions:actions:actionRepeater:4:action:action");
310
311 TESTER.clickLink(
312 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
313 + "container:content:startAt:container:content:togglePanelContainer:startAtForm:startAt");
314 assertSuccessMessage();
315
316 component = findComponentByProp("name",
317 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
318 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
319 + "checkgroup:dataTable", "TestDB Task");
320
321 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
322 TESTER.clickLink(
323 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
324 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
325 + "actions:actions:actionRepeater:0:action:action");
326
327 TESTER.assertLabel(
328 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:title",
329 "Executions of task 'TestDB Task'");
330
331 int iteration = 0;
332 do {
333 try {
334 component = findComponentByProp("status",
335 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
336 + "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
337 + "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
338 assertNotNull(component);
339 iteration = 10;
340 } catch (AssertionError e) {
341 try {
342
343 Thread.sleep(1000);
344 } catch (Exception ignore) {
345 }
346
347 TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
348 + "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:"
349 + "searchContainer:tablehandling:actionRepeater:0:action:action", Constants.ON_CLICK);
350
351 iteration++;
352 }
353 } while (iteration < 10);
354
355 component = findComponentByProp("status",
356 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
357 + "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
358 + "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
359 assertNotNull(component);
360
361 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
362 TESTER.clickLink(
363 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:second:"
364 + "executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
365 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
366
367 TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
368 + "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
369 }
370
371 @Test
372 public void readPropagationTaskExecutions() {
373 Component component = findComponentByProp("key", "body:resources", "resource-testdb");
374 assertNotNull(component);
375 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
376 TESTER.clickLink(
377 "body:toggle:container:content:togglePanelContainer:container:actions:propagation");
378
379 TESTER.assertComponent(
380 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:"
381 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
382 WebMarkupContainer.class);
383
384 component = findComponentByProp("operation",
385 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
386 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
387 + "checkgroup:dataTable", ResourceOperation.CREATE);
388
389 assertNotNull(component);
390 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
391 TESTER.clickLink(
392 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
393 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
394 + "actions:actions:actionRepeater:2:action:action");
395
396 TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
397
398 component = findComponentByProp("key", "body:resources", "resource-testdb");
399 assertNotNull(component);
400 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
401 TESTER.clickLink(
402 "body:toggle:container:content:togglePanelContainer:container:actions:propagation");
403
404 component = findComponentByPropNotNull("start",
405 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
406 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
407 + "checkgroup:dataTable");
408
409 assertNotNull(component);
410 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
411 TESTER.clickLink(
412 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
413 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
414 + "actions:actions:actionRepeater:0:action:action");
415
416 TESTER.assertLabel(
417 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:title",
418 "CREATE __ACCOUNT__");
419
420 component = findComponentByProp("status",
421 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
422 + "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:searchContainer:"
423 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "FAILURE");
424
425 assertNotNull(component);
426 TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
427 TESTER.clickLink(
428 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
429 + "second:executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
430 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
431
432 TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
433 + "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
434 }
435
436 @Test
437 public void editPushTask() {
438 Component component = findComponentByProp("key", "body:resources", "resource-ldap");
439 assertNotNull(component);
440 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
441 TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:push");
442
443 TESTER.executeAjaxEvent(
444 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
445 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
446 + "body:rows:1", Constants.ON_CLICK);
447 TESTER.clickLink(
448 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
449 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
450 + "actions:actions:actionRepeater:1:action:action");
451
452 FormTester formTester = TESTER.newFormTester(
453 "body:toggle:outerObjectsRepeater:2:outer:form:content:"
454 + "tasks:firstLevelContainer:first:container:content:wizard:form");
455 formTester.setValue("view:description:textField", "test");
456 formTester.submit("buttons:next");
457
458 TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
459 + "firstLevelContainer:first:container:content:wizard:form:view:filters:0:filters:tabs:0:body:"
460 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:"
461 + "value:textField", "_NO_ONE_");
462
463 formTester = TESTER.newFormTester(
464 "body:toggle:outerObjectsRepeater:2:outer:form:content:"
465 + "tasks:firstLevelContainer:first:container:content:wizard:form");
466 formTester.submit("buttons:finish");
467
468 assertSuccessMessage();
469 TESTER.cleanupFeedbackMessages();
470 }
471
472 @Test
473 public void addGroupTemplate() {
474 Component component = findComponentByProp("key", "body:resources", "resource-testdb");
475 assertNotNull(component);
476 TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
477 TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
478
479 TESTER.executeAjaxEvent(
480 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
481 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
482 + "body:rows:1", Constants.ON_CLICK);
483 TESTER.clickLink(
484 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
485 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
486 + "actions:actions:actionRepeater:3:action:action");
487
488 TESTER.assertComponent(
489 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
490 + "first:container:content:toggleTemplates", TogglePanel.class);
491
492 FormTester formTester = TESTER.newFormTester(
493 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
494 + "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
495
496 formTester.setValue("type:dropDownChoiceField", "1");
497 formTester.submit("changeit");
498
499 TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
500
501 formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
502 + "firstLevelContainer:first:container:content:wizard:form");
503 formTester.setValue("view:name:textField", "'k' + name");
504 formTester.submit("buttons:finish");
505
506 assertSuccessMessage();
507 TESTER.cleanupFeedbackMessages();
508
509 TESTER.executeAjaxEvent(
510 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
511 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
512 + "body:rows:2", Constants.ON_CLICK);
513 TESTER.clickLink(
514 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
515 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
516 + "actions:actions:actionRepeater:4:action:action");
517
518 TESTER.assertComponent(
519 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
520 + "first:container:content:toggleTemplates", TogglePanel.class);
521
522 TESTER.assertComponent(
523 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
524 + "first:container:content:toggleTemplates", TogglePanel.class);
525
526 formTester = TESTER.newFormTester(
527 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
528 + "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
529
530 formTester.setValue("type:dropDownChoiceField", "1");
531 formTester.submit("changeit");
532
533 TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
534
535 TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
536 + "firstLevelContainer:first:container:content:wizard:form:view:name:textField",
537 "'k' + name");
538
539 formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
540 + "firstLevelContainer:first:container:content:wizard:form");
541 formTester.setValue("view:name:textField", "");
542 formTester.submit("buttons:finish");
543
544 assertSuccessMessage();
545 TESTER.cleanupFeedbackMessages();
546 }
547
548 @Test
549 public void reloadConnectors() {
550 TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
551 TESTER.assertComponent(
552 "body:toggle:container:content:togglePanelContainer:container:actions:reload",
553 AjaxLink.class);
554
555 TESTER.cleanupFeedbackMessages();
556 TESTER.getRequest().addParameter("confirm", "true");
557 TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:reload");
558
559 assertSuccessMessage();
560 TESTER.cleanupFeedbackMessages();
561 }
562 }