From 2838e3c0b84b3386d7d655c348175ee9726e7dfc Mon Sep 17 00:00:00 2001 From: kate Date: Fri, 29 May 2020 10:01:13 +0200 Subject: [PATCH 1/2] schrodinger test fix --- .../midpoint/web/component/search/Search.java | 2 +- .../web/component/search/SearchFactory.java | 2 +- .../schrodinger/scenarios/CaseTests.java | 10 ++++++-- .../scenarios/ObjectListArchetypeTests.java | 11 +++++--- .../schrodinger/component/common/Search.java | 25 +++++++++++++------ .../component/common/SearchItemField.java | 24 ++++++++++++++++++ .../midpoint/schrodinger/util/Utils.java | 2 +- 7 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/SearchItemField.java diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java index 38f3dc8623d..80ae89ee359 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/Search.java @@ -57,7 +57,7 @@ public class Search implements Serializable, DebugDumpable { private boolean showAdvanced = false; private boolean isFullTextSearchEnabled = false; - private boolean canConfigure; + private boolean canConfigure = true; //TODO should be changed to false private String advancedQuery; private String advancedError; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java index 6b2155ba450..6e06a6e52ff 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java @@ -323,7 +323,7 @@ private static SearchItemsType getConfiguredSearchItems(M private static boolean isAllowToConfigureSearchItems(ModelServiceLocator modelServiceLocator, Class type, String collectionViewName){ SearchBoxConfigurationType searchConfig = getSearchBoxConfiguration(modelServiceLocator, type, collectionViewName); if (searchConfig == null || searchConfig.isAllowToConfigureSearchItems() == null){ - return false; + return true; //todo should be set to false } return searchConfig.isAllowToConfigureSearchItems(); } 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 e513f402a31..9539f3a456f 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 @@ -11,6 +11,11 @@ import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; + +import com.evolveum.midpoint.schrodinger.component.common.Search; +import com.evolveum.midpoint.schrodinger.component.common.SearchItemField; +import com.evolveum.midpoint.schrodinger.component.modal.ObjectBrowserModal; + import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -234,10 +239,11 @@ public void test140forwardCaseAction() { .clickByName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME); ForwardWorkitemModal forwardWorkitemModal = workitemDetailsPanel.forwardButtonClick(); - forwardWorkitemModal + SearchItemField> nameSearchField = forwardWorkitemModal .table() .search() - .byName() + .byName(); + nameSearchField .inputValue(FORWARD_WORKITEM_TO_USER_NAME) .updateSearch(); forwardWorkitemModal diff --git a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/ObjectListArchetypeTests.java b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/ObjectListArchetypeTests.java index d0f59b35d05..06e902dd22f 100644 --- a/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/ObjectListArchetypeTests.java +++ b/testing/schrodingertest/src/test/java/com/evolveum/midpoint/testing/schrodinger/scenarios/ObjectListArchetypeTests.java @@ -11,6 +11,8 @@ import com.codeborne.selenide.SelenideElement; import com.evolveum.midpoint.schrodinger.MidPoint; import com.evolveum.midpoint.schrodinger.component.common.PrismForm; +import com.evolveum.midpoint.schrodinger.component.common.Search; +import com.evolveum.midpoint.schrodinger.component.common.SearchItemField; import com.evolveum.midpoint.schrodinger.component.configuration.AdminGuiTab; import com.evolveum.midpoint.schrodinger.component.modal.ObjectBrowserModal; import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage; @@ -81,13 +83,14 @@ public void configureArchetypeObjectListView(){ .waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S); ObjectBrowserModal objectBrowserModal = new ObjectBrowserModal<>(prismForm, modalWindow); - objectBrowserModal + SearchItemField> nameSearchField = objectBrowserModal .selectType("Archetype") .table() .search() - .byName() - .inputValue(ARCHETYPE_OBJECT_NAME) - .updateSearch(); + .byName(); + nameSearchField + .inputValue(ARCHETYPE_OBJECT_NAME) + .updateSearch(); objectBrowserModal .table() .clickByName(ARCHETYPE_OBJECT_NAME); diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/Search.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/Search.java index 15f0a3499d7..1a7fc39f8c6 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/Search.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/Search.java @@ -13,6 +13,10 @@ import com.evolveum.midpoint.schrodinger.component.Component; import com.evolveum.midpoint.schrodinger.util.Schrodinger; +import org.openqa.selenium.By; + +import static com.codeborne.selenide.Selectors.byText; + /** * Created by Viliam Repan (lazyman). */ @@ -22,13 +26,18 @@ public Search(T parent, SelenideElement parentElement) { super(parent, parentElement); } - public Popover> byName() { - + public SearchItemField> byName() { choiceBasicSearch(); + SelenideElement nameElement = getItemByName("Name"); + SelenideElement nameInput = nameElement.parent().$x(".//input[@" + Schrodinger.DATA_S_ID + "='input']") + .waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S); + return new SearchItemField(this, nameInput); + } - getParentElement().$x(".//a[@"+Schrodinger.DATA_S_ID+"='mainButton']").waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click(); - Selenide.sleep(MidPoint.TIMEOUT_DEFAULT_2_S); - return new Popover<>(this, getDisplayedPopover()); + public Search updateSearch(){ + getParentElement().$(Schrodinger.byDataId("searchSimple")) + .waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click(); + return this; } private void choiceBasicSearch() { @@ -85,9 +94,9 @@ public Popover> byItem(String name) { } private SelenideElement getItemByName(String name) { - ElementsCollection items = getParentElement().findAll(Schrodinger.byDataId("a", "mainButton")); + ElementsCollection items = getParentElement().findAll(By.className("search-item")); for (SelenideElement item : items) { - if (item.getText().startsWith(name + ":")) { + if (item.$(byText(name)) != null) { return item; } } @@ -107,6 +116,8 @@ private SelenideElement getDisplayedPopover() { return popover; } + + public Search resetBasicSearch() { choiceBasicSearch(); SelenideElement nameItem = getItemByName("Name"); diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/SearchItemField.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/SearchItemField.java new file mode 100644 index 00000000000..f0701ac0c02 --- /dev/null +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/component/common/SearchItemField.java @@ -0,0 +1,24 @@ +package com.evolveum.midpoint.schrodinger.component.common; + +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.SelenideElement; + +import com.evolveum.midpoint.schrodinger.MidPoint; +import com.evolveum.midpoint.schrodinger.component.Component; +import com.evolveum.midpoint.schrodinger.util.Schrodinger; + +public class SearchItemField extends Component { + + public SearchItemField(T parent, SelenideElement parentElement) { + super(parent, parentElement); + } + + public T inputValue(String input) { + SelenideElement inputField = getParentElement().parent().$x(".//input[@" + Schrodinger.DATA_S_ID + "='input']") + .waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S); + if(!input.equals(inputField.getValue())) { + inputField.setValue(input); + } + return getParent(); + } +} diff --git a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/Utils.java b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/Utils.java index 0128aa05e49..de6d73bd44f 100644 --- a/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/Utils.java +++ b/tools/schrodinger/src/main/java/com/evolveum/midpoint/schrodinger/util/Utils.java @@ -59,7 +59,7 @@ public static

void addAsignments(Assignm .updateSearch() .and() .selectCheckboxByName(assignment) - .and() + .and() .clickAdd(); } From dc3013af13ae90778414ef32be85eaf222adac4b Mon Sep 17 00:00:00 2001 From: lskublik Date: Fri, 29 May 2020 10:03:24 +0200 Subject: [PATCH 2/2] addind of mapper for report export configuration type --- .../ReportExportConfigurationMapper.java | 29 +++++++++++++++++++ .../sql/helpers/modify/PrismEntityMapper.java | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/ReportExportConfigurationMapper.java diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/ReportExportConfigurationMapper.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/ReportExportConfigurationMapper.java new file mode 100644 index 00000000000..e7e698a1e09 --- /dev/null +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/mapper/ReportExportConfigurationMapper.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2010-2020 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.repo.sql.helpers.mapper; + +import com.evolveum.midpoint.repo.sql.data.common.enums.RExportType; +import com.evolveum.midpoint.repo.sql.helpers.modify.MapperContext; +import com.evolveum.midpoint.repo.sql.util.RUtil; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ExportConfigurationType; + +import javax.xml.namespace.QName; + +/** + * @author lskublik + */ +public class ReportExportConfigurationMapper implements Mapper { + + @Override + public RExportType map(ExportConfigurationType input, MapperContext context) { + if (input.getType() == null) { + return null; + } + return RExportType.valueOf(input.getType().name()); + } +} diff --git a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/modify/PrismEntityMapper.java b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/modify/PrismEntityMapper.java index 269a50afa20..b43f306bbc8 100644 --- a/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/modify/PrismEntityMapper.java +++ b/repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/modify/PrismEntityMapper.java @@ -18,6 +18,7 @@ import com.evolveum.midpoint.repo.sql.data.common.container.*; import com.evolveum.midpoint.repo.sql.data.common.dictionary.ExtItemDictionary; import com.evolveum.midpoint.repo.sql.data.common.embedded.*; +import com.evolveum.midpoint.repo.sql.data.common.enums.RExportType; import com.evolveum.midpoint.repo.sql.data.common.enums.SchemaEnum; import com.evolveum.midpoint.repo.sql.helpers.BaseHelper; import com.evolveum.midpoint.repo.sql.helpers.mapper.*; @@ -60,6 +61,7 @@ public class PrismEntityMapper { MAPPERS.put(new Key(MetadataType.class, Metadata.class), new MetadataMapper()); MAPPERS.put(new Key(byte[].class, RFocusPhoto.class), new RFocusPhotoMapper()); + MAPPERS.put(new Key(ExportConfigurationType.class, RExportType.class), new ReportExportConfigurationMapper()); } @Autowired private RepositoryService repositoryService;