blob: a764406a36059944e602a036c372f0496be0d42c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.syncope.fit.console;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import java.util.UUID;
import org.apache.syncope.client.ui.commons.Constants;
import org.apache.syncope.client.console.panels.TogglePanel;
import org.apache.syncope.client.console.topology.Topology;
import org.apache.syncope.client.ui.commons.markup.html.form.NonI18nPalette;
import org.apache.syncope.common.lib.types.ResourceOperation;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.util.tester.FormTester;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class TopologyITCase extends AbstractConsoleITCase {
@BeforeEach
public void login() {
doLogin(ADMIN_UNAME, ADMIN_PWD);
TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
TESTER.assertRenderedPage(Topology.class);
}
@Test
public void showTopology() {
TESTER.assertComponent("body:syncope", WebMarkupContainer.class);
TESTER.assertComponent("body:resources:1", WebMarkupContainer.class);
TESTER.assertComponent("body:resources:2:resources:0", WebMarkupContainer.class);
}
@Test
public void showTopologyToggleMenu() {
TESTER.executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:delete",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:edit",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:propagation",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:pull",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:push",
AjaxLink.class);
TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:tasks",
AjaxLink.class);
TESTER.executeAjaxEvent("body:conns:0:conns:3:conn", Constants.ON_CLICK);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:create",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:delete",
AjaxLink.class);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:edit",
AjaxLink.class);
}
@Test
public void resourceBatchAction() {
Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:container:content:togglePanelContainer:container:actions:reconciliation");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer", Modal.class);
FormTester formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:1:outer:form");
formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:1:outer:form:content:anyTypes:dropDownChoiceField",
Constants.ON_CHANGE);
formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
component = findComponentByProp("key",
"body:toggle:outerObjectsRepeater:1:outer:form:content:status:"
+ "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
+ "checkgroup:dataTable", "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
assertNotNull(component);
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:1:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
}
@Test
public void editProvisioning() {
Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:container:content:togglePanelContainer:container:actions:provision");
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:group:beans:0:fields:0", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
+ "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
FormTester formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
+ "container:content:wizard:form:view:mapping:mappingContainer:mappings:1", WebMarkupContainer.class);
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:wizard:form:view:mapping:mappingContainer:mappings:1:itemTransformers:icon",
Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:"
+ "wizard:form:view:mapping:mappingContainer:mappings:0:itemTransformers:alertsLink");
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:wizard:outerObjectsRepeater:0:outer:container:content:togglePanelContainer:"
+ "form:classes:paletteField", NonI18nPalette.class);
}
@Test
public void createNewResurceAndProvisionRules() {
String res = UUID.randomUUID().toString();
TESTER.executeAjaxEvent(
"body:conns:0:conns:1:conn", Constants.ON_CLICK);
TESTER.executeAjaxEvent(
"body:toggle:container:content:togglePanelContainer:container:actions:create", Constants.ON_CLICK);
FormTester formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:0:outer:form:content:form");
formTester.setValue("view:container:key:textField", res);
formTester.submit("buttons:next");
formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form");
formTester.submit("buttons:next");
// click on finish to create the external resource
TESTER.cleanupFeedbackMessages();
// ajax event required to retrieve AjaxRequestTarget (used into finish custom event)
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:0:outer:form:content:form:buttons:finish", Constants.ON_CLICK);
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
Component component = findComponentByProp("key", "body:resources", res);
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:container:content:togglePanelContainer:container:actions:provision");
// -- create new provision rules for the current resource
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:add");
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:objectTypeToggle:container:"
+ "content:togglePanelContainer:objectTypeForm");
formTester.select("type:dropDownChoiceField", 1);
formTester.submit("changeit");
TESTER.assertNoErrorMessage();
TESTER.assertNoInfoMessage();
// choose object class
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
TESTER.assertNoErrorMessage();
TESTER.assertNoInfoMessage();
// aux classes
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
TESTER.assertNoErrorMessage();
TESTER.assertNoInfoMessage();
// set a new mapping rule
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:wizard:form:view:mapping:mappingContainer:addMappingBtn", Constants.ON_CLICK);
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form"
+ ":view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", Constants.ON_CHANGE);
formTester.setValue("view:mapping:mappingContainer:mappings:0:intAttrName:textField", "key");
formTester.setValue("view:mapping:mappingContainer:mappings:0:extAttrName:textField", "ID");
formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
formTester.submit("buttons:next");
TESTER.assertNoErrorMessage();
TESTER.assertNoInfoMessage();
// finish
TESTER.cleanupFeedbackMessages();
// ajax event required to retrieve AjaxRequestTarget (used into finish custom event)
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:wizard:form:buttons:finish", Constants.ON_CLICK);
assertSuccessMessage();
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", AjaxSubmitLink.class);
// save
TESTER.cleanupFeedbackMessages();
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
TESTER.assertNoErrorMessage();
assertSuccessMessage();
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:group:beans:0:fields:0", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
+ "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
formTester.submit("buttons:next");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
+ "container:content:wizard:form:view:mapping:mappingContainer:mappings:0", WebMarkupContainer.class);
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+ "content:wizard:form:buttons:cancel", Constants.ON_CLICK);
TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:dialog:footer:buttons:0:button");
TESTER.cleanupFeedbackMessages();
TESTER.getRequest().addParameter("confirm", "true");
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:delete");
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
component = findComponentByProp("key", "body:resources", res);
assertNull(component);
}
@Test
public void executePullTask() {
Component component = findComponentByProp("key", "body:resources", "resource-testdb");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
component = findComponentByProp("name",
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
+ "checkgroup:dataTable", "TestDB Task");
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:3:action:action");
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "container:content:startAt:container:content:togglePanelContainer:startAtForm:startAt");
assertSuccessMessage();
component = findComponentByProp("name",
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
+ "checkgroup:dataTable", "TestDB Task");
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:0:action:action");
TESTER.assertLabel(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:title",
"Executions of task 'TestDB Task'");
int iteration = 0;
do {
try {
component = findComponentByProp("status",
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
+ "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
+ "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
assertNotNull(component);
iteration = 10;
} catch (AssertionError e) {
try {
// requires a short delay
Thread.sleep(1000);
} catch (Exception ignore) {
}
TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:"
+ "searchContainer:tablehandling:actionRepeater:0:action:action", Constants.ON_CLICK);
iteration++;
}
} while (iteration < 10);
component = findComponentByProp("status",
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
+ "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
+ "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:second:"
+ "executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
+ "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
}
@Test
public void readPropagationTaskExecutions() {
Component component = findComponentByProp("key", "body:resources", "resource-testdb");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:container:content:togglePanelContainer:container:actions:propagation");
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
WebMarkupContainer.class);
component = findComponentByProp("operation",
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
+ "checkgroup:dataTable", ResourceOperation.CREATE);
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:2:action:action");
TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage", false);
component = findComponentByProp("key", "body:resources", "resource-testdb");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:container:content:togglePanelContainer:container:actions:propagation");
component = findComponentByPropNotNull("start",
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
+ "checkgroup:dataTable");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:0:action:action");
TESTER.assertLabel(
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:title",
"CREATE __ACCOUNT__");
component = findComponentByProp("status",
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+ "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:searchContainer:"
+ "resultTable:tablePanel:groupForm:checkgroup:dataTable", "FAILURE");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
+ "second:executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
+ "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+ "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
}
@Test
public void editPushTask() {
Component component = findComponentByProp("key", "body:resources", "resource-ldap");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:push");
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
+ "body:rows:1", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:1:action:action");
FormTester formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:"
+ "tasks:firstLevelContainer:first:container:content:wizard:form");
formTester.setValue("view:description:textField", "test");
formTester.submit("buttons:next");
TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:wizard:form:view:filters:0:filters:tabs:0:body:"
+ "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:"
+ "value:textField", "_NO_ONE_");
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:"
+ "tasks:firstLevelContainer:first:container:content:wizard:form");
formTester.submit("buttons:finish");
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
}
@Test
public void createSchedTask() {
TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:tasks");
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "container:content:add");
FormTester formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "container:content:wizard:form");
formTester.setValue("view:name:textField", "test");
formTester.select("view:jobDelegate:dropDownChoiceField", 0);
formTester.submit("buttons:next");
TESTER.cleanupFeedbackMessages();
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "container:content:wizard:form");
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:wizard:form:view:schedule:seconds:textField", TextField.class);
formTester.submit("buttons:finish");
TESTER.cleanupFeedbackMessages();
}
@Test
public void addGroupTemplate() {
Component component = findComponentByProp("key", "body:resources", "resource-testdb");
assertNotNull(component);
TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
+ "body:rows:1", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:4:action:action");
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:toggleTemplates", TogglePanel.class);
FormTester formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
+ "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
formTester.setValue("type:dropDownChoiceField", "1");
formTester.submit("changeit");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:wizard:form");
formTester.setValue("view:name:textField", "'k' + name");
formTester.submit("buttons:finish");
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
TESTER.executeAjaxEvent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
+ "body:rows:2", Constants.ON_CLICK);
TESTER.clickLink(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+ "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+ "actions:actions:actionRepeater:4:action:action");
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:toggleTemplates", TogglePanel.class);
TESTER.assertComponent(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+ "first:container:content:toggleTemplates", TogglePanel.class);
formTester = TESTER.newFormTester(
"body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
+ "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
formTester.setValue("type:dropDownChoiceField", "1");
formTester.submit("changeit");
TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:wizard:form:view:name:textField",
"'k' + name");
formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+ "firstLevelContainer:first:container:content:wizard:form");
formTester.setValue("view:name:textField", "");
formTester.submit("buttons:finish");
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
}
@Test
public void reloadConnectors() {
TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
TESTER.assertComponent(
"body:toggle:container:content:togglePanelContainer:container:actions:reload",
AjaxLink.class);
TESTER.cleanupFeedbackMessages();
TESTER.getRequest().addParameter("confirm", "true");
TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:reload");
assertSuccessMessage();
TESTER.cleanupFeedbackMessages();
}
}