Skip to content

Commit

Permalink
ADD schrodinger test classes, AboutPage test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
matusmacik committed Mar 22, 2018
1 parent 8f14800 commit 8459fea
Show file tree
Hide file tree
Showing 12 changed files with 289 additions and 17 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Expand Up @@ -16,4 +16,6 @@ dependency-reduced-pom.xml
/nb-configuration.xml
/nbactions.xml

.DS_Store
.DS_Store

tools/schrodinger/build
Expand Up @@ -12,6 +12,8 @@ public class MidPoint {

private EnvironmentConfiguration environment;

public static long TIMEOUT_DEFAULT = 2000;

public MidPoint(EnvironmentConfiguration environment) {
Validate.notNull(environment, "Environment configuration must not be null");

Expand All @@ -22,7 +24,6 @@ public MidPoint(EnvironmentConfiguration environment) {

private void init() {
environment.validate();

System.setProperty("selenide.browser", environment.getDriver().name().toLowerCase());
System.setProperty("selenide.baseUrl", environment.getBaseUrl());

Expand Down
@@ -0,0 +1,76 @@
package com.evolveum.midpoint.schrodinger.component.common;


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.task.TaskBasicTab;
import com.evolveum.midpoint.schrodinger.page.task.EditTaskPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;


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


/**
* Created by matus on 3/20/2018.
*/
public class FeedbackBox<T> extends Component<T> {

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

public Boolean isSuccess() {

return getParentElement().$(By.cssSelector("div.feedback-message.box.box-solid.box-success")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).exists();

}

public Boolean isWarning() {

return getParentElement().$(By.cssSelector("div.feedback-message.box.box-solid.box-warning")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).exists();

}

public Boolean isError() {

return getParentElement().$(By.cssSelector("div.feedback-message.box.box-solid.box-danger")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).exists();

}

public Boolean isInfo() {

return getParentElement().$(By.cssSelector("div.feedback-message.box.box-solid.box-info")).waitUntil(Condition.appears, MidPoint.TIMEOUT_DEFAULT).exists();

}

public FeedbackBox clickShowAll() {

$(Schrodinger.byDataId("showAll")).click();

return this;
}

public FeedbackBox clickClose() {

$(Schrodinger.byDataId("close")).click();

return this;
}

public TaskBasicTab clickShowTask() {

$(Schrodinger.byDataId("backgroundTask")).click();
SelenideElement taskBasicTab = $(Schrodinger.byDataResourceKey("pageTaskEdit.basic"));
return new TaskBasicTab(new EditTaskPage(), taskBasicTab);
}

public Boolean isFeedbackBoxPresent() {

return getParentElement().isDisplayed();
}

}
Expand Up @@ -19,6 +19,7 @@
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;


/**
* Created by Viliam Repan (lazyman).
*/
Expand Down
@@ -0,0 +1,29 @@
package com.evolveum.midpoint.schrodinger.component.common;

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

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

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

public String fetchDisplayName() {

return $(Schrodinger.byDataId("summaryDisplayName")).getText();

}

// public String fetchCategory(){
//
// return $(Schrodinger.byDataId("category")).getValue();
//
// }
}
@@ -0,0 +1,21 @@
package com.evolveum.midpoint.schrodinger.component.task;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.Component;
import com.evolveum.midpoint.schrodinger.page.task.EditTaskPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;

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

/**
* Created by matus on 3/21/2018.
*/
public class TaskBasicTab extends Component<EditTaskPage> {
public TaskBasicTab(EditTaskPage parent, SelenideElement parentElement) {
super(parent, parentElement);
}

public String utility() {
return getParentElement().$(Schrodinger.byDataId("category")).getText();
}
}
Expand Up @@ -218,6 +218,11 @@ public ListConnectorHostsPage listConnectorHosts() {
return new ListConnectorHostsPage();
}

public AboutPage aboutPage(){
clickConfigurationMenu("PageAdmin.menu.top.configuration.about",null);
return new AboutPage();
}

public BulkActionsPage bulkActions() {
clickConfigurationMenu("PageAdmin.menu.top.configuration.bulkActions", null);
return new BulkActionsPage();
Expand Down
@@ -1,59 +1,73 @@
package com.evolveum.midpoint.schrodinger.page.configuration;

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.common.FeedbackBox;
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 AboutPage extends BasicPage {

public AboutPage repositorySelfTest() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.testRepository")).click();
return this;
}

public AboutPage checkAndRepairOrgClosureConsistency() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.testRepositoryCheckOrgClosure")).click();
return this;
}

public AboutPage reindexRepositoryObjects() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.reindexRepositoryObjects")).click();
return this;
}

public AboutPage provisioningSelfTest() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.testProvisioning")).click();
return this;
}

public AboutPage cleanupActivitiProcesses() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.cleanupActivitiProcesses")).click();
return this;
}

