Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 3c03905b authored by Mihai BOZ's avatar Mihai BOZ
Browse files

Added tests for ProfilePage

parent d3ac5bf9
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -18,7 +18,7 @@ public class DSelect extends DObject {
}
public String getCurrentValue() {
return element.getText();
return select.getAllSelectedOptions().get(0).getText();
}
......
......@@ -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());
......
......@@ -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;
}
}
......@@ -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);
......
......@@ -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);
......
......@@ -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;
}
}
......@@ -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());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment