diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DomiSMPPage.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DomiSMPPage.java index 9c413f382b494f9fd079e6088757f0a20e9168f5..7b9aaed55ce3ea75ed2ac8876862a3d8897d4f75 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DomiSMPPage.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/DomiSMPPage.java @@ -49,6 +49,9 @@ public class DomiSMPPage extends DComponent { return new LoginPage(driver); } + public void refreshPage() { + driver.navigate().refresh(); + } public AlertComponent getAlertArea() { return new AlertComponent(driver); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java index 1561252692c9cefb7e1f8ec8bf4fbd11e79d9304..52423540cbfab0106b3fc331ea368e7d9738c1b6 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DSelect.java @@ -18,7 +18,7 @@ public class DSelect extends DObject { } public String getCurrentValue() { - return element.getText(); + return select.getAllSelectedOptions().get(0).getText(); } diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java index ea486d48ee634598d97318af3658db8bf7e8f1e8..9e235b5bac87c317635c83ffadc2b733fa30b9af 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/dobjects/DWait.java @@ -18,8 +18,8 @@ public class DWait { public final WebDriverWait longWait; public final WebDriverWait shortWait; protected final Logger log = LoggerFactory.getLogger(this.getClass()); - private TestRunData data = new TestRunData(); - private WebDriver driver; + private final TestRunData data = new TestRunData(); + private final WebDriver driver; public DWait(WebDriver driver) { this.defaultWait = new WebDriverWait(driver, data.getTIMEOUTinDuration()); diff --git a/domiSMP-ui-tests/src/main/java/ddsl/enums/SMPThemes.java b/domiSMP-ui-tests/src/main/java/ddsl/enums/SMPThemes.java index 0b4e4bf29ee1e59dc00d93df439df54e560d0f70..80067b3ea6713fd5de4fe7b77087827278daad46 100644 --- a/domiSMP-ui-tests/src/main/java/ddsl/enums/SMPThemes.java +++ b/domiSMP-ui-tests/src/main/java/ddsl/enums/SMPThemes.java @@ -10,22 +10,17 @@ public enum SMPThemes { Purple_Green_theme("Purple & Green theme"); - private final String name; // field to store the string value + private final String name; - SMPThemes(String name) { // constructor to assign the string value + SMPThemes(String name) { this.name = name; } - public static SMPThemes getRandomTheme() { + public static String getRandomTheme() { SMPThemes[] themes = values(); int size = themes.length; Random random = new Random(); int index = random.nextInt(size); - return themes[index]; + return themes[index].name; } - - public String getName() { // getter method to access the string value - return name; - } - } diff --git a/domiSMP-ui-tests/src/main/java/pages/ProfilePage.java b/domiSMP-ui-tests/src/main/java/pages/ProfilePage.java index 2e57a9977bbdedb23319667a6d327d1ec3cd3749..f47b814a04d9449451cc621837da53cebab31229 100644 --- a/domiSMP-ui-tests/src/main/java/pages/ProfilePage.java +++ b/domiSMP-ui-tests/src/main/java/pages/ProfilePage.java @@ -34,8 +34,8 @@ public class ProfilePage extends DomiSMPPage { if (!emailValue.isEmpty()) { weToDInput(fullNameInput).fill(fullNameValue); } - if (!selectThemeValue.isEmpty()) { - weToDSelect(themeSel).selectValue(selectThemeValue); + if (!(selectThemeValue == null)) { + weToDSelect(themeSel).selectValue(selectThemeValue.toString()); } if (!localeValue.isEmpty()) { weToDSelect(localeSel).selectValue(localeValue); diff --git a/domiSMP-ui-tests/src/main/java/rest/UserClient.java b/domiSMP-ui-tests/src/main/java/rest/UserClient.java index 6594bd1c7e72ecffefeb564717b53bf9492a2289..d2fa35b034f70889ba035be97e0cfcb35b82ba31 100644 --- a/domiSMP-ui-tests/src/main/java/rest/UserClient.java +++ b/domiSMP-ui-tests/src/main/java/rest/UserClient.java @@ -2,14 +2,14 @@ package rest; import com.sun.jersey.api.client.ClientResponse; import org.json.JSONObject; -import rest.models.CreateUserModel; +import rest.models.UserModel; public class UserClient extends BaseRestClient { public UserClient(String username, String password) { super(username, password); } - public JSONObject createUser(CreateUserModel user) { + public JSONObject createUser(UserModel user) { JSONObject usrObj = new JSONObject(user); diff --git a/domiSMP-ui-tests/src/main/java/rest/models/CreateUserModel.java b/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java similarity index 58% rename from domiSMP-ui-tests/src/main/java/rest/models/CreateUserModel.java rename to domiSMP-ui-tests/src/main/java/rest/models/UserModel.java index 80589b6a6c5ab8db238548d553d2dba7e899308c..838f30c4b90450583306011bf4b430571e1a55d3 100644 --- a/domiSMP-ui-tests/src/main/java/rest/models/CreateUserModel.java +++ b/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java @@ -5,7 +5,7 @@ import ddsl.enums.ApplicationRoles; import ddsl.enums.SMPThemes; import utils.Generator; -public class CreateUserModel { +public class UserModel { private String userId; private String username; @@ -16,7 +16,7 @@ public class CreateUserModel { private String smpTheme; private String smpLocale; - public CreateUserModel(String username, boolean active, String role, String emailAddress, String fullName, String smpTheme, String smpLocale) { + public UserModel(String username, boolean active, String role, String emailAddress, String fullName, String smpTheme, String smpLocale) { this.username = username; this.active = active; this.role = role; @@ -26,7 +26,7 @@ public class CreateUserModel { this.smpLocale = smpLocale; } - public CreateUserModel() { + public UserModel() { } public String getUserId() { @@ -94,30 +94,38 @@ public class CreateUserModel { this.smpLocale = smpLocale; } - public static CreateUserModel createUserWithUSERrole() { - CreateUserModel userModel = new CreateUserModel(); - userModel.username = ("AUT_username_ " + Generator.randomAlphaNumeric(4)).toLowerCase(); + public static UserModel createUserWithUSERrole() { + UserModel userModel = new UserModel(); + userModel.username = ("AUT_username_" + Generator.randomAlphaNumeric(4)).toLowerCase(); userModel.active = true; userModel.role = ApplicationRoles.USER; - userModel.emailAddress = "AUT_email_ " + Generator.randomAlphaNumeric(4) + "@automation.com"; - ; - userModel.fullName = "AUT_fullname_ " + Generator.randomAlphaNumeric(4); - userModel.smpTheme = SMPThemes.getRandomTheme().toString(); + userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com"; + userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4); + userModel.smpTheme = SMPThemes.getRandomTheme(); userModel.smpLocale = "English"; return userModel; } - public static CreateUserModel createUserWithADMINrole() { - CreateUserModel userModel = new CreateUserModel(); - userModel.username = ("AUT_username_ " + Generator.randomAlphaNumeric(4)).toLowerCase(); + public static UserModel createUserWithADMINrole() { + UserModel userModel = new UserModel(); + userModel.username = ("AUT_username_" + Generator.randomAlphaNumeric(4)).toLowerCase(); userModel.active = true; userModel.role = ApplicationRoles.SYSTEM_ADMIN; - userModel.emailAddress = "AUT_email_ " + Generator.randomAlphaNumeric(4) + "@automation.com"; - ; - userModel.fullName = "AUT_fullname_ " + Generator.randomAlphaNumeric(4); - userModel.smpTheme = SMPThemes.getRandomTheme().toString(); + userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com"; + userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4); + userModel.smpTheme = SMPThemes.getRandomTheme(); userModel.smpLocale = "English"; return userModel; } + + public static UserModel generateUserProfileData() { + UserModel userModel = new UserModel(); + userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com"; + userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4); + userModel.smpTheme = SMPThemes.getRandomTheme(); + userModel.smpLocale = "Dutch"; + return userModel; + } + } diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java index 8c13f4e662af016d75125e5215eb710309623ea1..0d139fc1ea1d947180d2f6925dda8ac113fbd34d 100644 --- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java +++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java @@ -6,13 +6,14 @@ import domiSMPTests.SeleniumTest; import org.testng.Assert; import org.testng.annotations.Test; import pages.LoginPage; -import rest.models.CreateUserModel; +import pages.ProfilePage; +import rest.models.UserModel; public class ProfilePgTests extends SeleniumTest { @Test(description = "PROF-01") - public void AllUsersAreAbleToSeeProfilePage() throws Exception { - CreateUserModel normalUser = CreateUserModel.createUserWithUSERrole(); + public void AllLoggedUsersAreAbleToSeeProfilePage() throws Exception { + UserModel normalUser = UserModel.createUserWithUSERrole(); rest.users().createUser(normalUser); @@ -29,7 +30,7 @@ public class ProfilePgTests extends SeleniumTest { homePage.logout(); //Check if page is avaiable for Admin users - CreateUserModel adminUser = CreateUserModel.createUserWithUSERrole(); + UserModel adminUser = UserModel.createUserWithUSERrole(); rest.users().createUser(adminUser); loginPage = homePage.goToLoginPage(); @@ -45,4 +46,55 @@ public class ProfilePgTests extends SeleniumTest { homePage.logout(); Assert.assertFalse(homePage.getSidebar().isMenuAvailable(Pages.USER_SETTINGS_PROFILE)); } + + @Test(description = "PROF-02") + public void AllLoggedUsersAreAbleToUpdateProfilePage() throws Exception { + UserModel normalUser = UserModel.createUserWithUSERrole(); + + rest.users().createUser(normalUser); + + DomiSMPPage homePage = new DomiSMPPage(driver); + LoginPage loginPage = homePage.goToLoginPage(); + loginPage.login(normalUser.getUsername(), data.getNewPassword()); + + //Navigate to page + ProfilePage profilePage = (ProfilePage) homePage.getSidebar().navigateTo(Pages.USER_SETTINGS_PROFILE); + UserModel userNewProfileData = UserModel.generateUserProfileData(); + profilePage.changeUserProfileData(userNewProfileData.getEmailAddress(), userNewProfileData.getFullName(), userNewProfileData.getSmpTheme(), userNewProfileData.getSmpLocale()); + + profilePage.refreshPage(); + + //Verify if data is changed + + Assert.assertEquals(profilePage.getEmailAddress(), userNewProfileData.getEmailAddress()); + Assert.assertEquals(profilePage.getFullName(), userNewProfileData.getFullName()); + Assert.assertEquals(profilePage.getSelectedTheme(), userNewProfileData.getSmpTheme()); + Assert.assertEquals(profilePage.getSelectedLocale(), userNewProfileData.getSmpLocale()); + + homePage.logout(); + + + UserModel adminUser = UserModel.createUserWithUSERrole(); + + rest.users().createUser(adminUser); + + homePage = new DomiSMPPage(driver); + loginPage = homePage.goToLoginPage(); + loginPage.login(adminUser.getUsername(), data.getNewPassword()); + + //Navigate to page + profilePage = (ProfilePage) homePage.getSidebar().navigateTo(Pages.USER_SETTINGS_PROFILE); + UserModel adminNewProfileData = UserModel.generateUserProfileData(); + profilePage.changeUserProfileData(adminNewProfileData.getEmailAddress(), adminNewProfileData.getFullName(), adminNewProfileData.getSmpTheme(), adminNewProfileData.getSmpLocale()); + + profilePage.refreshPage(); + + //Verify if data is changed + Assert.assertEquals(profilePage.getEmailAddress(), adminNewProfileData.getEmailAddress()); + Assert.assertEquals(profilePage.getFullName(), adminNewProfileData.getFullName()); + Assert.assertEquals(profilePage.getSelectedTheme(), adminNewProfileData.getSmpTheme()); + Assert.assertEquals(profilePage.getSelectedLocale(), adminNewProfileData.getSmpLocale()); + + + } }