Skip to content

Commit

Permalink
forward workitem test
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Nov 20, 2019
1 parent 6b46b9c commit da59a32
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 7 deletions.
Expand Up @@ -8,17 +8,24 @@

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.modal.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.modal.ForwardWorkitemModal;
import com.evolveum.midpoint.schrodinger.component.modal.ObjectBrowserModal;
import com.evolveum.midpoint.schrodinger.page.cases.*;
import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.schrodinger.util.ConstantsUtil;
import com.evolveum.midpoint.testing.schrodinger.TestBase;
import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.io.File;

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

/**
* Created by honchar.
*/
Expand All @@ -33,6 +40,7 @@ public class CaseTests extends TestBase {
public static final String REJECT_WORKITEM_TEST_USER_NAME = "rejectWorkitemTestUser";
public static final String CLAIM_WORKITEM_TEST_USER_NAME = "claimWorkitemTestUser";
public static final String FORWARD_WORKITEM_TEST_USER_NAME = "forwardWorkitemTestUser";
public static final String FORWARD_WORKITEM_TO_USER_NAME = "forwardToUser";

@BeforeMethod
private void importRoleWithApprovement() {
Expand Down Expand Up @@ -141,7 +149,7 @@ public void test120approveCaseAction() {
.changesAreApplied());
}

@Test (dependsOnMethods = {"test110isCaseCreated"})
@Test
public void test130rejectCaseAction() {
createUserAndAssignRoleWithApprovement(REJECT_WORKITEM_TEST_USER_NAME);

Expand Down Expand Up @@ -181,6 +189,70 @@ public void test130rejectCaseAction() {
.changesAreRejected());
}

@Test
public void test140forwardCaseAction() {
createUserAndAssignRoleWithApprovement(FORWARD_WORKITEM_TEST_USER_NAME);

UserPage user = basicPage.newUser();
user.selectTabBasic()
.form()
.addAttributeValue("name", FORWARD_WORKITEM_TO_USER_NAME)
.and()
.and()
.clickSave();

AllRequestsPage allRequestsPage = basicPage.listAllRequests();
WorkitemDetailsPanel<CasePage> workitemDetailsPanel = allRequestsPage
.table()
.search()
.byName()
.inputValue(REQUEST_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.updateSearch()
.and()
.clickByPartialName(REQUEST_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.selectTabChildren()
.table()
.clickByPartialName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.selectTabWorkitems()
.table()
.clickByName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME);

ForwardWorkitemModal forwardWorkitemModal = workitemDetailsPanel.forwardButtonClick();
forwardWorkitemModal
.table()
.search()
.byName()
.inputValue(FORWARD_WORKITEM_TO_USER_NAME)
.updateSearch();
forwardWorkitemModal
.table()
.clickByName(FORWARD_WORKITEM_TO_USER_NAME);

Assert.assertTrue(workitemDetailsPanel
.forwardOperationUserSelectionPerformed()
.clickYes()
.feedback()
.isSuccess());

allRequestsPage = basicPage.listAllRequests();
Assert.assertTrue(allRequestsPage
.table()
.search()
.byName()
.inputValue(REQUEST_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.updateSearch()
.and()
.clickByPartialName(REQUEST_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.selectTabChildren()
.table()
.clickByPartialName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.selectTabWorkitems()
.table()
.clickByName(ASSIGNING_ROLE_CASE_NAME + FORWARD_WORKITEM_TEST_USER_NAME)
.matchApproverElementValue(FORWARD_WORKITEM_TO_USER_NAME));

}

private boolean isCaseMenuItemActive(String menuIdentifier, boolean checkByLabelText){
SelenideElement casesMenuItemElement;
if (!checkByLabelText) {
Expand Down
@@ -0,0 +1,32 @@
package com.evolveum.midpoint.schrodinger.component.modal;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

public class ForwardWorkitemModal<T> extends ModalBox<T> {

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

public ObjectBrowserModalTable<T, ForwardWorkitemModal<T>> table(){
SelenideElement box = $(Schrodinger.byElementAttributeValue("div", "class","box boxed-table"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new ObjectBrowserModalTable<T, ForwardWorkitemModal<T>>(this, box){
public T clickByName(String name){
getParentElement().$(Schrodinger.byElementValue("span", "data-s-id", "label", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

box.waitUntil(Condition.disappears, MidPoint.TIMEOUT_DEFAULT_2_S);

return getParent().getParent();
}
};
}

}
Expand Up @@ -30,11 +30,11 @@ public ObjectBrowserModal<T> selectType(String type) {
return this;
}

public ObjectBrowserModalTable<T> table(){
public ObjectBrowserModalTable<T, ObjectBrowserModal<T>> table(){
SelenideElement box = $(Schrodinger.byElementAttributeValue("div", "class","box boxed-table"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new ObjectBrowserModalTable<T>(this, box);
return new ObjectBrowserModalTable<T, ObjectBrowserModal<T>>(this, box);
}

}
Expand Up @@ -15,9 +15,9 @@
/**
* Created by honchar
*/
public class ObjectBrowserModalTable<T> extends Table<ObjectBrowserModal<T>>{
public class ObjectBrowserModalTable<T, M extends ModalBox<T>> extends Table<M>{

public ObjectBrowserModalTable(ObjectBrowserModal<T> parent, SelenideElement parentElement){
public ObjectBrowserModalTable(M parent, SelenideElement parentElement){
super(parent, parentElement);
}

Expand Down
Expand Up @@ -385,7 +385,7 @@ private SelenideElement getMainMenuItemElement(String topLevelMenuKey, String ma
SelenideElement mainMenuLi = mainMenu.parent().parent();
if (!mainMenuLi.has(Condition.cssClass("active"))) {
mainMenu.click();
mainMenuLi.waitUntil(Condition.cssClass("active"),MidPoint.TIMEOUT_DEFAULT_2_S).shouldHave(Condition.cssClass("active"));
mainMenuLi.waitUntil(Condition.cssClass("active"),MidPoint.TIMEOUT_MEDIUM_6_S).shouldHave(Condition.cssClass("active"));
}
return mainMenu;
}
Expand Down
Expand Up @@ -10,8 +10,15 @@
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.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.modal.ForwardWorkitemModal;
import com.evolveum.midpoint.schrodinger.component.modal.ObjectBrowserModal;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

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

/**
* Created by Kate Honchar
Expand All @@ -36,11 +43,22 @@ public void rejectButtonClick(){
.click();
}

public void forwardButtonClick(){
public ForwardWorkitemModal forwardButtonClick(){
getParentElement()
.$(Schrodinger.byDataId("workItemForwardButton"))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S)
.click();
SelenideElement modalWindow = $(By.className("wicket-modal"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);
ForwardWorkitemModal<P> forwardWorkitemModal = new ForwardWorkitemModal<P>(getParent(), modalWindow);
return forwardWorkitemModal;
}

public ConfirmationModal<P> forwardOperationUserSelectionPerformed(){
SelenideElement modalWindow = $(Schrodinger.byElementAttributeValue("div", "aria-labelledby", "Confirm forwarding"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S);
ConfirmationModal<P> confirmationModal = new ConfirmationModal<P>(getParent(), modalWindow);
return confirmationModal;
}

public void claimButtonClick(){
Expand All @@ -50,4 +68,12 @@ public void claimButtonClick(){
.click();
}

public boolean matchApproverElementValue(String approver){
return getParentElement()
.$(Schrodinger.byDataId("approver"))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S)
.$(byText(approver))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S)
.is(Condition.visible);
}
}

0 comments on commit da59a32

Please sign in to comment.