Skip to content

Commit

Permalink
approve workitem schrodinger test
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Nov 14, 2019
1 parent 7092d32 commit f270fe6
Show file tree
Hide file tree
Showing 9 changed files with 232 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
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.Test;

Expand All @@ -21,6 +22,8 @@
*/
public class CaseTests extends TestBase {

public static final String ASSIGNING_ROLE_CASE_NAME = "Assigning role \"Role with admin approver\" to user \"caseCreationTestUser\"";

@Test //covers mid-5813
public void test100openCasesAndCheckMenuEnabled() {
//check All cases page is opened, menu item is active, other case menu items are inactive
Expand Down Expand Up @@ -70,7 +73,7 @@ public void test100openCasesAndCheckMenuEnabled() {
}

@Test
public void isCaseCreated(){
public void test110isCaseCreated(){
importObject(ConstantsUtil.ROLE_WITH_ADMIN_APPROVER_XML,true);

UserPage user = basicPage.newUser();
Expand Down Expand Up @@ -119,6 +122,39 @@ public void isCaseCreated(){

}

@Test (dependsOnMethods = {"test110isCaseCreated"})
public void test120approveCaseAction() {
AllRequestsPage allRequestsPage = basicPage.listAllRequests();
allRequestsPage
.table()
.search()
.byName()
.inputValue(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME)
.updateSearch()
.and()
.clickByPartialName(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME)
.selectTabChildren()
.table()
.clickByPartialName(ASSIGNING_ROLE_CASE_NAME)
.selectTabWorkitems()
.table()
.clickByName(ASSIGNING_ROLE_CASE_NAME)
.approveButtonClick();

allRequestsPage = basicPage.listAllRequests();
Assert.assertTrue(allRequestsPage
.table()
.search()
.byName()
.inputValue(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME)
.updateSearch()
.and()
.clickByPartialName(ConstantsUtil.CASE_CREATION_TEST_CASE_NAME)
.selectTabChildren()
.table()
.currentTableContains("div", "closed"));
}

private boolean isCaseMenuItemActive(String menuIdentifier, boolean checkByLabelText){
SelenideElement casesMenuItemElement;
if (!checkByLabelText) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.Search;
import com.evolveum.midpoint.schrodinger.component.common.table.TableWithPageRedirect;
import com.evolveum.midpoint.schrodinger.component.modal.ConfirmationModal;
import com.evolveum.midpoint.schrodinger.component.user.UsersPageTable;
import com.evolveum.midpoint.schrodinger.component.user.UsersTableDropDown;
import com.evolveum.midpoint.schrodinger.page.AssignmentHolderDetailsPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;
Expand Down Expand Up @@ -47,6 +44,16 @@ public PD clickByName(String name) {
return getObjectDetailsPage();
}

public PD clickByPartialName(String name) {

getParentElement()
.$(Schrodinger.byDataId("tableContainer"))
.$(By.partialLinkText(name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

return getObjectDetailsPage();
}

@Override
public Search<? extends AssignmentHolderObjectListTable<P, PD>> search() {
SelenideElement searchElement = getParentElement().$(By.cssSelector(".form-inline.pull-right.search-form"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
/**
* Created by matus on 5/17/2018.
*/
public abstract class TableWithComponentRedirect<T> extends Table<T> {
public abstract class TableWithComponentRedirect<T, E extends Component> extends Table<T> {
public TableWithComponentRedirect(T parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public abstract <E extends Component<TableWithComponentRedirect<T>>> E clickByName(String name);
public abstract E clickByName(String name);

public abstract AbstractTable<T> selectCheckboxByName(String name);
public abstract TableWithComponentRedirect<T, E> selectCheckboxByName(String name);

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,16 @@ public AssignmentsTab<CasePage> selectTabAssignments(){

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

public ChildrenCasesTab selectTabChildren(){
SelenideElement element = findTabPanel().clickTab("PageCase.childCasesTab");

return new ChildrenCasesTab(this, element);
}

public WorkitemsTab selectTabWorkitems(){
SelenideElement element = findTabPanel().clickTab("PageCase.workitemsTab");

return new WorkitemsTab(this, element);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@
*/
package com.evolveum.midpoint.schrodinger.page.cases;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.assignmentholder.AssignmentHolderObjectListTable;
import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

/**
* Created by Kate Honchar.
Expand All @@ -22,6 +27,8 @@ public CasesListTable(CasesPage parent, SelenideElement parentElement){

@Override
public CasePage getObjectDetailsPage(){
$(Schrodinger.byDataId("mainPanel"))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S);
return new CasePage();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Copyright (c) 2010-2018 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.schrodinger.page.cases;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.table.TableWithPageRedirect;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
import com.evolveum.midpoint.schrodinger.page.task.EditTaskPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

/**
* Created by Kate Honchar
*/
public class ChildrenCaseTable extends TableWithPageRedirect<CasePage> {
public ChildrenCaseTable(CasePage parent, SelenideElement parentElement) {
super(parent, parentElement);
}

@Override
public CasePage clickByName(String name) {
getParentElement().$(Schrodinger.byElementValue("span", "data-s-id", "label", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();
return new CasePage();
}

@Override
public ChildrenCaseTable selectCheckboxByName(String name) {
//TODO implement

return this;
}

public CasePage clickByPartialName(String name) {
getParentElement()
.$(Schrodinger.byDataId("tableContainer"))
.$(By.partialLinkText(name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

return new CasePage();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* Copyright (c) 2010-2018 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.schrodinger.page.cases;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.Component;
import org.openqa.selenium.By;

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

/**
* Created by Kate Honchar
*/
public class ChildrenCasesTab extends Component<CasePage> {

public ChildrenCasesTab(CasePage parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public ChildrenCaseTable table(){
SelenideElement tableBox = $(By.cssSelector(".box.boxed-table")).waitUntil(Condition.exist, MidPoint.TIMEOUT_DEFAULT_2_S);
return new ChildrenCaseTable(getParent(), tableBox);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) 2010-2019 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.schrodinger.page.cases;

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.util.Schrodinger;

/**
* Created by Kate Honchar
*/
public class WorkitemDetailsPanel<P extends BasicPage> extends Component<P> {

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

public void approveButtonClick(){
getParentElement()
.$(Schrodinger.byDataId("workItemApproveButton"))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S)
.click();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* Copyright (c) 2010-2019 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.schrodinger.page.cases;

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

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

/**
* Created by Kate Honchar
*/
public class WorkitemsTab extends Component<CasePage> {

public WorkitemsTab(CasePage parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public TableWithComponentRedirect<WorkitemsTab, WorkitemDetailsPanel> table() {
SelenideElement tableBox = $(By.cssSelector(".box.boxed-table")).waitUntil(Condition.exist, MidPoint.TIMEOUT_DEFAULT_2_S);

return new TableWithComponentRedirect<WorkitemsTab, WorkitemDetailsPanel>(this, tableBox) {
@Override
public WorkitemDetailsPanel<CasePage> clickByName(String name) {
getParentElement()
.$(Schrodinger.byDataId("tableContainer"))
.$(By.partialLinkText(name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

SelenideElement detailsPanel = $(Schrodinger.byDataId("div", "details"))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S);

return new WorkitemDetailsPanel<CasePage>(WorkitemsTab.this.getParent(), detailsPanel);
}

@Override
public TableWithComponentRedirect<WorkitemsTab, WorkitemDetailsPanel> selectCheckboxByName(String name) {
//do nothing as there is no checkbox column in the table
return this;
}
};
}
}

0 comments on commit f270fe6

Please sign in to comment.