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 de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
22 import org.apache.syncope.client.console.pages.Types;
23 import org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table.AjaxFallbackDataTable;
24 import org.apache.syncope.client.ui.commons.Constants;
25 import org.apache.wicket.util.tester.FormTester;
26 import org.junit.jupiter.api.BeforeEach;
27
28 public abstract class AbstractTypesITCase extends AbstractConsoleITCase {
29
30 protected static final String PLAIN_DATATABLE_PATH = "body:content:tabbedPanel:panel:"
31 + "accordionPanel:tabs:0:body:content:container:content:searchContainer:resultTable";
32
33 protected static final String VIRTUAL_DATATABLE_PATH = "body:content:tabbedPanel:panel:"
34 + "accordionPanel:tabs:2:body:content:container:content:searchContainer:resultTable";
35
36 protected static final String DATATABLE_PATH =
37 "body:content:tabbedPanel:panel:container:content:searchContainer:resultTable";
38
39 @BeforeEach
40 public void login() {
41 doLogin(ADMIN_UNAME, ADMIN_PWD);
42 }
43
44 protected void browsingToRelationshipType() {
45 TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types", false);
46 TESTER.assertRenderedPage(Types.class);
47
48 TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
49 TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
50 AjaxFallbackDataTable.class);
51 }
52
53 protected void browsingToAnyTypes() {
54 TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types", false);
55 TESTER.assertRenderedPage(Types.class);
56
57 TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
58 TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
59 AjaxFallbackDataTable.class);
60 }
61
62 protected void browsingToAnyTypeClasses() {
63 TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types", false);
64 TESTER.assertRenderedPage(Types.class);
65
66 TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
67 TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
68 AjaxFallbackDataTable.class);
69 }
70
71 protected void browsingToPlainSchemas() {
72 TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types", false);
73 TESTER.assertRenderedPage(Types.class);
74
75 TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
76 TESTER.assertComponent(PLAIN_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
77 AjaxFallbackDataTable.class);
78 }
79
80 protected void browsingToVirtualSchemas() {
81 TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types", false);
82 TESTER.assertRenderedPage(Types.class);
83
84 TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
85 TESTER.assertComponent(VIRTUAL_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
86 AjaxFallbackDataTable.class);
87 }
88
89 protected void createPlainSchema(final String key) {
90 browsingToPlainSchemas();
91 TESTER.clickLink(
92 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:container:content:add");
93
94 TESTER.assertComponent(
95 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer",
96 Modal.class);
97
98 FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
99 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
100 formTester.setValue("content:form:view:details:key:textField", key);
101 formTester.setValue("content:form:view:details:type:dropDownChoiceField", "3");
102 TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
103 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
104
105 formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
106 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
107 formTester.submit("content:form:buttons:finish");
108
109 assertSuccessMessage();
110 TESTER.cleanupFeedbackMessages();
111 }
112
113 protected void createAnyTypeClassWithoutSchema(final String name) {
114 browsingToAnyTypeClasses();
115
116 TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
117 TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
118
119 FormTester formTester = TESTER.newFormTester(
120 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
121 formTester.setValue("content:anyTypeClassDetailsPanel:form:key:textField", name);
122
123 TESTER.clearFeedbackMessages();
124 TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
125 assertSuccessMessage();
126 TESTER.clearFeedbackMessages();
127 }
128
129 protected void createAnyType(final String name) {
130 browsingToAnyTypes();
131
132 TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
133 TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
134
135 final FormTester formTester = TESTER.newFormTester(
136 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
137 formTester.setValue("content:anyTypeDetailsPanel:container:form:key:textField", name);
138
139 TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
140 assertSuccessMessage();
141 TESTER.clearFeedbackMessages();
142 }
143
144 protected void createRelationshipType(final String name) {
145 browsingToRelationshipType();
146
147 TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
148
149 TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
150
151 final FormTester formTester = TESTER.newFormTester(
152 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
153 formTester.setValue("content:relationshipTypeDetails:container:form:key:textField", name);
154 formTester.setValue(
155 "content:relationshipTypeDetails:container:form:description:textField", "test relationshipType");
156
157 TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
158
159 assertSuccessMessage();
160 TESTER.clearFeedbackMessages();
161
162 TESTER.assertRenderedPage(Types.class);
163 }
164 }