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

Skip to content
Snippets Groups Projects
Commit 86e62f59 authored by Catalin QA's avatar Catalin QA
Browse files

bugfixes and improvements

parent 604a1e67
No related branches found
No related tags found
No related merge requests found
...@@ -34,6 +34,7 @@ public class SandwichMenu extends PageComponent { ...@@ -34,6 +34,7 @@ public class SandwichMenu extends PageComponent {
public boolean isLoggedIn(){ public boolean isLoggedIn(){
clickVoidSpace(); clickVoidSpace();
waitForElementToBeClickable(expandoButton).click(); waitForElementToBeClickable(expandoButton).click();
boolean isLoggedIn = false; boolean isLoggedIn = false;
......
...@@ -63,6 +63,8 @@ public class Sidebar extends PageComponent { ...@@ -63,6 +63,8 @@ public class Sidebar extends PageComponent {
new Header(driver).waitForTitleToBe(); new Header(driver).waitForTitleToBe();
waitForRowsToLoad();
return PageFactory.initElements(driver, expect); return PageFactory.initElements(driver, expect);
} }
......
...@@ -80,6 +80,34 @@ public class PageComponent { ...@@ -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) { public void waitForNumberOfWindowsToBe(int noOfWindows) {
try { try {
wait.until(numberOfWindowsToBe(noOfWindows)); wait.until(numberOfWindowsToBe(noOfWindows));
...@@ -196,17 +224,18 @@ public class PageComponent { ...@@ -196,17 +224,18 @@ public class PageComponent {
public void waitForRowsToLoad() { public void waitForRowsToLoad() {
log.info("waiting for rows to load"); log.info("waiting for rows to load");
try { try {
waitForElementToBeVisible(loadingBar); waitForElementToBeGone(loadingBar);
// waitForElementToBeVisible(loadingBar);
int bars = 1; //
int waits = 0; // int bars = 1;
while (bars > 0 && waits < 30) { // int waits = 0;
Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;"); // while (bars > 0 && waits < 30) {
bars = Integer.valueOf(tmp.toString()); // Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;");
waits++; // bars = Integer.valueOf(tmp.toString());
waitForXMillis(500); // waits++;
} // waitForXMillis(500);
log.debug("waited for rows to load for ms = 500*" + waits); // }
// log.debug("waited for rows to load for ms = 500*" + waits);
} catch (Exception e) { } } catch (Exception e) { }
waitForXMillis(500); waitForXMillis(500);
} }
......
...@@ -21,7 +21,7 @@ public class BasicGrid extends PageComponent { ...@@ -21,7 +21,7 @@ public class BasicGrid extends PageComponent {
super(driver); super(driver);
log.info("Loading basic grid"); log.info("Loading basic grid");
waitToLoad(); // waitToLoad();
waitForRowsToLoad(); waitForRowsToLoad();
PageFactory.initElements( new DefaultElementLocatorFactory(container) , this); PageFactory.initElements( new DefaultElementLocatorFactory(container) , this);
...@@ -31,14 +31,14 @@ public class BasicGrid extends PageComponent { ...@@ -31,14 +31,14 @@ public class BasicGrid extends PageComponent {
} }
private void waitToLoad(){ // private void waitToLoad(){
try { // try {
waitForXMillis(500); // waitForXMillis(500);
waitForElementToBeGone(driver.findElement(loadingBar)); // waitForElementToBeGone(driver.findElement(loadingBar));
} catch (Exception e) { // } catch (Exception e) {
//
} // }
} // }
......
package ui; package ui;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.testng.annotations.*; import org.testng.annotations.*;
import pages.components.baseComponents.SMPPage; import pages.components.baseComponents.SMPPage;
...@@ -15,7 +16,6 @@ import utils.rest.SMPRestClient; ...@@ -15,7 +16,6 @@ import utils.rest.SMPRestClient;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
@Listeners({ExcelTestReporter.class, TestProgressReporter.class}) @Listeners({ExcelTestReporter.class, TestProgressReporter.class})
...@@ -36,7 +36,7 @@ public class BaseTest { ...@@ -36,7 +36,7 @@ public class BaseTest {
@BeforeSuite(alwaysRun = true) @BeforeSuite(alwaysRun = true)
/*Starts the browser and navigates to the homepage. This happens once before the test /*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*/ suite and the browser window is reused for all tests in suite*/
public void beforeSuite(){ public void beforeSuite() {
logger.info("Creating necessary data !!!!"); logger.info("Creating necessary data !!!!");
createDomains(); createDomains();
createUsers(); createUsers();
...@@ -50,7 +50,7 @@ public class BaseTest { ...@@ -50,7 +50,7 @@ public class BaseTest {
@AfterSuite(alwaysRun = true) @AfterSuite(alwaysRun = true)
/*After the test suite is done we close the browser*/ /*After the test suite is done we close the browser*/
public void afterSuite(){ public void afterSuite() {
logger.info("Deleting created data!!!"); logger.info("Deleting created data!!!");
deleteTestData(); deleteTestData();
...@@ -65,7 +65,7 @@ public class BaseTest { ...@@ -65,7 +65,7 @@ public class BaseTest {
} }
@AfterClass(alwaysRun = true) @AfterClass(alwaysRun = true)
public void afterClass(){ public void afterClass() {
driver.quit(); driver.quit();
// driver.get(PROPERTIES.UI_BASE_URL); // driver.get(PROPERTIES.UI_BASE_URL);
// SMPPage page = new SMPPage(driver); // SMPPage page = new SMPPage(driver);
...@@ -78,7 +78,7 @@ public class BaseTest { ...@@ -78,7 +78,7 @@ public class BaseTest {
} }
@BeforeClass(alwaysRun = true) @BeforeClass(alwaysRun = true)
public void beforeClass(){ public void beforeClass() {
driver = DriverManager.getDriver(); driver = DriverManager.getDriver();
driver.get(PROPERTIES.UI_BASE_URL); driver.get(PROPERTIES.UI_BASE_URL);
} }
...@@ -92,48 +92,47 @@ public class BaseTest { ...@@ -92,48 +92,47 @@ public class BaseTest {
} }
private void createDomains(){ private void createDomains() {
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10); String generated = Generator.randomAlphaNumeric(10);
boolean created = SMPRestClient.createDomain(generated); boolean created = SMPRestClient.createDomain(generated);
if(created){ if (created) {
createdDomains.add(generated);} createdDomains.add(generated);
else{ } else {
logger.warn("Test data creation: Domain creation failed for " + generated); 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"}; String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"};
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
String generated = Generator.randomAlphaNumeric(10); String generated = Generator.randomAlphaNumeric(10);
String role = roles[i%roles.length]; String role = roles[i % roles.length];
boolean created = SMPRestClient.createUser(generated, role); boolean created = SMPRestClient.createUser(generated, role);
if(created){ if (created) {
createdUsers.add(generated);} createdUsers.add(generated);
else{ } else {
logger.warn("Test data creation: User creation failed for " + generated); logger.warn("Test data creation: User creation failed for " + generated);
} }
} }
} }
private void createSGs(){ private void createSGs() {
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
String generated = Generator.randomAlphaNumeric(10); String generated = Generator.randomAlphaNumeric(10);
List<String> users = Arrays.asList(createdUsers.get(0)); List<String> users = Arrays.asList(createdUsers.get(0));
List<String> domains = Arrays.asList(createdDomains.get(0)); List<String> domains = Arrays.asList(createdDomains.get(0));
boolean created = SMPRestClient.createServiceGroup(generated, generated, users, domains); boolean created = SMPRestClient.createServiceGroup(generated, generated, users, domains);
if(created){ if (created) {
createdServiceGroups.add(generated); createdServiceGroups.add(generated);
} } else {
else{
logger.warn("Test data creation: SG creation failed for " + generated); logger.warn("Test data creation: SG creation failed for " + generated);
} }
} }
} }
private void deleteTestData(){ private void deleteTestData() {
for (String createdServiceGroup : createdServiceGroups) { for (String createdServiceGroup : createdServiceGroups) {
try { try {
SMPRestClient.deleteSG(createdServiceGroup); SMPRestClient.deleteSG(createdServiceGroup);
...@@ -158,5 +157,41 @@ public class BaseTest { ...@@ -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;
}
} }
...@@ -23,29 +23,17 @@ public class DomainPgTest extends BaseTest { ...@@ -23,29 +23,17 @@ public class DomainPgTest extends BaseTest {
@AfterMethod @AfterMethod
public void logoutAndReset(){ public void logoutAndReset(){
SMPPage page = new SMPPage(driver); genericLogoutProcedure();
page.refreshPage();
if(page.pageHeader.sandwichMenu.isLoggedIn()){
logger.info("Logout!!");
page.pageHeader.sandwichMenu.logout();
}
} }
@BeforeMethod @BeforeMethod
public void loginAndGoToDomainPage(){ public void loginAndGoToDomainPage(){
SMPPage page = new SMPPage(driver); SMPPage page = genericLoginProcedure("SYS_ADMIN");
if(!page.pageHeader.sandwichMenu.isLoggedIn()){
logger.info("Login!!");
page.pageHeader.goToLogin().login("SYS_ADMIN");
}
logger.info("Going to Domain page"); logger.info("Going to Domain page");
page.sidebar.goToPage(DomainPage.class); page.sidebar.goToPage(DomainPage.class);
page.waitForRowsToLoad();
} }
@Test(description = "DMN-0") @Test(description = "DMN-0")
......
...@@ -22,31 +22,14 @@ public class EditPgTest extends BaseTest { ...@@ -22,31 +22,14 @@ public class EditPgTest extends BaseTest {
@AfterMethod @AfterMethod
public void logoutAndReset() { public void logoutAndReset() {
SMPPage page = new SMPPage(driver); genericLogoutProcedure();
page.refreshPage();
if (page.pageHeader.sandwichMenu.isLoggedIn()) {
logger.info("Logout!!");
page.pageHeader.sandwichMenu.logout();
}
page.waitForXMillis(100);
} }
@BeforeMethod @BeforeMethod
public void loginAndGoToEditPage() { public void loginAndGoToEditPage() {
SMPPage page = new SMPPage(driver); SMPPage page = genericLoginProcedure("SMP_ADMIN");
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");
}
logger.info("Going to Edit page"); logger.info("Going to Edit page");
page.sidebar.goToPage(EditPage.class); page.sidebar.goToPage(EditPage.class);
......
...@@ -20,17 +20,7 @@ public class PrivilegesTests extends BaseTest { ...@@ -20,17 +20,7 @@ public class PrivilegesTests extends BaseTest {
@AfterMethod @AfterMethod
public void logoutAndReset(){ public void logoutAndReset(){
SMPPage page = new SMPPage(driver); genericLogoutProcedure();
page.refreshPage();
try {
if(page.pageHeader.sandwichMenu.isLoggedIn()){
logger.info("Logout!!");
page.pageHeader.sandwichMenu.logout();
}
} catch (Exception e) {
e.printStackTrace();
}
} }
@Test(description = "RGT-0") @Test(description = "RGT-0")
......
package ui; package ui;
import org.openqa.selenium.JavascriptExecutor;
import org.testng.annotations.AfterMethod; import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
...@@ -25,38 +24,17 @@ public class UsersPgTest extends BaseTest { ...@@ -25,38 +24,17 @@ public class UsersPgTest extends BaseTest {
@AfterMethod @AfterMethod
public void logoutAndReset() { public void logoutAndReset() {
genericLogoutProcedure();
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();
}
} }
@BeforeMethod @BeforeMethod
public void loginAndGoToUsersPage() { public void loginAndGoToUsersPage() {
SMPPage page = new SMPPage(driver); SMPPage page = genericLoginProcedure("SYS_ADMIN");
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");
}
logger.info("Going to Users page"); logger.info("Going to Users page");
page.sidebar.goToPage(UsersPage.class); page.sidebar.goToPage(UsersPage.class);
page.waitForRowsToLoad();
} }
@Test(description = "USR-10") @Test(description = "USR-10")
......
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