Skip to content

Commit

Permalink
fix gui tests and adding new tests for new GUI panels
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Sep 21, 2021
1 parent bba3048 commit 76cbf44
Show file tree
Hide file tree
Showing 5 changed files with 423 additions and 146 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@

import static org.testng.Assert.assertNotNull;

import com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg;
import com.evolveum.midpoint.web.page.admin.orgs.PageOrgs;

import org.apache.wicket.Page;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.tester.FormTester;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
Expand All @@ -37,11 +36,6 @@
@SpringBootTest(classes = TestMidPointSpringApplication.class)
public class TestPageOrg extends AbstractInitializedGuiIntegrationTest {

private static final String MAIN_FORM = "mainPanel:mainForm";
// private static final String FORM_INPUT_DESCRIPTION = "tabPanel:panel:basicSystemConfiguration:values:0:value:propertiesLabel:properties:1:property:values:0:valueContainer:form:input:input";
private static final String PATH_FORM_NAME = "tabPanel:panel:main:values:0:value:valueForm:valueContainer:input:propertiesLabel:properties:0:property:values:0:value:valueForm:valueContainer:input:originValueContainer:origValueWithButton:origValue:input";
private static final String FORM_SAVE = "save";

private static final String NEW_ORG_NAME = "A-newOrg"; // starts with "A" to be alphabetically first
private static final String NEW_ORG_CHILD_NAME = "newOrgChild";

Expand All @@ -55,8 +49,8 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
}