public AboutPage clearCssJsCache() {
// todo implement
$(Schrodinger.byDataResourceKey("PageAbout.button.clearCssJsCache")).click();
return this;
}

public String version() {
// todo implement
return null;
return $(Schrodinger.bySchrodingerDataId("wicket_message-1130625241")).parent().getText();
}

public String gitDescribe() {
// todo implement
return null;
return $(Schrodinger.bySchrodingerDataResourceKey("PageAbout.midPointRevision")).parent().getText();
}

public String buildAt() {
// todo implement
return null;
return $(Schrodinger.bySchrodingerDataId("build")).parent().getText();
}

public String hibernateDialect() {
// todo implement
return null;
SelenideElement aditionalDetails = $(Schrodinger.bySchrodingerDataId("wicket_message-1130625231"));
return $(Schrodinger.bySchrodingerDataId("detailValue")).parent().getText();
}

public String connIdFrameworkVersion() {
return $(Schrodinger.bySchrodingerDataId("provisioningDetailValue")).parent().getText();
}

public FeedbackBox<AboutPage> feedback() {

SelenideElement feedback = $(By.cssSelector("div.feedbackContainer"));
return new FeedbackBox<>(this, feedback);
}
}

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

import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.component.common.SummaryBox;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
import org.openqa.selenium.By;

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


/**
* Created by matus on 3/21/2018.
*/
public class EditTaskPage extends BasicPage {



public SummaryBox<EditTaskPage> summary (){

SelenideElement summaryBox =$(By.cssSelector("div.info-box-content"));

return new SummaryBox(this,summaryBox);
}
}
Expand Up @@ -6,4 +6,5 @@
* Created by Viliam Repan (lazyman).
*/
public class NewTaskPage extends BasicPage {

}
98 changes: 98 additions & 0 deletions tools/schrodinger/src/test/java/schrodinger/AboutPageTest.java
@@ -0,0 +1,98 @@
package schrodinger;

import com.evolveum.midpoint.schrodinger.page.configuration.AboutPage;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

/**
* Created by matus on 3/16/2018.
*/
public class AboutPageTest extends TestBase {

private static final String VERSION_EXPECTED = "3.8-SNAPSHOT"; // Static value, should be changed each version change.
private static final String HIBERNATE_DIALECT_EXPECTED = "org.hibernate.dialect.H2Dialect";
private static final String CONNID_VERSION_EXPECTED = "1.4.3.11"; // Static value, should be changed each version change.
private static final String REINDEX_REPO_TASK_CATEGORY_EXPECTED = "Utility";
private static final String REINDEX_REPO_TASK_DISPLAY_NAME_EXPECTED = "Reindex repository objects";
private AboutPage aboutPage;

@BeforeMethod
private void openPage() {
aboutPage = basicPage.aboutPage();
}

@Test
public void checkMidpointVersion() {
Assert.assertEquals(aboutPage.version(), VERSION_EXPECTED);
}

@Test
public void checkGitDescribeValue() {
Assert.assertTrue(!aboutPage
.gitDescribe()
.isEmpty()
);
}

@Test
public void checkBuildAt() {
Assert.assertTrue(!aboutPage
.buildAt()
.isEmpty()
);
}

//@Test // TODO fix select the right element
public void checkHibernateDialect() {
Assert.assertEquals(aboutPage.hibernateDialect(), HIBERNATE_DIALECT_EXPECTED);
}

@Test
public void checkConnIdVersion() {
Assert.assertEquals(aboutPage.connIdFrameworkVersion(), CONNID_VERSION_EXPECTED);
}

@Test
public void repoSelfTestFeedbackPositive() {

Assert.assertTrue(aboutPage
.repositorySelfTest()
.feedback()
.isSuccess()
);
}

@Test
public void reindexRepositoryObjectsFeedbackInfo() {
Assert.assertTrue(aboutPage
.reindexRepositoryObjects()
.feedback()
.isInfo()
);

}

@Test
public void checkReindexRepositoryObjectsCategory() {

Assert.assertEquals(aboutPage
.reindexRepositoryObjects()
.feedback()
.clickShowTask()
.utility()
, REINDEX_REPO_TASK_CATEGORY_EXPECTED);
}

@Test
public void checkReindexRepositoryObjectsDisplayName() {
Assert.assertEquals(aboutPage
.reindexRepositoryObjects()
.feedback()
.clickShowTask()
.and()
.summary()
.fetchDisplayName()
, REINDEX_REPO_TASK_DISPLAY_NAME_EXPECTED);
}
}

0 comments on commit 8459fea

Please sign in to comment.