From e4dd2a0ac543e8392a2b812919bd6ab8ece418f1 Mon Sep 17 00:00:00 2001 From: kate Date: Wed, 16 Oct 2019 23:27:51 +0200 Subject: [PATCH] schrodinger test for MID-5346 (query play ground) --- .../page/QueryPlaygroundPageTest.java | 68 +++++++++++++++++++ .../testng-integration-schrodinger.xml | 10 +++ .../component/common/table/Table.java | 4 +- .../configuration/QueryPlaygroundPage.java | 52 ++++++++++++++ 4 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/page/QueryPlaygroundPageTest.java diff --git a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/page/QueryPlaygroundPageTest.java b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/page/QueryPlaygroundPageTest.java new file mode 100644 index 00000000000..9b5cfd4072a --- /dev/null +++ b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/page/QueryPlaygroundPageTest.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2010-2018 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.testing.schrodinger.page; + +import com.evolveum.midpoint.schrodinger.page.configuration.QueryPlaygroundPage; +import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage; +import com.evolveum.midpoint.schrodinger.page.user.UserPage; +import com.evolveum.midpoint.testing.schrodinger.TestBase; +import org.testng.Assert; +import org.testng.annotations.Test; + +/** + * Created by Kate Honchar. + */ +public class QueryPlaygroundPageTest extends TestBase{ + + @Test //covers MID-5346 + public void test001useInObjectListOptionTest() { + UserPage user = basicPage.newUser(); + + Assert.assertTrue( + user.selectTabBasic() + .form() + .addAttributeValue("name", "a_start") + .and() + .and() + .clickSave() + .feedback() + .isSuccess() + ); + + user = basicPage.newUser(); + Assert.assertTrue( + user.selectTabBasic() + .form() + .addAttributeValue("name", "b_start") + .and() + .and() + .clickSave() + .feedback() + .isSuccess() + ); + + QueryPlaygroundPage queryPlaygroundPage = basicPage.queryPlayground(); + queryPlaygroundPage + .setQuerySampleValue(QueryPlaygroundPage.QueryPlaygroundSample.FIRST_10_USERS_WITH_FIRST_A) + .useInObjectListButtonClick(); + + ListUsersPage usersPage = basicPage.listUsers(); + Assert.assertTrue( + usersPage + .table() + .containsLinkTextPartially("a_start") + ); + + Assert.assertFalse( + usersPage + .table() + .containsLinkTextPartially("b_start") + ); + + + } +} diff --git a/testing/schrodingertest/testng-integration-schrodinger.xml b/testing/schrodingertest/testng-integration-schrodinger.xml index 8363aa78827..0e64ac0e1fa 100644 --- a/testing/schrodingertest/testng-integration-schrodinger.xml +++ b/testing/schrodingertest/testng-integration-schrodinger.xml @@ -47,4 +47,14 @@ + + + + + + + + + + diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/table/Table.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/table/Table.java index 92a8f4bde0c..595b0007915 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/table/Table.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/table/Table.java @@ -67,11 +67,11 @@ public boolean currentTableContains(String elementName, String elementValue) { } public boolean containsText(String value){ - return $(byText(value)).waitUntil(Condition.visible, MidPoint.TIMEOUT_MEDIUM_6_S).is(Condition.visible); + return $(byText(value)).is(Condition.visible); } public boolean containsLinkTextPartially(String value){ - return $(byPartialLinkText(value)).waitUntil(Condition.visible, MidPoint.TIMEOUT_MEDIUM_6_S).is(Condition.visible); + return $(byPartialLinkText(value)).is(Condition.visible); } public boolean buttonToolBarExists(){ diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/configuration/QueryPlaygroundPage.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/configuration/QueryPlaygroundPage.java index cf1dfcee5fb..f4dca0a57f4 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/configuration/QueryPlaygroundPage.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/page/configuration/QueryPlaygroundPage.java @@ -6,10 +6,62 @@ */ package com.evolveum.midpoint.schrodinger.page.configuration; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.SelenideElement; +import com.evolveum.midpoint.schrodinger.MidPoint; import com.evolveum.midpoint.schrodinger.page.BasicPage; +import com.evolveum.midpoint.schrodinger.util.Schrodinger; +import org.openqa.selenium.By; + +import static com.codeborne.selenide.Selenide.$; /** * Created by Viliam Repan (lazyman). */ public class QueryPlaygroundPage extends BasicPage { + + public enum QueryPlaygroundSample{ + + ALL_OBJECTS_IN_A_SUBTREE("All objects in a subtree"), + ALL_OBJECTS_IN_ORG("All objects in an organization (directly)"), + ALL_ORG_ROOTS("All organizational roots"), + ALL_USERS("All users"), + FIRST_10_USERS_WITH_FIRST_A("First 10 users starting with \"a\""), + ORGS_WIT_TYPE1("Organizations of type \"type1\""), + RESOURCE_SHADOWS("Shadows on a given resource"), + USERS_CONTAINING_JACK_IN_NAME("Users containing \"jack\" in a name (normalized)"), + USERS_IN_COST_CENTERS("Users in cost centers 100000-999999 or X100-X999"), + USERS_WIT_FIRST_A_NORM("Users starting with \"a\" (normalized)"), + USERS_WITH_DIRECT_ROLE_ASSIGNMENT("Users that have a direct assignment of a role"), + USERS_WITH_ACTIVE_ROLE_ASSIGNEMT("Users that have active assignment of a role"), + USERS_WITH_MAIL_DOMAIN("Users with a given mail domain"), + USERS_WITH_GIVEN_NAME_JACK("Users with a given name of \"jack\" (normalized)"), + USERS_WITH_LINKED_SHADOW("Users with linked shadow on a given resource"); + + private String querySampleId; + + QueryPlaygroundSample(String querySampleName){ + this.querySampleId = querySampleName; + } + + public String getQuerySampleId() { + return querySampleId; + } + } + + public QueryPlaygroundPage setQuerySampleValue(QueryPlaygroundSample sample){ + $(Schrodinger.byDataId("querySample")) + .waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S) + .$(By.tagName("select")) + .selectOption(sample.getQuerySampleId()); + return this; + } + + public void useInObjectListButtonClick(){ + // Use in object list button redirects to the object list page + // according to the selected query sample type + $(Schrodinger.byDataId("useInObjectList")) + .waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S) + .click(); + } }