@Test
public void test001testPageOrgUnit() {
renderPage(PageOrgUnit.class);
public void test001testPageOrg() {
renderPage(PageOrg.class);
}

@Test
Expand All @@ -65,8 +59,13 @@ public void test002testPageOrgTree() {
}

@Test
public void test003testAddNewOrg() throws Exception {
renderPage(PageOrgUnit.class);
public void test003testPageOrgList() {
renderPage(PageOrgs.class);
}

@Test
public void test004testAddNewOrg() throws Exception {
renderPage(PageOrg.class);

FormTester formTester = tester.newFormTester(MAIN_FORM, false);
formTester.setValue(PATH_FORM_NAME, NEW_ORG_NAME);
Expand All @@ -80,10 +79,13 @@ public void test003testAddNewOrg() throws Exception {
}

@Test
public void test004testCreateChild() throws Exception {
public void test005testCreateChild() throws Exception {
renderPage(PageOrgTree.class);
tester.clickLink("orgPanel:tabs:panel:treePanel:treeContainer:tree:subtree:branches:1:node:content:menu:inlineMenuPanel:dropDownMenu:menuItem:8:menuItemBody:menuItemLink");
tester.assertRenderedPage(PageOrgUnit.class);
tester.clickLink(
"orgPanel:tabs:panel:treePanel:treeContainer:tree:subtree:branches:1:node:content:menu:inlineMenuPanel:"
+ "dropDownMenu:menuItem:8:menuItemBody:menuItemLink"
);
tester.assertRenderedPage(PageOrg.class);

FormTester formTester = tester.newFormTester(MAIN_FORM, false);
formTester.setValue(PATH_FORM_NAME, NEW_ORG_CHILD_NAME);
Expand All @@ -97,16 +99,26 @@ public void test004testCreateChild() throws Exception {
assertAssignedOrg(newOrgChild, newOrg.getOid());
}

@Test
public void test005testPageOrgList() {
renderPage(PageOrgs.class);
@Test //TODO old test remove after removing old gui pages
public void test006testPageOrgUnit() {
renderPage(PageOrgUnit.class);
}

private void renderPage(Class<? extends Page> expectedRenderedPageClass) {
logger.info("render page system configuration");
PageParameters params = new PageParameters();
tester.startPage(expectedRenderedPageClass, params);
@Test //TODO old test remove after removing old gui pages
public void test007testAddNewOrgUnit() throws Exception {
renderPage(PageOrgUnit.class);

FormTester formTester = tester.newFormTester(MAIN_FORM_OLD, false);
formTester.setValue(
PATH_FORM_NAME_OLD,
NEW_ORG_NAME + "Unit"
);
formTester.submit(FORM_SAVE_OLD);

tester.assertRenderedPage(expectedRenderedPageClass);
Thread.sleep(5000);

PrismObject<OrgType> newOrg = findObjectByName(OrgType.class, NEW_ORG_NAME + "Unit");
assertNotNull(newOrg, "New org not created.");
logger.info("created org: {}", newOrg.debugDump());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@
import static com.evolveum.midpoint.web.AdminGuiTestConstants.USER_JACK_OID;
import static com.evolveum.midpoint.web.AdminGuiTestConstants.USER_JACK_USERNAME;

import org.apache.wicket.Page;
import com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.gui.impl.page.admin.role.PageRole;

import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.tester.FormTester;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
Expand All @@ -26,9 +27,6 @@
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.web.AbstractInitializedGuiIntegrationTest;
import com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.roles.PageRole;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemConfigurationType;

Expand All @@ -40,10 +38,6 @@
@SpringBootTest(classes = TestMidPointSpringApplication.class)
public class TestPageRole extends AbstractInitializedGuiIntegrationTest {

private static final String MAIN_FORM = "mainPanel:mainForm";
private static final String PATH_FORM_NAME = "tabPanel:panel:main:values:0:value:valueForm:valueContainer:input:propertiesLabel:properties:0:property:values:0:value:valueForm:valueContainer:input:originValueContainer:origValueWithButton:origValue:input";
private static final String FORM_SAVE = "save";

@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
Expand Down Expand Up @@ -90,15 +84,16 @@ public void test003testMembers() throws Exception {
// Assign Role0002 with orgRef P0001
assignParametricRole(USER_ADMINISTRATOR_OID, role2Oid, ORG_SAVE_ELAINE_OID, null, task, task.getResult());

String panel = "mainPanel:mainForm:tabPanel:panel";
String memberTable = panel + ":form:memberContainer:memberTable:items:itemsTable:box:tableContainer:table";
String searchForm = "mainPanel:mainForm:tabPanel:panel:form:memberContainer:memberTable:items:itemsTable:box:header:searchForm:search:form";
String panel = "detailsView:mainForm:mainPanel";
String tableBox = panel + ":form:memberContainer:memberTable:items:itemsTable:box";
String memberTable = tableBox + ":tableContainer:table";
String searchForm = tableBox + ":header:searchForm:search:form";

// WHEN
// Open Role0001 page
renderPage(PageRole.class, role1Oid);
// Show Members tab
clickOnTab(8, PageRole.class);
clickOnDetailsMenu(8, PageRole.class);

// THEN
tester.assertComponent(panel, AbstractRoleMemberPanel.class);
Expand All @@ -122,20 +117,71 @@ public void test003testMembers() throws Exception {
tester.assertNotExists(memberTable + ":body:rows:4:cells:3:cell:link:label");
}

private Page renderPage(Class<? extends Page> expectedRenderedPageClass) {
return renderPage(expectedRenderedPageClass, null);
@Test //TODO old test remove after removing old gui pages
public void test004testPageRoleOld() {
renderPage(com.evolveum.midpoint.web.page.admin.roles.PageRole.class);
}

@Test //TODO old test remove after removing old gui pages
public void test005testAddNewRoleOld() throws Exception {
renderPage(com.evolveum.midpoint.web.page.admin.roles.PageRole.class);

FormTester formTester = tester.newFormTester(MAIN_FORM_OLD, false);
formTester.setValue(PATH_FORM_NAME_OLD, "newRoleOld");
formTester.submit(FORM_SAVE_OLD);

Thread.sleep(5000);

PrismObject<RoleType> newRole = findObjectByName(RoleType.class, "newRoleOld");
assertNotNull(newRole, "New role not created.");
logger.info("created role: {}", newRole.debugDump());
}
/**
* MID-6092
*/
@Test //TODO old test remove after removing old gui pages
public void test006testMembersOld() throws Exception {
// GIVEN
PrismObject<RoleType> role1 = createObject(RoleType.class, "Role0001Old");
PrismObject<RoleType> role2 = createObject(RoleType.class, "Role0002Old");
String role1Oid = addObject(role1);
String role2Oid = addObject(role2);
Task task = createTask("assign");
// Assign Role0001 with orgRef P0001
assignParametricRole(USER_JACK_OID, role1Oid, ORG_SAVE_ELAINE_OID, null, task, task.getResult());
assignRole(USER_ADMINISTRATOR_OID, role1Oid);
// Assign Role0002 with orgRef P0001
assignParametricRole(USER_ADMINISTRATOR_OID, role2Oid, ORG_SAVE_ELAINE_OID, null, task, task.getResult());

private Page renderPage(Class<? extends Page> expectedRenderedPageClass, String oid) {
logger.info("render page role");
PageParameters params = new PageParameters();
if (oid != null) {
params.add(OnePageParameterEncoder.PARAMETER, oid);
}
Page pageRole = tester.startPage(expectedRenderedPageClass, params);
String panel = "mainPanel:mainForm:tabPanel:panel";
String memberTable = panel + ":form:memberContainer:memberTable:items:itemsTable:box:tableContainer:table";
String searchForm = "mainPanel:mainForm:tabPanel:panel:form:memberContainer:memberTable:items:itemsTable:box:header:searchForm:search:form";

// WHEN
// Open Role0001 page
renderPage(com.evolveum.midpoint.web.page.admin.roles.PageRole.class, role1Oid);
// Show Members tab
clickOnTab(8, com.evolveum.midpoint.web.page.admin.roles.PageRole.class);

tester.assertRenderedPage(expectedRenderedPageClass);
// THEN
tester.assertComponent(panel, com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel.class);
tester.debugComponentTrees(":rows:.*:cells:3:cell:link:label");
// It should show all members who are assigned Role0001
tester.assertLabel(memberTable + ":body:rows:1:cells:3:cell:link:label", USER_ADMINISTRATOR_USERNAME);
tester.assertLabel(memberTable + ":body:rows:2:cells:3:cell:link:label", USER_JACK_USERNAME);
tester.assertNotExists(memberTable + ":body:rows:3:cells:3:cell:link:label");

return pageRole;
// WHEN
// Choose P0001 in 'Org/Project' filter selection
String orgProjectItem = searchForm + ":compositedSpecialItems:3:specialItem:searchItemContainer:searchItemField";
tester.clickLink(orgProjectItem + ":editButton");
((TextField)tester.getComponentFromLastRenderedPage(orgProjectItem + ":popover:popoverPanel:popoverForm:oid")).getModel().setObject(ORG_SAVE_ELAINE_OID);
tester.clickLink(orgProjectItem + ":popover:popoverPanel:popoverForm:confirmButton");

// THEN
// It should show only one user who is assigned Role0001 with orgRef P0001
tester.debugComponentTrees(":rows:.*:cells:3:cell:link:label");
tester.assertLabel(memberTable + ":body:rows:3:cells:3:cell:link:label", USER_JACK_USERNAME);
tester.assertNotExists(memberTable + ":body:rows:4:cells:3:cell:link:label");
}
}

0 comments on commit 76cbf44

Please sign in to comment.