View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.syncope.fit.console;
20  
21  import static org.junit.jupiter.api.Assertions.assertNotNull;
22  
23  import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
24  import org.apache.syncope.client.console.pages.Parameters;
25  import org.apache.syncope.client.ui.commons.Constants;
26  import org.apache.wicket.Component;
27  import org.apache.wicket.markup.html.WebMarkupContainer;
28  import org.apache.wicket.util.tester.FormTester;
29  import org.junit.jupiter.api.BeforeEach;
30  import org.junit.jupiter.api.Test;
31  
32  public class ParametersITCase extends AbstractConsoleITCase {
33  
34      @BeforeEach
35      public void login() {
36          doLogin(ADMIN_UNAME, ADMIN_PWD);
37          TESTER.clickLink("body:keymasterLI:keymasterUL:parametersLI:parameters", false);
38          TESTER.assertRenderedPage(Parameters.class);
39      }
40  
41      @Test
42      public void readParameter() {
43          TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
44          assertNotNull(findComponentByProp(SCHEMA, "body:content:parametersPanel", "authentication.statuses"));
45      }
46  
47      @Test
48      public void createParameter() {
49          TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
50  
51          TESTER.clickLink("body:content:parametersPanel:container:content:add");
52          TESTER.assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
53  
54          FormTester formTester =
55                  TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
56          formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
57  
58          formTester = TESTER.newFormTester(
59                  "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
60          formTester.setValue("content:parametersCreateWizardPanel:form:view:content:schema:textField", "testParam");
61          formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:textField", "test");
62  
63          formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
64  
65          assertSuccessMessage();
66          TESTER.cleanupFeedbackMessages();
67          TESTER.assertRenderedPage(Parameters.class);
68      }
69  
70      @Test
71      public void updateParameter() {
72          TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
73  
74          Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel",
75                  "notification.maxRetries");
76          assertNotNull(result);
77  
78          TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
79          TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
80                  + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
81  
82          FormTester formTester =
83                  TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
84          formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
85  
86          formTester = TESTER.newFormTester(
87                  "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
88          formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:spinner", "70");
89  
90          formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
91  
92          assertSuccessMessage();
93          TESTER.cleanupFeedbackMessages();
94  
95          TESTER.assertRenderedPage(Parameters.class);
96      }
97  
98      @Test
99      public void deleteParameter() {
100         TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
101 
102         TESTER.clickLink("body:content:parametersPanel:container:content:add");
103         TESTER.assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
104 
105         FormTester formTester =
106                 TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
107         formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
108 
109         formTester = TESTER.newFormTester(
110                 "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
111         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:schema:textField", "deleteParam");
112         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:textField", "test");
113 
114         formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
115 
116         assertSuccessMessage();
117         TESTER.cleanupFeedbackMessages();
118 
119         Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel", "deleteParam");
120         assertNotNull(result);
121 
122         TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
123         TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
124                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
125 
126         assertSuccessMessage();
127         TESTER.cleanupFeedbackMessages();
128     }
129 }