Skip to content

Commit

Permalink
MODIFY a couple of component classes, ADD classes to support simulati…
Browse files Browse the repository at this point in the history
…on of assigning projections, some refactoring
  • Loading branch information
matusmacik committed May 4, 2018
1 parent dddad1b commit a0a163b
Show file tree
Hide file tree
Showing 33 changed files with 328 additions and 121 deletions.
Expand Up @@ -24,7 +24,7 @@ public MidPoint(EnvironmentConfiguration environment) {

private void init() {
environment.validate();
// System.setProperty("webdriver.chrome.driver","C:\\Users\\matus\\chromedriver\\chromedriver.exe"); // TODO workaround, find proper way how to resolve
// System.setProperty("webdriver.chrome.driver","C:\\Users\\matus\\chromedriver\\chromedriver.exe"); // TODO workaround, find proper way how to resolve
System.setProperty("selenide.browser", environment.getDriver().name().toLowerCase());
System.setProperty("selenide.baseUrl", environment.getBaseUrl());

Expand Down
@@ -1,6 +1,13 @@
package com.evolveum.midpoint.schrodinger.component;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.CogDropDown;

import com.evolveum.midpoint.schrodinger.util.Schrodinger;

import static com.codeborne.selenide.Selenide.$;

/**
* Created by Viliam Repan (lazyman).
Expand Down
@@ -0,0 +1,36 @@
package com.evolveum.midpoint.schrodinger.component;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.ModalBox;
import com.evolveum.midpoint.schrodinger.component.common.table.Table;
import com.evolveum.midpoint.schrodinger.component.user.UserProjectionsTab;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

import static com.codeborne.selenide.Selenide.$;

/**
* Created by matus on 5/2/2018.
*/
public class FocusSetProjectionModal<T> extends ModalBox<T> {
public FocusSetProjectionModal(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public Table<FocusSetProjectionModal<T>> projectionsTable() {
SelenideElement resourcesBox = $(By.cssSelector("box boxed-table"));

return new Table<>(this, resourcesBox);
}

public T clickAdd() {

$(Schrodinger.byDataResourceKey("userBrowserDialog.button.addButton"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return this.getParent();
}

}
@@ -1,4 +1,4 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
Expand All @@ -8,7 +8,7 @@
/**
* Created by matus on 3/28/2018.
*/
public class ResourceConfigurationTab extends Component <EditResourceConfigurationPage> {
public class ResourceConfigurationTab extends Component<EditResourceConfigurationPage> {
public ResourceConfigurationTab(EditResourceConfigurationPage parent, SelenideElement parentElement) {
super(parent, parentElement);
}
Expand All @@ -17,10 +17,10 @@ public ResourceConfigurationTab(EditResourceConfigurationPage parent) {
super(parent);
}

public PrismForm<ResourceConfigurationTab> form (){
public PrismForm<ResourceConfigurationTab> form() {

SelenideElement element = null;

return new PrismForm<>(this,element);
return new PrismForm<>(this, element);
}
}
@@ -1,13 +1,12 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.component.common.PrismForm;

/**
* Created by matus on 3/28/2018.
*/
public class ResourceConnectorPoolTab <T> extends Component <T> {
public class ResourceConnectorPoolTab<T> extends Component<T> {
public ResourceConnectorPoolTab(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
Expand Down
@@ -1,12 +1,12 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;

/**
* Created by matus on 3/28/2018.
*/
public class ResourceResultsHandlersTab <T> extends Component <T> {
public class ResourceResultsHandlersTab<T> extends Component<T> {
public ResourceResultsHandlersTab(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
Expand Down
@@ -1,12 +1,12 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;

/**
* Created by matus on 3/28/2018.
*/
public class ResourceTimeoutsTab <T> extends Component<T> {
public class ResourceTimeoutsTab<T> extends Component<T> {
public ResourceTimeoutsTab(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
Expand Down
@@ -1,18 +1,17 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.Table;
import com.evolveum.midpoint.schrodinger.component.common.table.Table;
import com.evolveum.midpoint.schrodinger.component.common.table.TableWithClickableElements;
import com.evolveum.midpoint.schrodinger.page.resource.ViewResourcePage;
import com.evolveum.midpoint.schrodinger.page.user.NewUserPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

/**
* Created by matus on 4/25/2018.
*/
public class ResourcesTable<T> extends Table<T> {
public class ResourcesTable<T> extends Table<T> implements TableWithClickableElements {
public ResourcesTable(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
Expand Down
@@ -1,25 +1,26 @@
package com.evolveum.midpoint.schrodinger.component.Resource;
package com.evolveum.midpoint.schrodinger.component.resource;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.FeedbackBox;
import com.evolveum.midpoint.schrodinger.component.common.ModalBox;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

import static com.codeborne.selenide.Selenide.$;

/**
* Created by matus on 4/26/2018.
*/
public class TestConnectionModal extends ModalBox {
public class TestConnectionModal<T> extends ModalBox<T> {

private static final String CONNECTOR_INITIALIZATION_LABEL = "Connector initialization";
private static final String CONNECTOR_CONFIGURATION_LABEL = "Connector configuration";
private static final String CONNECTOR_CONNECTION_LABEL = "Connector connection";
private static final String CONNECTOR_CAPABILITIES_LABEL = "Connector capabilities";
private static final String RESOURCE_SCHEMA_LABEL = "Resource schema";

public TestConnectionModal(Object parent, SelenideElement parentElement) {
public TestConnectionModal(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

Expand Down Expand Up @@ -76,7 +77,26 @@ && feedbackConnectorConnection().isSuccess()
&& feedbackConnectorCapabilities().isSuccess()
&& feedbackResourceSchema().isSuccess();


clickOk(); // Not sure if this is good practice

return isSuccess;
}

public T clickOk() {

$(Schrodinger.byDataId("ok"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return this.getParent();
}

public T clickClose() {

$(Schrodinger.byElementAttributeValue("a", "class", "w_close"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return this.getParent();
}

}
@@ -0,0 +1,13 @@
package com.evolveum.midpoint.schrodinger.component.common;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;

/**
* Created by matus on 5/2/2018.
*/
public class CogDropDown<T> extends Component<T> {
public CogDropDown(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
}
Expand Up @@ -9,8 +9,8 @@
/**
* Created by matus on 4/26/2018.
*/
public class ModalBox<T> extends Component {
public ModalBox(Object parent, SelenideElement parentElement) {
public class ModalBox<T> extends Component<T> {
public ModalBox(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
}
Expand Up @@ -13,7 +13,7 @@ public Popover(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public Popover inputValue(String input) {
public Popover<T> inputValue(String input) {
getParentElement().$(By.cssSelector("input.form-control.input-sm")).setValue(input);

return this;
Expand Down
Expand Up @@ -33,7 +33,7 @@ public Search(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public Popover<Search> byName() {
public Popover<Search<T>> byName() {
getParentElement().$(By.partialLinkText("Name: All")).click();
SelenideElement popover = getParentElement().$(Schrodinger.byDataId("popover")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

Expand Down
Expand Up @@ -14,17 +14,19 @@
* limitations under the License.
*/

package com.evolveum.midpoint.schrodinger.component.common;
package com.evolveum.midpoint.schrodinger.component.common.table;

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.page.BasicPage;
import com.evolveum.midpoint.schrodinger.page.user.NewUserPage;
import com.evolveum.midpoint.schrodinger.component.common.Paging;
import com.evolveum.midpoint.schrodinger.component.common.Search;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

import static com.codeborne.selenide.Selenide.$;

/**
* Created by Viliam Repan (lazyman).
*/
Expand All @@ -35,10 +37,10 @@ public Table(T parent, SelenideElement parentElement) {
}


public Search<T> search() {
public Search<? extends Table> search() {
SelenideElement searchElement = getParentElement().$(By.cssSelector(".form-inline.pull-right.search-form"));

return new Search(this, searchElement);
return new Search<>(this, searchElement);
}

public Paging<T> paging() {
Expand All @@ -48,11 +50,23 @@ public Paging<T> paging() {
}


public BasicPage clickByName(String name) {
public Table<T> selectCheckboxByName(String name) {
SelenideElement parent = $(Schrodinger.byElementEnclosedTextValue(null, "data-s-id", "cell", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).parent();
;

String row = parent.getAttribute("data-s-id").toString();

getParentElement().$(By.xpath("//span[@data-s-id=\"label\"][text()=\"" + name + "\"]/.."))
parent.$(Schrodinger.byElementAttributeValue("input", "name", constructCheckBoxIdBasedOnRow(row)))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return new BasicPage();
return this;
}

private String constructCheckBoxIdBasedOnRow(String row) {
StringBuilder constructCheckboxName = new StringBuilder("table:box:tableContainer:table:body:rows:")
.append(row).append(":cells:1:cell:check");

return constructCheckboxName.toString();
}
}
@@ -0,0 +1,16 @@
package com.evolveum.midpoint.schrodinger.component.common.table;

import com.codeborne.selenide.Condition;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
import org.openqa.selenium.By;

/**
* Created by matus on 5/2/2018.
*/
public interface TableWithClickableElements {


public <E extends BasicPage> E clickByName(String name);

}
Expand Up @@ -18,14 +18,14 @@

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.page.user.NewUserPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;

/**
* Created by Viliam Repan (lazyman).
*/
public class UserAssignmentsTab extends Component<NewUserPage> {
public class UserAssignmentsTab extends Component<UserPage> {

public UserAssignmentsTab(NewUserPage parent, SelenideElement parentElement) {
public UserAssignmentsTab(UserPage parent, SelenideElement parentElement) {
super(parent, parentElement);
}
}
Expand Up @@ -19,14 +19,14 @@
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.component.common.PrismForm;
import com.evolveum.midpoint.schrodinger.page.user.NewUserPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;

/**
* Created by Viliam Repan (lazyman).
*/
public class UserBasicTab extends Component<NewUserPage> {
public class UserBasicTab extends Component<UserPage> {

public UserBasicTab(NewUserPage parent, SelenideElement parentElement) {
public UserBasicTab(UserPage parent, SelenideElement parentElement) {
super(parent, parentElement);
}

Expand Down
Expand Up @@ -18,14 +18,14 @@

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.page.user.NewUserPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;

/**
* Created by Viliam Repan (lazyman).
*/
public class UserDelegatedToMeTab extends Component<NewUserPage> {
public class UserDelegatedToMeTab extends Component<UserPage> {

public UserDelegatedToMeTab(NewUserPage parent, SelenideElement parentElement) {
public UserDelegatedToMeTab(UserPage parent, SelenideElement parentElement) {
super(parent, parentElement);
}
}

0 comments on commit a0a163b

Please sign in to comment.