From d6f8e064bd03eacc9880ecb3a8314573592e1eba Mon Sep 17 00:00:00 2001 From: kate Date: Fri, 11 Oct 2019 16:39:13 +0200 Subject: [PATCH] tests for cases gui --- .../schrodinger/scenarios/CaseTests.java | 52 +++++++++++++++++++ .../scenarios/OrganizationStructureTests.java | 3 +- .../resources/role-with-admin-approver.xml | 20 +++++++ .../page/cases/AllApprovalsPage.java | 2 +- .../schrodinger/page/cases/AllCasesPage.java | 3 +- .../page/cases/AllManualCasesPage.java | 2 +- .../page/cases/AllRequestsPage.java | 2 +- .../schrodinger/page/cases/CasePage.java | 35 +++++++++++++ .../page/cases/CasesListTable.java | 27 ++++++++++ .../schrodinger/page/cases/CasesPage.java | 20 +++++++ .../schrodinger/page/cases/MyCasesPage.java | 2 +- .../schrodinger/page/user/UserPage.java | 1 + .../schrodinger/util/ConstantsUtil.java | 16 ++++++ 13 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 testing/schrodingertest/src/test/resources/role-with-admin-approver.xml create mode 100644 tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasePage.java create mode 100644 tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesListTable.java create mode 100644 tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesPage.java diff --git a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/CaseTests.java b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/CaseTests.java index 5cfda3db42e..04da2f4d935 100644 --- a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/CaseTests.java +++ b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/CaseTests.java @@ -9,6 +9,8 @@ import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; import com.evolveum.midpoint.schrodinger.page.cases.*; +import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage; +import com.evolveum.midpoint.schrodinger.page.user.UserPage; import com.evolveum.midpoint.schrodinger.util.ConstantsUtil; import com.evolveum.midpoint.testing.schrodinger.TestBase; import org.testng.Assert; @@ -67,6 +69,56 @@ public void test100openCasesAndCheckMenuEnabled() { Assert.assertFalse(isCaseMenuItemActive(ConstantsUtil.MENU_ALL_REQUESTS_MENU_ITEM_LABEL_TEXT, false)); } + @Test + public void isCaseCreated(){ + importObject(ConstantsUtil.ROLE_WITH_ADMIN_APPROVER_XML,true); + + UserPage user = basicPage.newUser(); + user.selectTabBasic() + .form() + .addAttributeValue("name", ConstantsUtil.CASE_CREATION_TEST_USER_NAME) + .and() + .and() + .clickSave(); + + ListUsersPage users = basicPage.listUsers(); + users + .table() + .search() + .byName() + .inputValue(ConstantsUtil.CASE_CREATION_TEST_USER_NAME) + .updateSearch() + .and() + .clickByName(ConstantsUtil.CASE_CREATION_TEST_USER_NAME) + .selectTabAssignments() + .clickAddAssignemnt() + .selectType(ConstantsUtil.ASSIGNMENT_TYPE_SELECTOR_ROLE) + .table() + .search() + .byName() + .inputValue(ConstantsUtil.CASE_CREATION_TEST_ROLE_NAME) + .updateSearch() + .and() + .selectCheckboxByName(ConstantsUtil.CASE_CREATION_TEST_ROLE_NAME) + .and() + .clickAdd() + .and() + .clickSave() + .feedback() + .isInfo(); + + AllCasesPage allCasesPage = basicPage.listAllCases(); + allCasesPage + .table() + .search() + .byName() + .inputValue(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME) + .updateSearch() + .and() + .clickByName(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME); + + } + private boolean isCaseMenuItemActive(String menuIdentifier, boolean checkByLabelText){ SelenideElement casesMenuItemElement; if (!checkByLabelText) { diff --git a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/OrganizationStructureTests.java b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/OrganizationStructureTests.java index 056accba82a..a06da448110 100644 --- a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/OrganizationStructureTests.java +++ b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/OrganizationStructureTests.java @@ -11,6 +11,7 @@ import com.evolveum.midpoint.schrodinger.page.resource.ListResourcesPage; import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage; import com.evolveum.midpoint.schrodinger.page.user.UserPage; +import com.evolveum.midpoint.schrodinger.util.ConstantsUtil; import com.evolveum.midpoint.testing.schrodinger.TestBase; import org.apache.commons.io.FileUtils; import org.testng.Assert; @@ -81,7 +82,7 @@ public void assignOrgUnit(){ .clickByName(TEST_USER_GUYBRUSH_NAME) .selectTabAssignments() .clickAddAssignemnt() - .selectType(TYPE_SELECTOR_ORG) + .selectType(ConstantsUtil.ASSIGNMENT_TYPE_SELECTOR_ORG) .table() .search() .byName() diff --git a/testing/schrodingertest/src/test/resources/role-with-admin-approver.xml b/testing/schrodingertest/src/test/resources/role-with-admin-approver.xml new file mode 100644 index 00000000000..f323d65144a --- /dev/null +++ b/testing/schrodingertest/src/test/resources/role-with-admin-approver.xml @@ -0,0 +1,20 @@ + + Role with admin approver + + + + + add + + + + + + + + + + diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllApprovalsPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllApprovalsPage.java index dceea84bdc6..65cfc059e99 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllApprovalsPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllApprovalsPage.java @@ -11,5 +11,5 @@ /** * Created by Kate Honchar */ -public class AllApprovalsPage extends BasicPage { +public class AllApprovalsPage extends CasesPage { } diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllCasesPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllCasesPage.java index d1095b8490a..795c970d459 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllCasesPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllCasesPage.java @@ -11,5 +11,6 @@ /** * Created by Kate Honchar */ -public class AllCasesPage extends BasicPage { +public class AllCasesPage extends CasesPage { + } diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllManualCasesPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllManualCasesPage.java index 89f186b7f66..908a6584d17 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllManualCasesPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllManualCasesPage.java @@ -11,6 +11,6 @@ /** * Created by Kate Honchar. */ -public class AllManualCasesPage extends BasicPage { +public class AllManualCasesPage extends CasesPage { } diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllRequestsPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllRequestsPage.java index b60fc4776d4..e2a064e97b7 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllRequestsPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/AllRequestsPage.java @@ -11,5 +11,5 @@ /** * Created by Viliam Repan (lazyman). */ -public class AllRequestsPage extends BasicPage { +public class AllRequestsPage extends CasesPage { } diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasePage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasePage.java new file mode 100644 index 00000000000..e6cf891a649 --- /dev/null +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasePage.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2010-2019 Evolveum and contributors + * + * This work is dual-licensed under the Apache License 2.0 + * and European Union Public License. See LICENSE file for details. + */ +package com.evolveum.midpoint.schrodinger.page.cases; + +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.SelenideElement; +import com.evolveum.midpoint.schrodinger.MidPoint; +import com.evolveum.midpoint.schrodinger.component.AssignmentHolderBasicTab; +import com.evolveum.midpoint.schrodinger.component.AssignmentsTab; +import com.evolveum.midpoint.schrodinger.page.AssignmentHolderDetailsPage; + +/** + * Created by Kate Honchar. + */ +public class CasePage extends AssignmentHolderDetailsPage { + + @Override + public AssignmentHolderBasicTab selectTabBasic(){ + SelenideElement element = findTabPanel().clickTab("pageAdminFocus.basic") + .waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S); + + return new AssignmentHolderBasicTab(this, element); + } + + @Override + public AssignmentsTab selectTabAssignments(){ + SelenideElement element = findTabPanel().clickTab("pageAdminFocus.assignments"); + + return new AssignmentsTab(this, element); + } +} diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesListTable.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesListTable.java new file mode 100644 index 00000000000..94750f6944a --- /dev/null +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesListTable.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2010-2019 Evolveum and contributors + * + * This work is dual-licensed under the Apache License 2.0 + * and European Union Public License. See LICENSE file for details. + */ +package com.evolveum.midpoint.schrodinger.page.cases; + +import com.codeborne.selenide.SelenideElement; +import com.evolveum.midpoint.schrodinger.component.assignmentholder.AssignmentHolderObjectListTable; +import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage; +import com.evolveum.midpoint.schrodinger.page.user.UserPage; + +/** + * Created by Kate Honchar. + */ +public class CasesListTable extends AssignmentHolderObjectListTable { + + public CasesListTable(CasesPage parent, SelenideElement parentElement){ + super(parent, parentElement); + } + + @Override + public CasePage getObjectDetailsPage(){ + return new CasePage(); + } +} diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesPage.java new file mode 100644 index 00000000000..ab874cd377b --- /dev/null +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/CasesPage.java @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2010-2019 Evolveum and contributors + * + * This work is dual-licensed under the Apache License 2.0 + * and European Union Public License. See LICENSE file for details. + */ +package com.evolveum.midpoint.schrodinger.page.cases; + +import com.evolveum.midpoint.schrodinger.component.assignmentholder.AssignmentHolderObjectListPage; + +/** + * Created by Kate Honchar + */ +public class CasesPage extends AssignmentHolderObjectListPage { + + @Override + public CasesListTable table() { + return new CasesListTable(this, getTableBoxElement()); + } +} diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/MyCasesPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/MyCasesPage.java index a5e5b3c4bbc..e578768f67c 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/MyCasesPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/cases/MyCasesPage.java @@ -11,6 +11,6 @@ /** * Created by Kate Honchar */ -public class MyCasesPage extends BasicPage { +public class MyCasesPage extends CasesPage { } diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/user/UserPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/user/UserPage.java index 7ef54d9395f..93d1947de48 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/user/UserPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/user/UserPage.java @@ -136,6 +136,7 @@ public AssignmentHolderBasicTab selectTabBasic(){ return new AssignmentHolderBasicTab(this, element); } + @Override public AssignmentsTab selectTabAssignments(){ SelenideElement element = findTabPanel().clickTab("pageAdminFocus.assignments"); diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/ConstantsUtil.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/ConstantsUtil.java index 60ec1a84ca2..770a0823996 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/ConstantsUtil.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/ConstantsUtil.java @@ -6,6 +6,8 @@ */ package com.evolveum.midpoint.schrodinger.util; +import java.io.File; + /** * Created by Kate Honchar */ @@ -23,5 +25,19 @@ public class ConstantsUtil { public static final String MENU_ALL_REQUESTS_MENU_ITEM_LABEL_TEXT = "All requests"; public static final String MENU_ALL_APPROVALS_MENU_ITEM_LABEL_TEXT = "All approvals"; + //object attribute values + public static final String CASE_CREATION_TEST_USER_NAME = "caseCreationTestUser"; + public static final String CASE_CREATION_TEST_ROLE_NAME = "Role with admin approver"; + public static final String CASE_CREATION_TEST_CASE_NAME = "Approving and executing change of user \"caseCreationTestUser\""; + + //files to import + public static final File ROLE_WITH_ADMIN_APPROVER_XML = new File("./src/test/resources/role-with-admin-approver.xml"); + + //add new assignment popup - tabs names + public static final String ASSIGNMENT_TYPE_SELECTOR_ROLE = "Role"; + public static final String ASSIGNMENT_TYPE_SELECTOR_ORG_TREE = "Org. tree view"; + public static final String ASSIGNMENT_TYPE_SELECTOR_ORG = "Org"; + public static final String ASSIGNMENT_TYPE_SELECTOR_SERVICE = "Service"; + public static final String ASSIGNMENT_TYPE_SELECTOR_RESOURCE = "Resource"; }