Skip to content

Commit

Permalink
ADD UserAccountTests suite and respective classes and methods, REFACT…
Browse files Browse the repository at this point in the history
…OR just basic naming and some minor changes
  • Loading branch information
matusmacik committed May 10, 2018
1 parent 58030c6 commit 6390c15
Show file tree
Hide file tree
Showing 12 changed files with 446 additions and 10 deletions.
@@ -1,11 +1,6 @@
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.$;

Expand Down
Expand Up @@ -6,8 +6,8 @@
/**
* Created by matus on 5/2/2018.
*/
public class CogDropDown<T> extends Component<T> {
public CogDropDown(T parent, SelenideElement parentElement) {
public class DropDown<T> extends Component<T> {
public DropDown(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}
}
Expand Up @@ -20,6 +20,7 @@
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.component.common.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.common.Paging;
import com.evolveum.midpoint.schrodinger.component.common.Search;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
Expand Down Expand Up @@ -49,4 +50,16 @@ public Paging<T> paging() {
return new Paging(this, pagingElement);
}

public Table<T> selectAll() {

$(Schrodinger.bySelfOrAncestorElementAttributeValue("input", "type", "checkbox", "data-s-id", "topToolbars"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return this;
}

public boolean currentTableContains(String name) {

return $(Schrodinger.byElementValue("Span", name)).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).is(Condition.visible);
}
}
@@ -0,0 +1,44 @@
package com.evolveum.midpoint.schrodinger.component.self;

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.component.common.DropDown;
import com.evolveum.midpoint.schrodinger.component.common.table.Table;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

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

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

public QuickSearch<T> inputValue(String name){
$(Schrodinger.byElementAttributeValue("input","name","searchInput")).setValue(name);

return this;
}

//TODO rethink
public Table clickSearch(){
$(Schrodinger.byElementAttributeValue("button","data-s-id","searchButton"))
.click();

return new Table("null",null);
}

public QuickSearchDropDown<QuickSearch<T>> clickSearchFor(){
$(Schrodinger.bySelfOrDescendantElementAttributeValue("button","data-toggle","dropdown","class","sr-only"))
.waitUntil(Condition.appears,MidPoint.TIMEOUT_DEFAULT).click();
SelenideElement dropDown = $(Schrodinger.byElementAttributeValue("ul","role","menu"))
.waitUntil(Condition.visible,MidPoint.TIMEOUT_DEFAULT);

return new QuickSearchDropDown<>(this,dropDown);
}
}
@@ -0,0 +1,37 @@
package com.evolveum.midpoint.schrodinger.component.self;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.common.DropDown;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

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

public T clickUsers(){
$(Schrodinger.byElementAttributeValue("a","value","Users"))
.click();

return this.getParent();
}

public T clickResources(){
$(Schrodinger.byElementAttributeValue("a","value","Resources"))
.click();

return this.getParent();
}

public T clickTasks(){
$(Schrodinger.byElementAttributeValue("a","value","Tasks")).
click();

return this.getParent();
}
}
Expand Up @@ -4,7 +4,7 @@
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.FocusSetProjectionModal;
import com.evolveum.midpoint.schrodinger.component.common.CogDropDown;
import com.evolveum.midpoint.schrodinger.component.common.DropDown;
import com.evolveum.midpoint.schrodinger.component.common.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

Expand All @@ -13,7 +13,7 @@
/**
* Created by matus on 5/2/2018.
*/
public class UserProjectionsCog<T> extends CogDropDown<T> {
public class UserProjectionsCog<T> extends DropDown<T> {

public UserProjectionsCog(T parent, SelenideElement parentElement) {
super(parent, parentElement);
Expand Down
Expand Up @@ -19,12 +19,16 @@
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.common.Search;
import com.evolveum.midpoint.schrodinger.component.common.table.Table;
import com.evolveum.midpoint.schrodinger.component.common.table.TableWithRedirectElements;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

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

/**
* Created by Viliam Repan (lazyman).
*/
Expand Down Expand Up @@ -54,4 +58,38 @@ public Search<UsersTable<T>> search() {

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


public ConfirmationModal<UsersTable<T>> clickEnable() {

$(Schrodinger.bySelfOrAncestorElementAttributeValue("i", "class", "fa fa-user fa-fw", "data-s-id", "topToolbars"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}


@Override
public UsersTable<T> selectAll() {

$(Schrodinger.bySelfOrAncestorElementAttributeValue("input", "type", "checkbox", "data-s-id", "topToolbars"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

return this;
}

public UsersTableDropDown<UsersTable<T>> clickActionDropDown() {

$(Schrodinger.bySelfOrAncestorElementAttributeValue("button", "data-toggle", "dropdown", "class", "sortableLabel"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement dropDown = $(Schrodinger.byElementAttributeValue("ul", "class", "dropdown-menu pull-right"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new UsersTableDropDown<>(this, dropDown);

}
}
@@ -0,0 +1,90 @@
package com.evolveum.midpoint.schrodinger.component.user;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.common.DropDown;
import com.evolveum.midpoint.schrodinger.component.common.table.Table;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

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

public ConfirmationModal<UsersTableDropDown<T>> clickEnable() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Enable")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}

public ConfirmationModal<UsersTableDropDown<T>> clickDisable() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Disable")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}

public ConfirmationModal<UsersTableDropDown<T>> clickReconcile() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Reconcile")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}


public ConfirmationModal<UsersTableDropDown<T>> clickUnlock() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Unlock")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}


public ConfirmationModal<UsersTableDropDown<T>> clickDelete() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Delete")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}

public ConfirmationModal<UsersTableDropDown<T>> clickMerge() {

$(Schrodinger.byElementValue("a", "data-s-id", "menuItemLink", "\n" +
" Merge")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).click();

SelenideElement actualModal = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm action"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new ConfirmationModal<>(this, actualModal);
}


}
@@ -1,9 +1,26 @@
package com.evolveum.midpoint.schrodinger.page.self;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.Popover;
import com.evolveum.midpoint.schrodinger.component.common.Search;
import com.evolveum.midpoint.schrodinger.component.self.QuickSearch;
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 HomePage extends BasicPage {

public QuickSearch<HomePage> search() {
SelenideElement searchElement = $(By.cssSelector("div.quicksearch-panel"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT);

return new QuickSearch<HomePage>(this, searchElement);
}
}
@@ -1,6 +1,7 @@
package com.evolveum.midpoint.schrodinger.page.user;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.common.FeedbackBox;
import com.evolveum.midpoint.schrodinger.component.user.UsersTable;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
import org.openqa.selenium.By;
Expand All @@ -17,4 +18,10 @@ public UsersTable<ListUsersPage> table() {

return new UsersTable<>(this, box);
}

public FeedbackBox<ListUsersPage> feedback() {
SelenideElement feedback = $(By.cssSelector("div.feedbackContainer"));

return new FeedbackBox<>(this, feedback);
}
}
Expand Up @@ -36,7 +36,7 @@ public class AccountTests extends TestBase {

private static final String CSV_RESOURCE_NAME= "Test CSV: username";

private static final String TEST_USER_MIKE_NAME= "michelangelo";
protected static final String TEST_USER_MIKE_NAME= "michelangelo";
private static final String TEST_USER_MIKE_LAST_NAME_OLD= "di Lodovico Buonarroti Simoni";
private static final String TEST_USER_MIKE_LAST_NAME_NEW= "di Lodovico Buonarroti Simoni Il Divino";

Expand Down Expand Up @@ -246,4 +246,5 @@ public void deleteAccount(){
.feedback()
.isSuccess();
}

}

0 comments on commit 6390c15

Please sign in to comment.