Skip to content

Commit

Permalink
schrodinger improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Apr 9, 2020
1 parent a0603ce commit 7e344ab
Show file tree
Hide file tree
Showing 14 changed files with 92 additions and 113 deletions.
Expand Up @@ -45,7 +45,7 @@ public void test001createNewTask() {
.clickSave();

ListTasksPage tasksPage = basicPage.listTasks();
PrismForm<AssignmentHolderBasicTab<AssignmentHolderDetailsPage>> taskForm = tasksPage
PrismForm<AssignmentHolderBasicTab<TaskPage>> taskForm = tasksPage
.table()
.search()
.byName()
Expand Down
3 changes: 3 additions & 0 deletions tools/schrodinger/.gitignore
@@ -0,0 +1,3 @@
build

chromedriver
6 changes: 6 additions & 0 deletions tools/schrodinger/pom.xml
Expand Up @@ -64,5 +64,11 @@
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Expand Up @@ -9,9 +9,10 @@

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import org.openqa.selenium.By;

import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;

/**
* Created by Viliam Repan (lazyman).
Expand Down Expand Up @@ -54,4 +55,8 @@ private SelenideElement verifyAndFetchActiveTab(SelenideElement link) {

return li.parent().parent().$(By.cssSelector(".tab-pane.active"));
}

public SelenideElement getActiveTab() {
return getParentElement().$(By.cssSelector(".tab-pane.active"));
}
}
Expand Up @@ -34,20 +34,7 @@ public Table(T parent, SelenideElement parentElement) {
}

public TableRow rowByColumnLabel(String label, String rowValue) {
ElementsCollection headers = getParentElement().findAll("thead th div span[data-s-id=label]");
int index = 1;
for (SelenideElement header : headers) {
String value = header.text();
if (value == null) {
index++;
continue;
}

if (Objects.equals(label, value)) {
break;
}
index++;
}
int index = findColumnByLabel(label);

ElementsCollection rows = getParentElement().findAll("tbody tr");
for (SelenideElement row : rows) {
Expand All @@ -65,6 +52,25 @@ public TableRow rowByColumnLabel(String label, String rowValue) {
return null;
}

public int findColumnByLabel(String label) {
ElementsCollection headers = getParentElement().findAll("thead th div span[data-s-id=label]");
int index = 1;
for (SelenideElement header : headers) {
String value = header.text();
if (value == null) {
index++;
continue;
}

if (Objects.equals(label, value)) {
break;
}
index++;
}

return index;
}

public TableRow rowByColumnResourceKey(String key, String rowValue) {
// todo implement
return null;
Expand Down
Expand Up @@ -17,6 +17,7 @@
package com.evolveum.midpoint.schrodinger.component.common.table;

import com.codeborne.selenide.SelenideElement;
import org.openqa.selenium.By;

import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.component.common.InlineMenu;
Expand All @@ -36,6 +37,20 @@ public TableRow clickCheckBox() {
return this;
}

public TableRow clickColumnByName(String name) {
int index = getParent().findColumnByLabel(name);

SelenideElement a = getParentElement().$(By.cssSelector("td:nth-child(" + index + ") a"));
a.click();
// todo implement
return this;
}

public TableRow clickColumnByKey(String key) {
// todo implement
return this;
}

public InlineMenu<TableRow> getInlineMenu() {
SelenideElement element = getParentElement().find("td:last-child div.btn-group");
if (element == null) {
Expand Down
Expand Up @@ -25,6 +25,7 @@ public TasksPageTable(ListTasksPage parent, SelenideElement parentElement) {

@Override
public TaskPage clickByName(String name) {

getParentElement().$(Schrodinger.byElementValue("span", "data-s-id", "label", name))
.waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT_2_S).click();

Expand Down
Expand Up @@ -6,6 +6,8 @@
*/
package com.evolveum.midpoint.schrodinger.page;

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

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;

Expand All @@ -16,12 +18,10 @@
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 abstract class AssignmentHolderDetailsPage<P extends AssignmentHolderDetailsPage> extends BasicPage {

public BasicPage clickBack() {
$(Schrodinger.byDataResourceKey("pageAdminFocus.button.back"))
Expand All @@ -48,23 +48,22 @@ private SelenideElement getPreviewButton() {
return $(Schrodinger.byDataId("previewChanges"));
}

protected TabPanel findTabPanel() {
public TabPanel getTabPanel() {
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 AssignmentHolderBasicTab<P> selectTabBasic() {
SelenideElement element = getTabPanel().clickTab("pageAdminFocus.basic")
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

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

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

return new AssignmentsTab<>((P) this, element);
}
}
Expand Up @@ -6,13 +6,19 @@
*/
package com.evolveum.midpoint.schrodinger.page;

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

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.codeborne.selenide.WebDriverRunner;
import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.By;

import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.LoggedUser;
import com.evolveum.midpoint.schrodinger.component.common.FeedbackBox;
import com.evolveum.midpoint.schrodinger.component.configuration.*;
import com.evolveum.midpoint.schrodinger.page.cases.*;
import com.evolveum.midpoint.schrodinger.page.certification.*;
import com.evolveum.midpoint.schrodinger.page.configuration.*;
import com.evolveum.midpoint.schrodinger.page.org.NewOrgPage;
Expand All @@ -38,13 +44,8 @@
import com.evolveum.midpoint.schrodinger.page.user.FormSubmittablePage;
import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.schrodinger.page.cases.*;
import com.evolveum.midpoint.schrodinger.util.ConstantsUtil;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.By;

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

/**
* Created by Viliam Repan (lazyman).
Expand Down
Expand Up @@ -6,47 +6,29 @@
*/
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.AssignmentHolderBasicTab;
import com.evolveum.midpoint.schrodinger.component.AssignmentsTab;

import com.evolveum.midpoint.schrodinger.page.AssignmentHolderDetailsPage;

/**
* Created by Kate Honchar.
*/
public class CasePage extends AssignmentHolderDetailsPage {

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

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

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

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

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

return new ChildrenCasesTab(this, element);
}

public OperationRequestTab selectTabOperationRequest(){
SelenideElement element = findTabPanel().clickTab("PageCase.operationRequestTab");
SelenideElement element = getTabPanel().clickTab("PageCase.operationRequestTab");

return new OperationRequestTab(this, element);
}

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

return new WorkitemsTab(this, element);
}
Expand Down
Expand Up @@ -6,30 +6,11 @@
*/
package com.evolveum.midpoint.schrodinger.page.org;

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 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);
}
public class NewOrgPage extends AssignmentHolderDetailsPage<NewOrgPage> {

}
Expand Up @@ -20,7 +20,7 @@
public class ListTasksPage extends AssignmentHolderObjectListPage<TasksPageTable> {

public TasksPageTable table() {
SelenideElement box = $(Schrodinger.byDataId("div", "table"));
SelenideElement box = $(Schrodinger.byDataId("div", "taskTable"));

return new TasksPageTable(this, box);
}
Expand Down
Expand Up @@ -29,7 +29,7 @@
/**
* Created by Viliam Repan (lazyman).
*/
public class TaskPage extends AssignmentHolderDetailsPage {
public class TaskPage extends AssignmentHolderDetailsPage<TaskPage> {

public PreviewPage clickPreviewChanges() {
$(Schrodinger.byDataId("previewChanges")).click();
Expand Down Expand Up @@ -63,8 +63,7 @@ public TaskPage resumeStopRefreshing() {
}

public TaskPage clickRunNow() {

$(Schrodinger.byDataResourceKey("span", "pageTaskEdit.button.runNow")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).click();
$(Schrodinger.byDataResourceKey("a", "pageTaskEdit.button.runNow")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).click();

return this;
}
Expand All @@ -79,20 +78,20 @@ public boolean isRunNowVisible(){
}

@Override
public <P extends AssignmentHolderDetailsPage> AssignmentHolderBasicTab<P> selectTabBasic() {
SelenideElement element = findTabPanel().clickTab("pageTask.basic.title")
public AssignmentHolderBasicTab<TaskPage> selectTabBasic() {
SelenideElement element = getTabPanel().clickTab("pageTask.basic.title")
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

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

@Override
public <P extends AssignmentHolderDetailsPage> AssignmentsTab<P> selectTabAssignments() {
public AssignmentsTab<TaskPage> selectTabAssignments() {
return null;
}

public AssignmentHolderBasicTab<TaskPage> selectScheduleTab(){
SelenideElement element = findTabPanel().clickTab("pageTask.schedule.title")
SelenideElement element = getTabPanel().clickTab("pageTask.schedule.title")
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new AssignmentHolderBasicTab<TaskPage>(this, element);
Expand Down

0 comments on commit 7e344ab

Please sign in to comment.