Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 3271011b authored by Sonali MOHANTY's avatar Sonali MOHANTY
Browse files

Pull request #223: RestBaseIssue

Merge in EDELIVERY/smp from restBaseIssue to development

* commit 'c034e6ebbd93f0616df92f85f13f624eca50a6c1':
  minor fixes
  minor fixes and reformating
  1)some locators got changed and new locators have added.
  1)some locators got changed and new locators have added.
  1)some locators got changed and new locators have added.
  1)some locators got changed and new locators have added.
  1)some locators got changed and new locators have added.
  1)some locators got changed and new locators have added.
  1)Necessary locators are changed and some locator got added. 2)Some testcases got modified in user page since the functionliyty of user page got changed.
  1)some locators got changed and new locators have added.
  1)Necessary locators are changed and some locator got added. 2)Some new testcases added.
  1)Necessary locators are changed and some locator got added. 2)Some testcases got modified in user page since the functionliyty of user page got changed.
  1)Necessary locators are changed and some locator got added. 2)Some testcases got modified in user page since the functionliyty of user page got changed.
parents 69c053ee 4e2e72b5
No related branches found
No related tags found
No related merge requests found
......@@ -66,16 +66,12 @@ public class SMPMessages {
public static final String MSG_19 = "Domain ${BDMSL_DOMAIN} is already registered with id ${DOMAIN_ID}";
public static final String MSG_20 = "All changes were aborted and data restored into the present window";
public static final String MSG_21 = "Unable to login. SMP is not running.";
public static final String MSG_22 = "The user is suspended. Please try again later or contact your administrator.";
public static final String MSG_23 = "Configuration error: Subject must have less than 256 character!";
public static final String USERNAME_VALIDATION_MESSAGE = "Username is case insensitive and can only contain alphanumeric characters (letters a-zA-Z, numbers 0-9) and must have from 4 to 32 characters!";
public static final String PASS_POLICY_MESSAGE = "Password should follow all of these rules:\n" +
"- Minimum length: 8 characters\n" +
"- Maximum length: 32 characters\n" +
"- At least one letter in lowercase\n" +
"- At least one letter in uppercase\n" +
"- At least one digit\n" +
"- At least one special character";
public static final String PASS_POLICY_MESSAGE = "Minimum length: 16 characters;Maximum length: 32 characters;At least one letter in lowercase;At least one letter in uppercase;At least one digit;At least one special character";
public static final String PASS_NO_MATCH_MESSAGE = "Passwords do not match";
public static final String PASS_NO_EMPTY_MESSAGE = "You should type a password";
......
......@@ -21,184 +21,173 @@ import java.util.List;
@Listeners({ExcelTestReporter.class, TestProgressReporter.class})
public class BaseTest {
static int methodCount = 1;
static int methodCount = 1;
static WebDriver driver;
protected Logger logger = Logger.getLogger(this.getClass());
static TestDataProvider testDataProvider = new TestDataProvider();
static WebDriver driver;
static TestDataProvider testDataProvider = new TestDataProvider();
static ArrayList<String> createdDomains = new ArrayList<>();
static ArrayList<String> createdUsers = new ArrayList<>();
static ArrayList<String> createdServiceGroups = new ArrayList<>();
protected Logger logger = Logger.getLogger(this.getClass());
static ArrayList<String> createdDomains = new ArrayList<>();
static ArrayList<String> createdUsers = new ArrayList<>();
static ArrayList<String> createdServiceGroups = new ArrayList<>();
@BeforeSuite(alwaysRun = true)
@BeforeSuite(alwaysRun = true)
/*Starts the browser and navigates to the homepage. This happens once before the test
suite and the browser window is reused for all tests in suite*/
public void beforeSuite() {
logger.info("Creating necessary data !!!!");
createDomains();
createUsers();
createSGs();
// logger.info("Starting this puppy!!!!");
// driver = DriverManager.getDriver();
// driver.get(PROPERTIES.UI_BASE_URL);
}
@AfterSuite(alwaysRun = true)
/*After the test suite is done we close the browser*/
public void afterSuite() {
logger.info("Deleting created data!!!");
deleteTestData();
logger.info("Quitting!!!! Buh bye!!!");
try {
if(null!=driver){
driver.quit();
}
} catch (Exception e) {
logger.warn("Closing the driver failed !!!!");
e.printStackTrace();
}
}
@AfterClass(alwaysRun = true)
public void afterClass() {
if(null!=driver){
driver.quit();
}
// driver.get(PROPERTIES.UI_BASE_URL);
// SMPPage page = new SMPPage(driver);
// page.refreshPage();
//
// if(page.pageHeader.sandwichMenu.isLoggedIn()){
// logger.info("Logout!!");
// page.pageHeader.sandwichMenu.logout();
// }
}
@BeforeClass(alwaysRun = true)
public void beforeClass() {
driver = DriverManager.getDriver();
driver.get(PROPERTIES.UI_BASE_URL);
}
@BeforeMethod(alwaysRun = true)
protected void logSeparator(Method method) throws Exception {
logger.info("--------------------------- Running test number: " + methodCount);
logger.info("--------------------------- Running test method: " + method.getDeclaringClass().getSimpleName() + "." + method.getName());
methodCount++;
}
private void createDomains() {
for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10);
logger.info("creating domain whose value is :"+generated);
boolean created = SMPRestClient.createDomain(generated);
if (created) {
createdDomains.add(generated);
} else {
logger.warn("Test data creation: Domain creation failed for " + generated);
System.exit(-1);
}
}
}
private void createUsers() {
String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"};
for (int i = 0; i < 6; i++) {
String generated = Generator.randomAlphaNumeric(10);
String role = roles[i % roles.length];
boolean created = SMPRestClient.createUser(generated, role);
if (created) {
createdUsers.add(generated);
} else {
logger.warn("Test data creation: User creation failed for " + generated);
System.exit(-1);
}
}
}
private void createSGs() {
for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10);
String generatedHyphen = generated.substring(0,3)+"-"+generated.substring(3,6)+"-"+generated.substring(6,9);
List<String> users = Arrays.asList(createdUsers.get(0));
List<String> domains = Arrays.asList(createdDomains.get(0));
boolean created = SMPRestClient.createServiceGroup(generated, generatedHyphen, users, domains);
if (created) {
createdServiceGroups.add(generated);
} else {
logger.warn("Test data creation: SG creation failed for " + generated);
System.exit(-1);
}
}
}
private void deleteTestData() {
for (String createdServiceGroup : createdServiceGroups) {
try {
SMPRestClient.deleteSG(createdServiceGroup);
} catch (Exception e) {
e.printStackTrace();
}
}
for (String createdUser : createdUsers) {
try {
SMPRestClient.deleteUser(createdUser);
} catch (Exception e) {
e.printStackTrace();
}
}
for (String createdDomain : createdDomains) {
try {
SMPRestClient.deleteDomain(createdDomain);
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void genericLogoutProcedure() {
logger.info("executing the generic logout procedure");
SMPPage page = new SMPPage(driver);
page.refreshPage();
try {
if (page.pageHeader.sandwichMenu.isLoggedIn()) {
logger.info("Logout!!");
page.pageHeader.sandwichMenu.logout();
}
} catch (Exception e) {
e.printStackTrace();
}
driver.manage().deleteAllCookies();
((JavascriptExecutor) driver).executeScript("localStorage.clear();");
page.refreshPage();
page.waitForXMillis(100);
}
protected SMPPage genericLoginProcedure(String role) {
SMPPage page = new SMPPage(driver);
genericLogoutProcedure();
if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
logger.info("Login!!");
page.pageHeader.goToLogin().login(role);
}
page.waitForRowsToLoad();
return page;
}
public void beforeSuite() {
logger.info("Creating necessary data !!!!");
createDomains();
createUsers();
createSGs();
}
@AfterSuite(alwaysRun = true)
/*After the test suite is done we close the browser*/
public void afterSuite() {
logger.info("Deleting created data!!!");
deleteTestData();
logger.info("Quitting!!!! Buh bye!!!");
try {
if (null != driver) {
driver.quit();
}
} catch (Exception e) {
logger.warn("Closing the driver failed !!!!");
e.printStackTrace();
}
}
@AfterClass(alwaysRun = true)
public void afterClass() {
if (null != driver) {
driver.quit();
}
}
@BeforeClass(alwaysRun = true)
public void beforeClass() {
logger.info("beforeClass entry");
driver = DriverManager.getDriver();
driver.get(PROPERTIES.UI_BASE_URL);
logger.info("beforeClass exit");
}
@BeforeMethod(alwaysRun = true)
protected void logSeparator(Method method) throws Exception {
logger.info("--------------------------- Running test number: " + methodCount);
logger.info("--------------------------- Running test method: " + method.getDeclaringClass().getSimpleName() + "." + method.getName());
methodCount++;
}
private void createDomains() {
for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10);
logger.info("creating domain whose value is :" + generated);
boolean created = SMPRestClient.createDomain(generated);
if (created) {
createdDomains.add(generated);
} else {
logger.warn("Test data creation: Domain creation failed for " + generated);
System.exit(-1);
}
}
}
private void createUsers() {
String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"};
for (int i = 0; i < 6; i++) {
String generated = Generator.randomAlphaNumeric(10);
String role = roles[i % roles.length];
boolean created = SMPRestClient.createUser(generated, role);
if (created) {
createdUsers.add(generated);
} else {
logger.warn("Test data creation: User creation failed for " + generated);
System.exit(-1);
}
}
}
private void createSGs() {
for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10);
String generatedHyphen = generated.substring(0, 3) + "-" + generated.substring(3, 6) + "-" + generated.substring(6, 9);
List<String> users = Arrays.asList(createdUsers.get(0));
List<String> domains = Arrays.asList(createdDomains.get(0));
boolean created = SMPRestClient.createServiceGroup(generated, generatedHyphen, users, domains);
if (created) {
createdServiceGroups.add(generated);
} else {
logger.warn("Test data creation: SG creation failed for " + generated);
System.exit(-1);
}
}
}
private void deleteTestData() {
for (String createdServiceGroup : createdServiceGroups) {
try {
SMPRestClient.deleteSG(createdServiceGroup);
} catch (Exception e) {
e.printStackTrace();
}
}
for (String createdUser : createdUsers) {
try {
SMPRestClient.deleteUser(createdUser);
} catch (Exception e) {
e.printStackTrace();
}
}
for (String createdDomain : createdDomains) {
try {
SMPRestClient.deleteDomain(createdDomain);
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void genericLogoutProcedure() {
logger.info("executing the generic logout procedure");
SMPPage page = new SMPPage(driver);
page.refreshPage();
try {
if (page.pageHeader.sandwichMenu.isLoggedIn()) {
logger.info("Logout!!");
page.pageHeader.sandwichMenu.logout();
}
} catch (Exception e) {
e.printStackTrace();
}
driver.manage().deleteAllCookies();
((JavascriptExecutor) driver).executeScript("localStorage.clear();");
page.refreshPage();
page.waitForXMillis(100);
}
protected SMPPage genericLoginProcedure(String role) {
SMPPage page = new SMPPage(driver);
genericLogoutProcedure();
if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
logger.info("Login!!");
page.pageHeader.goToLogin().login(role);
}
page.waitForRowsToLoad();
return page;
}
}
......@@ -6,6 +6,7 @@ import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.components.messageArea.AlertMessage;
import pages.password.PasswordChangepopup;
import pages.service_groups.search.SearchPage;
import pages.components.baseComponents.SMPPage;
import pages.login.LoginPage;
......@@ -217,5 +218,66 @@ public class LoginPgTest extends BaseTest {
soft.assertAll();
}
@Test(description = "LGN-100")
public void loggedUserPasswordDialogView()
{
SoftAssert soft = new SoftAssert();
String username = Generator.randomAlphaNumeric(10);
SMPRestClient.createUser(username, "SYSTEM_ADMIN");
logger.info("created user " + username);
SMPPage page = new SMPPage(driver);
logger.info("Going to login page");
page.pageHeader.goToLogin();
}
logger.info("trying to login with " + username);
LoginPage loginPage = new LoginPage(driver);
SearchPage searchPage = loginPage.login(username, "QW!@qw12");
soft.assertTrue(searchPage.pageHeader.sandwichMenu.isLoggedIn(), "User is not logged in");
soft.assertTrue(searchPage.isLoaded(), "Search page is not loaded");
PasswordChangepopup passPopup = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption();
soft.assertTrue(passPopup.isCurrentPasswordInputEnable(),"Current password input is not enable in the password dialog for logged user");
soft.assertTrue(passPopup.isNewPasswordInputEnable(),"New password input is not enable in the password dialog for logged user");
soft.assertTrue(passPopup.isConfirmPasswordInputEnable(),"Confirm password input is not enable in the password dialog for logged user");
searchPage = passPopup.clickClosePasswordDialog();
soft.assertAll();
}
@Test(description = "LGN-100")
public void passwordChangeForLoggedUser()
{
SoftAssert soft = new SoftAssert();
String username = Generator.randomAlphaNumeric(10);
String validPass = "Aabcdefghijklm1@";
SMPRestClient.createUser(username,"SYSTEM_ADMIN");
logger.info("created user " + username);
SMPPage page = new SMPPage(driver);
logger.info("Going to login page");
page.pageHeader.goToLogin();
LoginPage loginPage = new LoginPage(driver);
SearchPage searchPage = loginPage.login(username, "QW!@qw12");
soft.assertTrue(searchPage.pageHeader.sandwichMenu.isLoggedIn(), "User is logged in");
soft.assertTrue(searchPage.isLoaded(), "Search page is loaded");
PasswordChangepopup passDialog = searchPage.pageHeader.sandwichMenu.clickChangePasswordOption();
passDialog.fillDataForLoggedUser("QW!@qw12",validPass,validPass);
passDialog.clickChangedPassword();
/*SearchPage page = passDialog.clickCloseAfterChangedPassForLoggedUser();
soft.assertEquals(page.getTitle(),"Search");*/
//passDialog.clickOK();
//soft.assertTrue(usersPage.grid().isUserListed(username), "User present in the page");
soft.assertAll();
}
}
\ No newline at end of file
package ui;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.components.ConfirmationDialog;
import pages.components.baseComponents.SMPPage;
import pages.components.messageArea.AlertMessage;
import pages.domain.DomainRow;
import pages.login.LoginPage;
import pages.properties.PropertiesPage;
import pages.properties.PropertyPopup;
import pages.properties.PropertyRowInfo;
import pages.service_groups.edit.EditPage;
import pages.service_groups.edit.ServiceGroupPopup;
import pages.service_groups.search.SearchPage;
import utils.Generator;
import utils.enums.SMPMessages;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PropertiesPgTest extends BaseTest{
@AfterMethod
public void logoutAndReset(){
genericLogoutProcedure();
}
@BeforeMethod
public void loginAndGoToDomainPage(){
SMPPage page = genericLoginProcedure("SYS_ADMIN");
logger.info("Going to Property page");
page.sidebar.goToPage(PropertiesPage.class);
}
@Test(description = "PROP-0")
public void verifyParticipantschemeMandatoryProperty(){
SoftAssert soft = new SoftAssert();
String property = "identifiersBehaviour.scheme.mandatory";
PropertiesPage propertiesPage = new PropertiesPage(driver);
propertiesPage.propertySearch(property);
soft.assertTrue(propertiesPage.grid().rowContainPropertyName(property),"The row does not contain the searching property");
PropertyRowInfo newRow0 = propertiesPage.grid().getRows().get(0);
System.out.println("newRow0.getPropertyvalue() "+newRow0.getPropertyvalue());
if(newRow0.getPropertyvalue().equals("true"))
{
propertiesPage.grid().selectRow(0);
PropertyPopup popup = propertiesPage.clickEdit();
propertiesPage = popup.disableCheckboxOfProperty();
soft.assertTrue(propertiesPage.isSaveButtonEnabled(),"Save button is disbled");
propertiesPage.clickSave().confirm();
soft.assertTrue(propertiesPage.alertArea.getAlertMessage().isError(), "Message listed is success");
soft.assertTrue(propertiesPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is not listed is as expected");
}
propertiesPage.pageHeader.sandwichMenu.logout();
SearchPage page = new SearchPage(driver);
logger.info("Going to login page");
page.pageHeader.goToLogin();
SMPPage smpPage= genericLoginProcedure("SMP_ADMIN");
smpPage.sidebar.goToPage(EditPage.class);
EditPage editPage = new EditPage(driver);
ServiceGroupPopup servicePopup = editPage.clickNew();
soft.assertTrue(servicePopup.isParticipantIdentifierInputEnabled(), "Participant Identifier field is disabled");
soft.assertTrue(servicePopup.isParticipantSchemeInputEnabled(), "Participant Scheme field is disabled");
soft.assertTrue(servicePopup.isOwnersPanelEnabled(), "Owners panel is enabled");
soft.assertTrue(servicePopup.isDomainsPanelEnabled(), "Domain panel is enabled");
servicePopup.fillParticipantIdentifier("sonbrat1223");
servicePopup.chooseFirstOwner();
servicePopup.chooseFirstDomain();
soft.assertTrue(servicePopup.isOKButtonEnable(),"Ok button is not enabled after creating servicegroup without scheme");
soft.assertTrue(servicePopup.isCancelButtonEnable(),"cancel button is not enabled after creating servicegroup without scheme");
servicePopup.clickOK();
soft.assertTrue(editPage.isSaveButtonEnabled(),"Save button is not enable after cration of servicegroup without scheme");
soft.assertTrue(editPage.isCancelButtonEnabled(),"Cancel button is not enable after cration of servicegroup without scheme");
editPage.clickSave().confirm();;
soft.assertTrue(editPage.alertArea.getAlertMessage().getMessage().equalsIgnoreCase(SMPMessages.MSG_18), "Message is not listed is as expected");
soft.assertAll();
}
@Test(description = "PROP-10")
public void smpAlertPasswordExpiredMailSubjectAllowString()
{
SoftAssert soft = new SoftAssert();
String property = "smp.alert.password.expired.mail.subject";
String string = Generator.randomAlphaNumeric(10);
PropertiesPage propertiesPage = new PropertiesPage(driver);
propertiesPage.propertySearch(property);
soft.assertTrue(propertiesPage.grid().rowContainPropertyName(property),"The row does not contain the searching property");
int index = 0;
propertiesPage.grid().selectRow(index);
PropertyPopup popup = propertiesPage.clickEdit();
String sentence = " ";
for(int i=0;i<26;i++) {
sentence = sentence + string;
}
popup.editInputField(sentence);
popup.clickOK();
soft.assertTrue(propertiesPage.getErrorMessage().equalsIgnoreCase(SMPMessages.MSG_23),"the errors message is not showing");
popup.clickCancel();
soft.assertAll();
}
}
This diff is collapsed.
This diff is collapsed.
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