Skip to content

Commit

Permalink
schrodinger tests refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 19, 2019
1 parent dd40f5e commit 6d7e95d
Show file tree
Hide file tree
Showing 8 changed files with 166 additions and 89 deletions.
@@ -0,0 +1,36 @@
package com.evolveum.midpoint.testing.schrodinger.scenarios;

import com.codeborne.selenide.Condition;
import com.evolveum.midpoint.schrodinger.component.AssignmentHolderBasicTab;
import com.evolveum.midpoint.schrodinger.page.org.NewOrgPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import com.evolveum.midpoint.testing.schrodinger.TestBase;
import org.openqa.selenium.By;
import org.testng.annotations.Test;

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

/**
* Created by honchar.
*/
public class OrgMembersTests extends TestBase {

private static final String ORG_NAME = "";

@Test
public void createOrgWithinMenuItem(){
NewOrgPage newOrgPage = basicPage.newOrgUnit();
AssignmentHolderBasicTab<NewOrgPage> basicTab = newOrgPage
.selectTabBasic()
.form()
.addAttributeValue("Name", ORG_NAME)
.and();


basicTab
.and()
.clickSave();

$(Schrodinger.byElementAttributeValue("a", "class", "tab-label")).find(By.linkText(ORG_NAME)).shouldBe(Condition.visible);
}
}
Expand Up @@ -4,6 +4,7 @@
import com.evolveum.midpoint.schrodinger.page.configuration.ImportObjectPage;
import com.evolveum.midpoint.schrodinger.page.resource.ListResourcesPage;
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.apache.commons.io.FileUtils;
import org.testng.Assert;
Expand Down Expand Up @@ -64,7 +65,7 @@ public void importOrgStructure() throws IOException, ConfigurationException {
@Test (dependsOnMethods ={IMPORT_ORG_STRUCT_DEPENDENCY})
public void assignOrgUnit(){
ListUsersPage users = basicPage.listUsers();
users
UserPage userPage = (UserPage) users
.table()
.search()
.byName()
Expand All @@ -84,8 +85,8 @@ public void assignOrgUnit(){
.selectCheckboxByName(NAME_ORG_UNIT_ASSIGN)
.and()
.clickAdd()
.and()
.checkKeepDisplayingResults()
.and();
userPage.checkKeepDisplayingResults()
.clickSave()
.feedback()
.isSuccess()
Expand All @@ -95,7 +96,7 @@ public void assignOrgUnit(){
@Test (dependsOnMethods ={ORG_UNIT_ACCOUNT_INDUCEMENT_DEPENDENCY})
public void unassignOrgUnit(){
ListUsersPage users = basicPage.listUsers();
users
UserPage userPage = (UserPage) users
.table()
.search()
.byName()
Expand All @@ -107,8 +108,8 @@ public void unassignOrgUnit(){
.table()
.unassignByName(NAME_ORG_UNIT_UNASSIGN)
.and()
.and()
.checkKeepDisplayingResults()
.and();
userPage.checkKeepDisplayingResults()
.clickSave()
.feedback()
.isSuccess();
Expand All @@ -125,7 +126,7 @@ public void orgUnitAccountInducement(){
refreshResourceSchema(NAME_CSV_RESOURCE_ADVANCED_SYNC);

ListUsersPage users = basicPage.listUsers();
users
UserPage userPage = (UserPage) users
.table()
.search()
.byName()
Expand All @@ -145,7 +146,8 @@ public void orgUnitAccountInducement(){
.selectCheckboxByName(NAME_ORG_UNIT_ASSIGN_AND_INDUCE)
.and()
.clickAdd()
.and()
.and();
userPage
.checkKeepDisplayingResults()
.clickSave()
.feedback()
Expand Down
@@ -0,0 +1,20 @@
package com.evolveum.midpoint.schrodinger.component;

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

/**
* Created by Viliam Repan (lazyman).
*/
public class AssignmentHolderBasicTab<P extends AssignmentHolderDetailsPage> extends Component<P> {

public AssignmentHolderBasicTab(P parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public PrismForm<AssignmentHolderBasicTab<P>> form() {
SelenideElement element = null;
return new PrismForm<AssignmentHolderBasicTab<P>>(this, element);
}
}
Expand Up @@ -14,37 +14,35 @@
* limitations under the License.
*/

package com.evolveum.midpoint.schrodinger.component.user;
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.Component;
import com.evolveum.midpoint.schrodinger.component.modal.FocusSetAssignmentsModal;
import com.evolveum.midpoint.schrodinger.component.common.PrismFormWithActionButtons;
import com.evolveum.midpoint.schrodinger.component.common.table.AbstractTableWithPrismView;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.schrodinger.page.AssignmentHolderDetailsPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.apache.http.util.Asserts;

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

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

public UserAssignmentsTab(UserPage parent, SelenideElement parentElement) {
public AssignmentsTab(P parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public AbstractTableWithPrismView<UserAssignmentsTab> table() {
public AbstractTableWithPrismView<AssignmentsTab<P>> table() {

SelenideElement tableBox = $(Schrodinger.byDataId("div", "assignmentsTable"));

return new AbstractTableWithPrismView<UserAssignmentsTab>(this, tableBox) {
return new AbstractTableWithPrismView<AssignmentsTab<P>>(this, tableBox) {
@Override
public PrismFormWithActionButtons<AbstractTableWithPrismView<UserAssignmentsTab>> clickByName(String name) {
public PrismFormWithActionButtons<AbstractTableWithPrismView<AssignmentsTab<P>>> clickByName(String name) {

$(Schrodinger.byElementValue("span", "data-s-id", "label", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();
Expand All @@ -56,7 +54,7 @@ public PrismFormWithActionButtons<AbstractTableWithPrismView<UserAssignmentsTab>
}

@Override
public AbstractTableWithPrismView<UserAssignmentsTab> selectCheckboxByName(String name) {
public AbstractTableWithPrismView<AssignmentsTab<P>> selectCheckboxByName(String name) {

$(Schrodinger.byFollowingSiblingEnclosedValue("td", "class", "check", "data-s-id", "3", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();
Expand All @@ -65,7 +63,7 @@ public AbstractTableWithPrismView<UserAssignmentsTab> selectCheckboxByName(Strin
}

@Override
public AbstractTableWithPrismView<UserAssignmentsTab> unassignByName(String name) {
public AbstractTableWithPrismView<AssignmentsTab<P>> unassignByName(String name) {

$(Schrodinger.byAncestorPrecedingSiblingDescendantOrSelfElementEnclosedValue("button", "title", "Unassign", null, null, name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();
Expand All @@ -75,14 +73,14 @@ public AbstractTableWithPrismView<UserAssignmentsTab> unassignByName(String name
};
}

public FocusSetAssignmentsModal<UserAssignmentsTab> clickAddAssignemnt() {
public FocusSetAssignmentsModal<AssignmentsTab<P>> clickAddAssignemnt() {
$(Schrodinger.byElementAttributeValue("i", "class", "fe fe-assignment"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

SelenideElement modalElement = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Select object(s)"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S);

return new FocusSetAssignmentsModal<>(this, modalElement);
return new FocusSetAssignmentsModal<AssignmentsTab<P>>(this, modalElement);
}

public boolean assignmentExists(String assignmentName){
Expand Down

This file was deleted.

@@ -0,0 +1,48 @@
package com.evolveum.midpoint.schrodinger.page;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.AssignmentHolderBasicTab;
import com.evolveum.midpoint.schrodinger.component.common.TabPanel;
import com.evolveum.midpoint.schrodinger.component.AssignmentsTab;
import com.evolveum.midpoint.schrodinger.page.user.ProgressPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

/**
* Created by honchar
*/
public abstract class AssignmentHolderDetailsPage extends BasicPage {

public BasicPage clickBack() {
$(Schrodinger.byDataResourceKey("pageAdminFocus.button.back")).click();
return new BasicPage();
}

public ProgressPage clickSave() {
$(Schrodinger.byDataId("save")).click();
return new ProgressPage();
}

protected TabPanel findTabPanel() {
SelenideElement tabPanelElement = $(Schrodinger.byDataId("div", "tabPanel"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);
return new TabPanel<>(this, tabPanelElement);
}

public abstract <P extends AssignmentHolderDetailsPage> AssignmentHolderBasicTab<P> selectTabBasic();
// SelenideElement element = findTabPanel().clickTab("pageAdminFocus.basic")
// .waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);
//
// return new AssignmentHolderBasicTab<>(getParentComponent(), element);
// }

public abstract <P extends AssignmentHolderDetailsPage> AssignmentsTab<P> selectTabAssignments();
// SelenideElement element = findTabPanel().clickTab("pageAdminFocus.assignments");
//
// return new AssignmentsTab<>(getParentComponent(), element);
// }

}
@@ -1,9 +1,29 @@
package com.evolveum.midpoint.schrodinger.page.org;

import com.evolveum.midpoint.schrodinger.page.BasicPage;
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.AssignmentHolderBasicTab;
import com.evolveum.midpoint.schrodinger.component.AssignmentsTab;
import com.evolveum.midpoint.schrodinger.page.AssignmentHolderDetailsPage;

/**
* Created by Viliam Repan (lazyman).
*/
public class NewOrgPage extends BasicPage {
public class NewOrgPage extends AssignmentHolderDetailsPage {

@Override
public AssignmentHolderBasicTab<NewOrgPage> selectTabBasic(){
SelenideElement element = findTabPanel().clickTab("pageAdminFocus.basic")
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new AssignmentHolderBasicTab<NewOrgPage>(this, element);
}

public AssignmentsTab<NewOrgPage> selectTabAssignments(){
SelenideElement element = findTabPanel().clickTab("pageAdminFocus.assignments");

return new AssignmentsTab<NewOrgPage>(this, element);
}

}

0 comments on commit 6d7e95d

Please sign in to comment.