diff --git a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java index b652d6674b0eae9128693f1614619f5f123b8fc3..815f5ebdb34f62307b2cf5de42c7a511586ac18e 100644 --- a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java +++ b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java @@ -34,6 +34,7 @@ public class SandwichMenu extends PageComponent { public boolean isLoggedIn(){ clickVoidSpace(); + waitForElementToBeClickable(expandoButton).click(); boolean isLoggedIn = false; diff --git a/smp-ui-tests/src/main/java/pages/components/Sidebar.java b/smp-ui-tests/src/main/java/pages/components/Sidebar.java index 29f59a1de1970396022149e7ca56cd54ebaab4a6..7d2d243ec3cd69b5c139e62b8327ad22040ca569 100644 --- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java +++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java @@ -63,6 +63,8 @@ public class Sidebar extends PageComponent { new Header(driver).waitForTitleToBe(); + waitForRowsToLoad(); + return PageFactory.initElements(driver, expect); } diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java index 5f41159c87c6e10e9b19e83d92b13192e04b05d5..90c62399fdc41629130f498fa677edb2ebeba240 100644 --- a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java +++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java @@ -80,6 +80,34 @@ public class PageComponent { } } + public void waitForElementToBeGone(By locator) { + WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT); + + try { + myWait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } catch (Exception e) { + return; + } + + int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000; + while (waitTime > 0) { + boolean displayed = true; + + try { + displayed = driver.findElement(locator).isDisplayed(); + } catch (Exception e) { + return; + } + + if (!displayed) { + return; + } + + waitForXMillis(500); + waitTime = waitTime - 500; + } + } + public void waitForNumberOfWindowsToBe(int noOfWindows) { try { wait.until(numberOfWindowsToBe(noOfWindows)); @@ -196,17 +224,18 @@ public class PageComponent { public void waitForRowsToLoad() { log.info("waiting for rows to load"); try { - waitForElementToBeVisible(loadingBar); - - int bars = 1; - int waits = 0; - while (bars > 0 && waits < 30) { - Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;"); - bars = Integer.valueOf(tmp.toString()); - waits++; - waitForXMillis(500); - } - log.debug("waited for rows to load for ms = 500*" + waits); + waitForElementToBeGone(loadingBar); +// waitForElementToBeVisible(loadingBar); +// +// int bars = 1; +// int waits = 0; +// while (bars > 0 && waits < 30) { +// Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;"); +// bars = Integer.valueOf(tmp.toString()); +// waits++; +// waitForXMillis(500); +// } +// log.debug("waited for rows to load for ms = 500*" + waits); } catch (Exception e) { } waitForXMillis(500); } diff --git a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java index 8a96ee341b54c0dd5c96260c0a796e60388bbca1..00195ea9daf0b1f8cfe9e5cecf92c480c922a672 100644 --- a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java +++ b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java @@ -21,7 +21,7 @@ public class BasicGrid extends PageComponent { super(driver); log.info("Loading basic grid"); - waitToLoad(); +// waitToLoad(); waitForRowsToLoad(); PageFactory.initElements( new DefaultElementLocatorFactory(container) , this); @@ -31,14 +31,14 @@ public class BasicGrid extends PageComponent { } - private void waitToLoad(){ - try { - waitForXMillis(500); - waitForElementToBeGone(driver.findElement(loadingBar)); - } catch (Exception e) { - - } - } +// private void waitToLoad(){ +// try { +// waitForXMillis(500); +// waitForElementToBeGone(driver.findElement(loadingBar)); +// } catch (Exception e) { +// +// } +// } diff --git a/smp-ui-tests/src/test/java/ui/BaseTest.java b/smp-ui-tests/src/test/java/ui/BaseTest.java index a78a6d21bc7b64551eec8232260055584ce60816..b5592c84e1196e620b3a59522c89f8634201a642 100644 --- a/smp-ui-tests/src/test/java/ui/BaseTest.java +++ b/smp-ui-tests/src/test/java/ui/BaseTest.java @@ -1,6 +1,7 @@ package ui; import org.apache.log4j.Logger; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.testng.annotations.*; import pages.components.baseComponents.SMPPage; @@ -15,7 +16,6 @@ import utils.rest.SMPRestClient; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; @Listeners({ExcelTestReporter.class, TestProgressReporter.class}) @@ -36,7 +36,7 @@ public class BaseTest { @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(){ + public void beforeSuite() { logger.info("Creating necessary data !!!!"); createDomains(); createUsers(); @@ -50,7 +50,7 @@ public class BaseTest { @AfterSuite(alwaysRun = true) /*After the test suite is done we close the browser*/ - public void afterSuite(){ + public void afterSuite() { logger.info("Deleting created data!!!"); deleteTestData(); @@ -65,7 +65,7 @@ public class BaseTest { } @AfterClass(alwaysRun = true) - public void afterClass(){ + public void afterClass() { driver.quit(); // driver.get(PROPERTIES.UI_BASE_URL); // SMPPage page = new SMPPage(driver); @@ -78,7 +78,7 @@ public class BaseTest { } @BeforeClass(alwaysRun = true) - public void beforeClass(){ + public void beforeClass() { driver = DriverManager.getDriver(); driver.get(PROPERTIES.UI_BASE_URL); } @@ -92,48 +92,47 @@ public class BaseTest { } - private void createDomains(){ + private void createDomains() { for (int i = 0; i < 5; i++) { String generated = Generator.randomAlphaNumeric(10); boolean created = SMPRestClient.createDomain(generated); - if(created){ - createdDomains.add(generated);} - else{ + if (created) { + createdDomains.add(generated); + } else { logger.warn("Test data creation: Domain creation failed for " + generated); } } } - private void createUsers(){ + 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]; + String role = roles[i % roles.length]; boolean created = SMPRestClient.createUser(generated, role); - if(created){ - createdUsers.add(generated);} - else{ + if (created) { + createdUsers.add(generated); + } else { logger.warn("Test data creation: User creation failed for " + generated); } } } - private void createSGs(){ + private void createSGs() { for (int i = 0; i < 5; i++) { String generated = Generator.randomAlphaNumeric(10); List<String> users = Arrays.asList(createdUsers.get(0)); List<String> domains = Arrays.asList(createdDomains.get(0)); boolean created = SMPRestClient.createServiceGroup(generated, generated, users, domains); - if(created){ + if (created) { createdServiceGroups.add(generated); - } - else{ + } else { logger.warn("Test data creation: SG creation failed for " + generated); } } } - private void deleteTestData(){ + private void deleteTestData() { for (String createdServiceGroup : createdServiceGroups) { try { SMPRestClient.deleteSG(createdServiceGroup); @@ -158,5 +157,41 @@ public class BaseTest { } + protected void genericLogoutProcedure() { + log.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; + } + } diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java index cb2445903786bdcfaec5977ef99502f148db3259..6f46e83555731145b0a9418ec7de25f19f1985a8 100644 --- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java +++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java @@ -23,29 +23,17 @@ public class DomainPgTest extends BaseTest { @AfterMethod public void logoutAndReset(){ - SMPPage page = new SMPPage(driver); - page.refreshPage(); - - if(page.pageHeader.sandwichMenu.isLoggedIn()){ - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } + genericLogoutProcedure(); } - + @BeforeMethod public void loginAndGoToDomainPage(){ - SMPPage page = new SMPPage(driver); - - if(!page.pageHeader.sandwichMenu.isLoggedIn()){ - logger.info("Login!!"); - page.pageHeader.goToLogin().login("SYS_ADMIN"); - } - + SMPPage page = genericLoginProcedure("SYS_ADMIN"); + logger.info("Going to Domain page"); page.sidebar.goToPage(DomainPage.class); - page.waitForRowsToLoad(); } @Test(description = "DMN-0") diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java index e59889089cb062f1f67c07d267c476870dc65a72..26b22fb492212bd0c241e1347f4fda759c8591e1 100644 --- a/smp-ui-tests/src/test/java/ui/EditPgTest.java +++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java @@ -22,31 +22,14 @@ public class EditPgTest extends BaseTest { @AfterMethod public void logoutAndReset() { - SMPPage page = new SMPPage(driver); - page.refreshPage(); - - if (page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } - page.waitForXMillis(100); + genericLogoutProcedure(); } @BeforeMethod public void loginAndGoToEditPage() { - SMPPage page = new SMPPage(driver); - - if (page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } - - if (!page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Login!!"); - page.pageHeader.goToLogin().login("SMP_ADMIN"); - } + SMPPage page = genericLoginProcedure("SMP_ADMIN"); logger.info("Going to Edit page"); page.sidebar.goToPage(EditPage.class); diff --git a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java index 58a0f265da7d4202d63c880f2f847fe2f0fc7956..47cc2374e7246b6053838810f3a9e71570da2352 100644 --- a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java +++ b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java @@ -20,17 +20,7 @@ public class PrivilegesTests extends BaseTest { @AfterMethod public void logoutAndReset(){ - 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(); - } + genericLogoutProcedure(); } @Test(description = "RGT-0") diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java index d34f5509e039a08e00ea1991d140b629923eea13..e196b1a2ca204176a98f834a030109e580f1be42 100644 --- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java +++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java @@ -1,6 +1,5 @@ package ui; -import org.openqa.selenium.JavascriptExecutor; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -25,38 +24,17 @@ public class UsersPgTest extends BaseTest { @AfterMethod public void logoutAndReset() { - - driver.manage().deleteAllCookies(); - ((JavascriptExecutor) driver).executeScript("localStorage.clear();"); - - SMPPage page = new SMPPage(driver); - page.refreshPage(); - - if (page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } + genericLogoutProcedure(); } @BeforeMethod public void loginAndGoToUsersPage() { - SMPPage page = new SMPPage(driver); - - if (page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Logout!!"); - page.pageHeader.sandwichMenu.logout(); - } - - if (!page.pageHeader.sandwichMenu.isLoggedIn()) { - logger.info("Login!!"); - page.pageHeader.goToLogin().login("SYS_ADMIN"); - } + SMPPage page = genericLoginProcedure("SYS_ADMIN"); logger.info("Going to Users page"); page.sidebar.goToPage(UsersPage.class); - page.waitForRowsToLoad(); } @Test(description = "USR-10")