Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed May 29, 2020
2 parents dc3013a + 5521ce1 commit f26be78
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 22 deletions.
Expand Up @@ -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;
Expand Down
Expand Up @@ -323,7 +323,7 @@ private static <T extends ObjectType> SearchItemsType getConfiguredSearchItems(M
private static <T extends ObjectType> boolean isAllowToConfigureSearchItems(ModelServiceLocator modelServiceLocator, Class<T> 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();
}
Expand Down
Expand Up @@ -115,15 +115,15 @@ void evaluate() throws SchemaException, SecurityViolationException, Communicatio
private void addSkippedTargetsToMembershipLists()
throws SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException,
SecurityViolationException {
boolean resolvedTargets = false;
// boolean resolvedTargets = false;
// TODO CLEAN THIS UP
// Important: but we still want this to be reflected in roleMembershipRef
if (segment.isNonNegativeRelativityMode() && Util.shouldCollectMembership(segment)) {
if (segment.assignment.getTargetRef().getOid() != null) {
ctx.membershipCollector.collect(segment.assignment.getTargetRef(), segment.relation);
} else {
// no OID, so we have to resolve the filter
resolvedTargets = true;
// resolvedTargets = true;
targets.addAll(getTargets());
for (PrismObject<? extends ObjectType> targetObject : targets) {
ObjectType target = targetObject.asObjectable();
Expand All @@ -134,10 +134,11 @@ private void addSkippedTargetsToMembershipLists()
}
}

// We have to know targets for direct assignments
if (segment.direct && !resolvedTargets) {
targets.addAll(getTargets());
}
// We have to know targets for direct assignments.
// But these should be perhaps loaded lazily (MID-6292)
// if (segment.direct && !resolvedTargets) {
// targets.addAll(getTargets());
// }
}

private boolean hasCycle(@NotNull PrismObject<? extends ObjectType> target) throws PolicyViolationException {
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -234,10 +239,11 @@ public void test140forwardCaseAction() {
.clickByName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME);

ForwardWorkitemModal forwardWorkitemModal = workitemDetailsPanel.forwardButtonClick();
forwardWorkitemModal
SearchItemField<Search<ForwardWorkitemModal>> nameSearchField = forwardWorkitemModal
.table()
.search()
.byName()
.byName();
nameSearchField
.inputValue(FORWARD_WORKITEM_TO_USER_NAME)
.updateSearch();
forwardWorkitemModal
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -81,13 +83,14 @@ public void configureArchetypeObjectListView(){
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

ObjectBrowserModal objectBrowserModal = new ObjectBrowserModal<>(prismForm, modalWindow);
objectBrowserModal
SearchItemField<Search<ObjectBrowserModal>> 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);
Expand Down
Expand Up @@ -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).
*/
Expand All @@ -22,13 +26,18 @@ public Search(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public Popover<Search<T>> byName() {

public SearchItemField<Search<T>> 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<T> updateSearch(){
getParentElement().$(Schrodinger.byDataId("searchSimple"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();
return this;
}

private void choiceBasicSearch() {
Expand Down Expand Up @@ -85,9 +94,9 @@ public Popover<Search<T>> 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;
}
}
Expand All @@ -107,6 +116,8 @@ private SelenideElement getDisplayedPopover() {
return popover;
}



public Search<T> resetBasicSearch() {
choiceBasicSearch();
SelenideElement nameItem = getItemByName("Name");
Expand Down
@@ -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<T> extends Component<T> {

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();
}
}
Expand Up @@ -59,7 +59,7 @@ public static <P extends AssignmentHolderDetailsPage> void addAsignments(Assignm
.updateSearch()
.and()
.selectCheckboxByName(assignment)
.and()
.and()
.clickAdd();
}

Expand Down

0 comments on commit f26be78

Please sign in to comment.