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 11a21bc4 authored by comanca's avatar comanca
Browse files

Minor fixes and improvements

parent 26e80af1
No related branches found
No related tags found
No related merge requests found
Showing
with 119 additions and 82 deletions
......@@ -2,10 +2,7 @@ package pages.components.baseComponents;
import org.apache.log4j.Logger;
import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.*;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.ExpectedConditions;
......@@ -43,7 +40,7 @@ public class PageComponent {
public WebElement waitForElementToBeVisible(WebElement element) {
return webDriverWait.until(ExpectedConditions.visibilityOf(element));
}
public void waitForElementToBeEnabled(WebElement element) {
int maxTimeout = PROPERTIES.TIMEOUT * 1000;
int waitedSoFar = 0;
......@@ -72,28 +69,10 @@ public class PageComponent {
}
public void clickVoidSpace(){
WebElement topLogoText = driver.findElement(By.id("topLogo"));
By overlayLocator = By.cssSelector("[class*=\"overlay-backdrop\"]");
Point logoPoint = topLogoText.getLocation();
int x = logoPoint.x;
int y = logoPoint.y;
try {
webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(overlayLocator));
new Actions(driver).moveByOffset(x, y).click().build().perform();
} catch (Exception e) {
}
try {
int c=0;
while(c<30){
if(null != driver.findElement(overlayLocator)){
new Actions(driver).moveByOffset(x, y).click().build().perform();
waitForXMillis(500);
}
c++;
}
waitForXMillis(500);
((JavascriptExecutor)driver).executeScript("document.querySelector('[class*=\"overlay-backdrop\"]').click()");
waitForXMillis(500);
} catch (Exception e) { }
waitForXMillis(500);
}
......
......@@ -80,6 +80,7 @@ public class DomainPage extends SMPPage {
public void clickDelete(){
waitForElementToBeClickable(deleteBtn).click();
waitForElementToBeEnabled(saveBtn);
}
public DomainPopup clickNew(){
waitForElementToBeClickable(newBtn).click();
......
......@@ -100,6 +100,7 @@ public class EditPage extends SMPPage {
public ServiceGroupGrid getGrid(){
waitForElementToBeVisible(searchTable);
ServiceGroupGrid grid = new ServiceGroupGrid(driver, searchTable);
return grid;
}
......
......@@ -9,8 +9,8 @@ import pages.components.baseComponents.PageComponent;
import utils.Generator;
import utils.PROPERTIES;
public class MetadataWizardPopup extends PageComponent {
public MetadataWizardPopup(WebDriver driver) {
public class SGExtensionWizzard extends PageComponent {
public SGExtensionWizzard(WebDriver driver) {
super(driver);
PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this);
}
......
......@@ -95,6 +95,11 @@ public class ServiceGroupPopup extends PageComponent {
waitForElementToBeGone(okButton);
}
public void clickClear(){
waitForElementToBeClickable(clearExtensionButton).click();
waitForXMillis(100);
}
public void clickCancel(){
waitForElementToBeClickable(cancelButton).click();
waitForElementToBeGone(okButton);
......@@ -161,10 +166,8 @@ public class ServiceGroupPopup extends PageComponent {
}
public void generateRndExtension(){
clearAndFillInput(extensionTextArea, " ");
participantIdentifierInput.click();
extensionWizardButton.click();
new MetadataWizardPopup(driver).fillWithRndStrings();
new SGExtensionWizzard(driver).fillWithRndStrings();
}
......
......@@ -15,6 +15,7 @@ public class SearchPage extends SMPPage {
super(driver);
PageFactory.initElements( new AjaxElementLocatorFactory(driver, PROPERTIES.TIMEOUT), this);
waitForElementToBeVisible(searchGridContainer);
serviceGroupGrid = new ServiceGroupGrid(driver, searchGridContainer);
}
......
......@@ -9,6 +9,7 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import pages.service_groups.search.pojo.ServiceGroup;
import utils.Generator;
import utils.PROPERTIES;
import utils.TestDataProvider;
......@@ -40,7 +41,7 @@ public class SMPRestClient {
}
public static List<String> getDomainAndSubdomain(){
public static List<String> getDomainAndSubdomains(){
List<String> domainList = new ArrayList<>();
try {
String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST)
......@@ -64,25 +65,14 @@ public class SMPRestClient {
return domainList;
}
public static List<String> getDomainCodes(){
List<String> domainList = new ArrayList<>();
try {
String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST)
.queryParam("page", "-1")
.queryParam("pageSize", "-1")
.accept(MediaType.APPLICATION_JSON_TYPE)
.type(MediaType.APPLICATION_JSON_TYPE)
.get(String.class);
JSONArray restDomains = new JSONObject(responseRaw).getJSONArray("serviceEntities");
for (int i = 0; i < restDomains.length(); i++) {
JSONObject currentDomain = restDomains.getJSONObject(i);
String currentDomainStr = currentDomain.getString("domainCode").trim();
domainList.add(currentDomainStr);
public static String getDomainSubDomainCombo(String domainCode){
List<String> allDomains = getDomainAndSubdomains();
for (String allDomain : allDomains) {
if(allDomain.startsWith(domainCode + " ")){
return allDomain;
}
} catch (Exception e) { }
return domainList;
}
return domainCode;
}
public static Cookie login(String role){
......@@ -219,6 +209,42 @@ public class SMPRestClient {
return false;
}
public static boolean createMetadata(String pi){
String template = "{\"documentIdentifier\":\"%s\",\"documentIdentifierScheme\":\"%s\",\"smlSubdomain\":\"%s\",\"domainCode\":\"%s\",\"domainId\":%s,\"status\":2,\"xmlContentStatus\":2}";
String xmlTemplate = "<ServiceMetadata xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"> <ServiceInformation> <ParticipantIdentifier scheme=\"%s\">%s</ParticipantIdentifier> <DocumentIdentifier scheme=\"%s\">%s</DocumentIdentifier> <ProcessList> <Process> <ProcessIdentifier scheme=\"[enterProcessType]\">[enterProcessName]</ProcessIdentifier> <ServiceEndpointList> <Endpoint transportProfile=\"bdxr-transport-ebms3-as4-v1p0\"> <EndpointURI>https://mypage.eu</EndpointURI> <Certificate>UGFzdGUgYmFzZTY0IGVuY29kZWQgY2VydGlmaWNhdGUgb2YgQVA=</Certificate> <ServiceDescription>Service description for partners</ServiceDescription> <TechnicalContactUrl>www.best-page.eu</TechnicalContactUrl> </Endpoint> </ServiceEndpointList> </Process> </ProcessList> </ServiceInformation> </ServiceMetadata>";
try {
JSONObject sg = getSGforPI(pi);
JSONObject domain = sg.getJSONArray("serviceGroupDomains").getJSONObject(0);
String domainCode = domain.getString("domainCode");
String subdomain = domain.getString("smlSubdomain");
String domainId = domain.getString("domainId");
String docID = Generator.randomAlphaNumeric(5);
String docscheme = Generator.randomAlphaNumeric(5);
String xmlContent = String.format(xmlTemplate, sg.getString("participantScheme"), pi, docscheme, docID);
String postMeta = String.format(template, docID, docscheme, subdomain, domainCode, domainId);
sg.getJSONArray("serviceMetadata").put(new JSONObject(postMeta).put("xmlContent", xmlContent));
sg.put("status", 1);
Cookie jssesionID = login("SMP_ADMIN");
ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP)
.accept(MediaType.APPLICATION_JSON_TYPE)
.type(MediaType.APPLICATION_JSON_TYPE)
.cookie(jssesionID)
.put(ClientResponse.class, new JSONArray().put(sg).toString());
return getResponse.getStatus() == 200;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static String getMetadataString(String url){
try {
System.out.println("url = " + url);
......@@ -283,6 +309,7 @@ public class SMPRestClient {
String responseRaw = resource.path(SMPPaths.SERVICE_GROUP)
.queryParam("page", "-1")
.queryParam("pageSize", "-1")
.queryParam("participantIdentifier", pi)
.accept(MediaType.APPLICATION_JSON_TYPE)
.type(MediaType.APPLICATION_JSON_TYPE)
.cookie(jssesionID)
......
......@@ -256,7 +256,7 @@ public class EditPgTest extends BaseTest{
popup.domainsPanel.expandSection();
List<String> listedOptions = popup.domainsPanel.getOptions();
List<String> domains = SMPRestClient.getDomainAndSubdomain();
List<String> domains = SMPRestClient.getDomainAndSubdomains();
for (String domain : domains) {
boolean found = false;
......@@ -277,7 +277,8 @@ public class EditPgTest extends BaseTest{
@Test(description = "EDT-90")
public void extensionValidatedOnOK(){
String identifier = Generator.randomAlphaNumeric(7);
String scheme = Generator.randomAlphaNumeric(7);
String tmpSchemeRoot = Generator.randomAlphaNumeric(3).toLowerCase();
String scheme = String.format("%s-%s-%s", tmpSchemeRoot, tmpSchemeRoot, tmpSchemeRoot);
SoftAssert soft = new SoftAssert();
EditPage page = new EditPage(driver);
......@@ -292,6 +293,7 @@ public class EditPgTest extends BaseTest{
soft.assertTrue(!popup.getErrorMessage().isEmpty(), "Error message displayed when entering invalid xml in extension area");
popup.clickClear();
popup.generateRndExtension();
popup.clickOK();
......@@ -308,8 +310,10 @@ public class EditPgTest extends BaseTest{
, "Service group was saved and is visible in search");
SMPRestClient.deleteSG(identifier);
identifier = Generator.randomAlphaNumeric(10);
scheme = Generator.randomAlphaNumeric(10);
// scheme = Generator.randomAlphaNumeric(10);
popup = page.clickNew();
popup.fillParticipantIdentifier(identifier);
......
......@@ -61,7 +61,7 @@ public class PrivilegesTests extends BaseTest {
String ps = Generator.randomAlphaNumeric(10);
SMPRestClient.createServiceGroup(pi, ps,
new ArrayList<>(Arrays.asList(createdUsers.get(0))),
new ArrayList<>(Arrays.asList("user")),
new ArrayList<>(Arrays.asList(createdDomains.get(0)))
);
......
package ui;
import org.testng.SkipException;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.components.baseComponents.SMPPage;
import pages.login.LoginPage;
import pages.service_groups.MetadataGrid;
import pages.service_groups.MetadataRow;
import pages.service_groups.ServiceGroupRow;
import pages.service_groups.edit.EditPage;
import pages.service_groups.search.SearchPage;
import pages.service_groups.search.pojo.ServiceGroup;
import utils.Generator;
......@@ -48,7 +47,7 @@ public class SearchPgTest extends BaseTest {
soft.assertTrue(page.isLoaded());
List<String> uiDomains = page.filters.domainSelect.getOptionTexts();
List<String> restDomains = SMPRestClient.getDomainAndSubdomain();
List<String> restDomains = SMPRestClient.getDomainAndSubdomains();
for (String restDomain : restDomains) {
boolean found = false;
......@@ -198,7 +197,23 @@ public class SearchPgTest extends BaseTest {
SearchPage page = new SearchPage(driver);
soft.assertTrue(page.isLoaded());
ServiceGroupRow row0 = page.serviceGroupGrid.getRows().get(0);
ServiceGroupRow row0 = null;
List<ServiceGroupRow> rows = page.serviceGroupGrid.getRows();
for (int i = 0; i < rows.size(); i++) {
if(rows.get(i).getMetadataSize() >0 ){
row0 = rows.get(i);
}
}
if(null == row0){
row0 = rows.get(0);
SMPRestClient.createMetadata(row0.getParticipantIdentifier());
page.refreshPage();
logger.info("Created Metadata for row 0");
row0 = page.serviceGroupGrid.getRows().get(0);
}
soft.assertTrue(row0.getExpandButtonText().contains("+"), "Initially the row has + on it");
row0.expandMetadata();
......@@ -219,7 +234,22 @@ public class SearchPgTest extends BaseTest {
SearchPage page = new SearchPage(driver);
soft.assertTrue(page.isLoaded());
ServiceGroupRow row0 = page.serviceGroupGrid.getRows().get(0);
ServiceGroupRow row0 = null;
List<ServiceGroupRow> rows = page.serviceGroupGrid.getRows();
for (int i = 0; i < rows.size(); i++) {
if(rows.get(i).getMetadataSize() >0 ){
row0 = rows.get(i);
}
}
if(null == row0){
row0 = rows.get(0);
SMPRestClient.createMetadata(row0.getParticipantIdentifier());
page.refreshPage();
logger.info("Created Metadata for row 0");
row0 = page.serviceGroupGrid.getRows().get(0);
}
String listedURL = row0.getServiceGroupURL();
String pScheme = row0.getParticipantScheme();
String pIdentifier = row0.getParticipantIdentifier();
......@@ -266,29 +296,20 @@ public class SearchPgTest extends BaseTest {
@Test(description = "SRCH-80")
public void filterByDifferentDomains(){
SoftAssert soft = new SoftAssert();
SearchPage page = new SearchPage(driver);
page.pageHeader.goToLogin();
LoginPage loginPage = new LoginPage(driver);
loginPage.login("SMP_ADMIN");
EditPage editPage = loginPage.sidebar.goToPage(EditPage.class);
String participantID = Generator.randomAlphaNumeric(5);
String participantScheme = Generator.randomAlphaNumeric(5);
String tmp = Generator.randomAlphaNumeric(3).toLowerCase();
String participantScheme = String.format("%s-%s-%s", tmp, tmp, tmp);
List<String> domains = Arrays.asList("domain1 (peppol)", "domain (subdomain)");
List<String> owners = Arrays.asList("smp");
List<String> domains = Arrays.asList(createdDomains.get(0), createdDomains.get(1));
List<String> owners = Arrays.asList(createdUsers.get(0));
logger.info("Creating service group with participant id: " + participantID);
editPage.addNewServiceGroup(participantID,
participantScheme,
owners, domains, "");
editPage.saveChanges();
SMPRestClient.createServiceGroup(participantID, participantScheme, owners, domains);
SearchPage searchPage = editPage.sidebar.goToPage(SearchPage.class);
SearchPage searchPage = new SearchPage(driver);
searchPage.filters.filter(participantID, participantScheme, "domain (subdomain)");
searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(0)));
List<ServiceGroupRow> results = searchPage.serviceGroupGrid.getRows();
soft.assertTrue(results.size() == 1, "Results size is 1 (first search)");
......@@ -296,7 +317,7 @@ public class SearchPgTest extends BaseTest {
"First and only result is the one we entered and is found when filtering by first domain");
searchPage.filters.filter(participantID, participantScheme, "domain1 (peppol)");
searchPage.filters.filter(participantID, participantScheme, SMPRestClient.getDomainSubDomainCombo(createdDomains.get(1)));
results = searchPage.serviceGroupGrid.getRows();
soft.assertTrue(results.size() == 1, "Results size is 1 (second search)");
......@@ -304,8 +325,8 @@ public class SearchPgTest extends BaseTest {
"First and only result is the one we entered and is found when filtering by second domain");
SMPRestClient.deleteSG(participantID);
editPage.waitForXMillis(2000);
soft.assertAll();
}
......
......@@ -123,7 +123,7 @@ public class UsersPgTest extends BaseTest {
public void passwordValidation(){
ArrayList<String> passToValidate = new ArrayList<>(Arrays.asList("qwqw",
// "QWERQWERQWERQWERQWERQWERQWERQWE33",
"QWERQWERQWERQWERQWERQWERQWERQWE33",
// "QWERTYUIOP",
// "qwertyuiop",
// "321654987",
......@@ -136,9 +136,9 @@ public class UsersPgTest extends BaseTest {
UsersPage usersPage = new UsersPage(driver);
for (String pass : passToValidate) {
usersPage.refreshPage();
// usersPage.clickVoidSpace();
// usersPage.waitForXMillis(5000);
// usersPage.refreshPage();
usersPage.clickVoidSpace();
UserPopup popup = usersPage.clickNew();
popup.rolesSelect.selectOptionWithText("SMP_ADMIN");
popup.clickUserDetailsToggle();
......@@ -405,7 +405,7 @@ public class UsersPgTest extends BaseTest {
SMPRestClient.createUser(username, "SMP_ADMIN");
SMPRestClient.createServiceGroup(pi, ps,
new ArrayList<>(Arrays.asList(username)),
new ArrayList<>(Arrays.asList("domainNoble", "domainEPREL"))
new ArrayList<>(Arrays.asList(createdDomains.get(0)))
);
SoftAssert soft = new SoftAssert();
......
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