Skip to content

Commit

Permalink
some more gui test implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 24, 2018
1 parent e8a0f42 commit 11d5b7b
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 12 deletions.
@@ -0,0 +1,84 @@
package com.evolveum.midpoint.testing.schrodinger.labs;

import com.evolveum.midpoint.schrodinger.page.user.ListUsersPage;
import com.evolveum.midpoint.schrodinger.page.user.UserPage;
import com.evolveum.midpoint.testing.schrodinger.TestBase;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.testng.Assert;
import org.testng.annotations.Test;

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

/**
* Created by honchar
* covers LAB 4-1
*/
public class BasicProvisioningTest extends TestBase {

private static final String USER_NAME_ATTRIBUTE = "Name";
private static final String USER_GIVEN_NAME_ATTRIBUTE = "Given name";
private static final String USER_FAMILY_NAME_ATTRIBUTE = "Family name";
private static final String USER_PASSWORD_ATTRIBUTE = "Value";
private static final String USER_ADMINISTRATIVE_STATUS_ATTRIBUTE = "Administrative status";

private static final String USER_NAME = "kirk";
private static final String USER_GIVEN_NAME = "Jim";
private static final String USER_FAMILY_NAME = "Kirk";
private static final String USER_PASSWORD = "abc123";
private static final String USER_ADMINISTRATIVE_STATUS = "enabled";

//todo dependsOnGroup
@Test(groups={"lab_4_1"})
public void test001createUserKirk(){
//we use New user link in this test
UserPage userPage = basicPage.newUser();
userPage
.selectTabBasic()
.form()
.addAttributeValue(UserType.F_NAME, USER_NAME)
.addAttributeValue(UserType.F_FAMILY_NAME, USER_FAMILY_NAME)
.addAttributeValue(UserType.F_GIVEN_NAME, USER_GIVEN_NAME)
//TODO set password and enable status
// .addAttributeValue(ActivationType.F_ADMINISTRATIVE_STATUS, USER_ADMINISTRATIVE_STATUS)
.and()
.and()
.clickSave();

ListUsersPage usersList = new ListUsersPage();

usersList
.table()
.search()
.byName()
.inputValue(USER_NAME)
.updateSearch()
.and()
.clickByName(USER_NAME);

//check name attribute value
Assert.assertTrue(userPage
.selectTabBasic()
.form()
.compareAttibuteValue(USER_NAME_ATTRIBUTE, USER_NAME));

//check given name attribute value
Assert.assertTrue(userPage
.selectTabBasic()
.form()
.compareAttibuteValue(USER_GIVEN_NAME_ATTRIBUTE, USER_GIVEN_NAME));

//check family name attribute value
Assert.assertTrue(userPage
.selectTabBasic()
.form()
.compareAttibuteValue(USER_FAMILY_NAME_ATTRIBUTE, USER_FAMILY_NAME));

//TODO check status, and password is set
//check administrative status attribute value
// Assert.assertTrue(userPage
// .selectTabBasic()
// .form()
// .compareAttibuteValue(Schrodinger.qnameToString(ActivationType.F_ADMINISTRATIVE_STATUS), USER_ADMINISTRATIVE_STATUS));

}
}
Expand Up @@ -32,13 +32,16 @@
import com.evolveum.midpoint.testing.schrodinger.TestBase;

import java.io.File;
import java.util.Arrays;
import java.util.List;

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


/**
* Created by honchar
* covers LAB 3-1: Viewing Resources
*/
public class ImportResourceTest extends TestBase {

Expand All @@ -51,7 +54,9 @@ public class ImportResourceTest extends TestBase {
private static final String RESOURCE_WIZARD_READONLY_LABEL = "Resource is in read-only mode";
private static final String ACCOUNT_OBJECT_CLASS_LINK = "AccountObjectClass (Default Account)";

@Test
private static final List<String> RESOURCE_ATTRIBUTES = Arrays.asList("login", "lname", "groups", "enumber", "phone", "dep", "fname", "dis");

@Test(groups={"lab_3_1"})
public void test001ImportCsvResource() {
ImportObjectPage importPage = basicPage.importObject();
//import resource
Expand All @@ -74,7 +79,7 @@ public void test001ImportCsvResource() {
.isSuccess());
}

@Test(dependsOnMethods = {"test001ImportCsvResource"}, priority = 1)
@Test(groups={"lab_3_1"}, dependsOnMethods = {"test001ImportCsvResource"}, priority = 1)
public void test002ViewResourceDetailsPage(){

//click Edit configuration on the resource edit page
Expand Down Expand Up @@ -103,7 +108,7 @@ public void test002ViewResourceDetailsPage(){

}

@Test(dependsOnMethods = {"test001ImportCsvResource"}, priority = 2)
@Test(groups={"lab_3_1"}, dependsOnMethods = {"test001ImportCsvResource"}, priority = 2)
public void test003showUsingWizard(){
ResourceWizardPage resourceWizard = navigateToViewResourcePage()
.clickShowUsingWizard();
Expand All @@ -123,19 +128,25 @@ public void test003showUsingWizard(){
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S)
.exists());

//TODO UI_CSV_NAME_ATTRIBUTE
//Schema tab
resourceWizard.clickOnWizardTab("Schema");
Assert.assertTrue($(Schrodinger.byDataResourceKey("SchemaStep.schema"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S)
Assert.assertTrue($(Schrodinger.byElementValue("a", "Schema"))
.shouldBe(Condition.visible)
.exists());
$(By.linkText(ACCOUNT_OBJECT_CLASS_LINK))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S)
.shouldBe(Condition.visible)
.click();
Assert.assertTrue($(Schrodinger.byDataId("objectClassInfoColumn"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S)
//Attributes table visibility check
Assert.assertTrue($(Schrodinger.byDataId("attributeTable"))
.shouldBe(Condition.visible)
.exists());
//TODO finish navigating through tabs

//check resource attributes are present
RESOURCE_ATTRIBUTES.forEach(attr ->
Assert.assertTrue($(Schrodinger.byElementValue("div", attr))
.waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S)
.exists()));

}


Expand Down
@@ -1,6 +1,8 @@
package com.evolveum.midpoint.schrodinger.page.user;

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.FeedbackBox;
import com.evolveum.midpoint.schrodinger.component.user.UsersPageTable;
import com.evolveum.midpoint.schrodinger.page.BasicPage;
Expand All @@ -14,7 +16,8 @@
public class ListUsersPage extends BasicPage {

public UsersPageTable<ListUsersPage> table() {
SelenideElement box = $(By.cssSelector(".box.boxed-table.object-user-box"));
SelenideElement box = $(By.cssSelector(".box.boxed-table.object-user-box"))
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new UsersPageTable<>(this, box);
}
Expand Down
Expand Up @@ -80,7 +80,8 @@ private TabPanel findTabPanel() {
}

public UserBasicTab selectTabBasic() {
SelenideElement element = findTabPanel().clickTab("pageAdminFocus.basic");
SelenideElement element = findTabPanel().clickTab("pageAdminFocus.basic")
.waitUntil(Condition.appear, MidPoint.TIMEOUT_DEFAULT_2_S);

return new UserBasicTab(this, element);
}
Expand Down

0 comments on commit 11d5b7b

Please sign in to comment.