revamped common tests in selenium (#2616)

This commit is contained in:
parthp2107 2022-02-04 15:25:00 +05:30 committed by GitHub
parent de6a06b013
commit d3f34c9490
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 218 additions and 170 deletions

View File

@ -46,6 +46,17 @@ public class Common {
By serviceUrl = By.cssSelector("[data-testid='url']"); By serviceUrl = By.cssSelector("[data-testid='url']");
By servicePort = By.cssSelector("[data-testid='port']"); By servicePort = By.cssSelector("[data-testid='port']");
By databaseName = By.cssSelector("[data-testid='database']"); By databaseName = By.cssSelector("[data-testid='database']");
By addTagCategory = By.cssSelector("[data-testid='add-category']");
By addTagButton = By.cssSelector("[data-testid='add-new-tag-button']");
By tagCount = By.xpath("//div[@data-testid='tag-conatiner']/div/div");
By errorMessage = By.cssSelector("[data-testid='error-message']");
By matchesInDescription = By.xpath("(//div[@data-testid='matches-stats'][1])/span[3]");
By tagCountSearch = By.xpath("(//div[@data-testid='description-text'][1])/div/p/span");
By tagFilterCount = By.xpath("//div[@data-testid='filter-containers-2']/div");
By noSearchResult = By.cssSelector("[data-testid='no-search-results']");
By resultsCount = By.xpath("//div[@data-testid='search-container']/div");
By matchesStats = By.cssSelector("[data-testid='matches-stats']");
By editLineageButton = By.cssSelector("[data-testid='edit-lineage']");
public By displayName() { public By displayName() {
return displayName; return displayName;
@ -234,4 +245,52 @@ public class Common {
public By databaseName() { public By databaseName() {
return databaseName; return databaseName;
} }
public By addTagCategory() {
return addTagCategory;
}
public By addTagButton() {
return addTagButton;
}
public By tagCount() {
return tagCount;
}
public By errorMessage() {
return errorMessage;
}
public By matchesInDescription() {
return matchesInDescription;
}
public By tagCountSearch() {
return tagCountSearch;
}
public By tourNavigationArrow(String arrow) {
return By.cssSelector("[data-tour-elem='" + arrow + "']");
}
public By tagFilterCount() {
return tagFilterCount;
}
public By noSearchResult() {
return noSearchResult;
}
public By resultsCount() {
return resultsCount;
}
public By matchesStats() {
return matchesStats;
}
public By editLineageButton() {
return editLineageButton;
}
} }

View File

@ -24,7 +24,6 @@ public class TagsPage {
} }
By closeWhatsNew = By.cssSelector("[data-testid='closeWhatsNew']"); By closeWhatsNew = By.cssSelector("[data-testid='closeWhatsNew']");
By addTagCategory = By.cssSelector("[data-testid='add-category']");
By addTagButton = By.cssSelector("[data-testid='add-new-tag-button']"); By addTagButton = By.cssSelector("[data-testid='add-new-tag-button']");
By editTagDescription = By.cssSelector("[data-testid='editTagDescription']"); By editTagDescription = By.cssSelector("[data-testid='editTagDescription']");
By addAssociatedTagButton = By.cssSelector("[data-testid='tags']"); By addAssociatedTagButton = By.cssSelector("[data-testid='tags']");
@ -36,10 +35,6 @@ public class TagsPage {
By headerSettingsTags = By.cssSelector("[data-testid='menu-item-Tags']"); By headerSettingsTags = By.cssSelector("[data-testid='menu-item-Tags']");
By sortBy = By.cssSelector("[data-testid='sortBy']"); By sortBy = By.cssSelector("[data-testid='sortBy']");
public By addTagCategory() {
return addTagCategory;
}
public By addTagButton() { public By addTagButton() {
return addTagButton; return addTagButton;
} }

View File

@ -28,8 +28,8 @@ import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.TestMethodOrder;
import org.openmetadata.catalog.selenium.events.Events; import org.openmetadata.catalog.selenium.events.Events;
import org.openmetadata.catalog.selenium.objectRepository.Common;
import org.openmetadata.catalog.selenium.properties.Property; import org.openmetadata.catalog.selenium.properties.Property;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.TimeoutException; import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
@ -48,14 +48,14 @@ public class CommonTests {
private static final Logger LOG = Logger.getLogger(CommonTests.class.getName()); private static final Logger LOG = Logger.getLogger(CommonTests.class.getName());
static WebDriver webDriver; static WebDriver webDriver;
static Common common;
static Actions actions; static Actions actions;
static Faker faker = new Faker(); static Faker faker = new Faker();
static String tagCategoryDisplayName = faker.name().firstName(); static String tagCategoryDisplayName = faker.name().firstName();
static String enterDescription = "//div[@data-testid='enterDescription']/div/div[2]/div/div/div/div/div/div";
static WebDriverWait wait; static WebDriverWait wait;
Integer waitTime = Property.getInstance().getSleepTime();
static String url = Property.getInstance().getURL(); static String url = Property.getInstance().getURL();
static String urlTag = "/api/v1/tags/"; static String urlTag = "/api/v1/tags/";
Integer waitTime = Property.getInstance().getSleepTime();
String tableName = "dim_address"; String tableName = "dim_address";
String webDriverInstance = Property.getInstance().getWebDriver(); String webDriverInstance = Property.getInstance().getWebDriver();
String webDriverPath = Property.getInstance().getWebDriverPath(); String webDriverPath = Property.getInstance().getWebDriverPath();
@ -67,6 +67,7 @@ public class CommonTests {
options.addArguments("--headless"); options.addArguments("--headless");
options.addArguments("--window-size=1280,800"); options.addArguments("--window-size=1280,800");
webDriver = new ChromeDriver(options); webDriver = new ChromeDriver(options);
common = new Common(webDriver);
actions = new Actions(webDriver); actions = new Actions(webDriver);
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30)); wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
webDriver.manage().window().maximize(); webDriver.manage().window().maximize();
@ -74,7 +75,7 @@ public class CommonTests {
} }
public void openHomePage() throws InterruptedException { public void openHomePage() throws InterruptedException {
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new Events.click(webDriver, common.closeWhatsNew()); // Close What's new
Thread.sleep(waitTime); Thread.sleep(waitTime);
} }
@ -82,21 +83,20 @@ public class CommonTests {
@Order(1) @Order(1)
public void tagDuplicationCheck() throws InterruptedException { public void tagDuplicationCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables Events.click(webDriver, common.selectOverview("tables"));
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "dim_location"); Events.sendKeys(webDriver, common.searchBar(), "dim_location");
Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); Events.click(webDriver, common.searchSuggestion());
Thread.sleep(waitTime); Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(By.xpath("//div[@data-testid='tag-conatiner']//span"))).perform(); actions.moveToElement(webDriver.findElement(common.editAssociatedTagButton())).perform();
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span")); Events.click(webDriver, common.editAssociatedTagButton());
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']")); Events.click(webDriver, common.enterAssociatedTagName());
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "PersonalData.Personal"); Events.sendKeys(webDriver, common.enterAssociatedTagName(), "PersonalData.Personal");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); Events.click(webDriver, common.tagListItem());
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "User.FacePhoto"); Events.sendKeys(webDriver, common.enterAssociatedTagName(), "User.FacePhoto");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); Events.click(webDriver, common.tagListItem());
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); Events.click(webDriver, common.saveAssociatedTag());
Thread.sleep(2000); Thread.sleep(2000);
Object tagCount = Object tagCount = webDriver.findElements(common.containsText("#PersonalData.Personal")).size();
webDriver.findElements(By.xpath("//*[text()[contains(.,'" + "#PersonalData.Personal" + "')]] ")).size();
Assert.assertEquals(tagCount, 2); Assert.assertEquals(tagCount, 2);
} }
@ -104,20 +104,20 @@ public class CommonTests {
@Order(2) @Order(2)
public void addTagWithSpaceCheck() throws InterruptedException, IOException { public void addTagWithSpaceCheck() throws InterruptedException, IOException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings()); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags")); // Setting/Tags
Events.click(webDriver, By.cssSelector("[data-testid='add-category']")); Events.click(webDriver, common.addTagCategory());
wait.until(ExpectedConditions.elementToBeClickable(webDriver.findElement(By.name("name")))); wait.until(ExpectedConditions.elementToBeClickable(webDriver.findElement(common.displayName())));
Events.sendKeys(webDriver, By.name("name"), tagCategoryDisplayName); Events.sendKeys(webDriver, common.displayName(), tagCategoryDisplayName);
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.saveEditedService());
webDriver.navigate().refresh(); webDriver.navigate().refresh();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] ")); Events.click(webDriver, common.containsText(tagCategoryDisplayName));
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']")); Events.click(webDriver, common.addTagButton());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "Testing Tag"); Events.sendKeys(webDriver, common.displayName(), "Testing Tag");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.saveEditedService());
URL tagUrl = new URL(url + urlTag + tagCategoryDisplayName + "/"); URL tagUrl = new URL(url + urlTag + tagCategoryDisplayName + "/");
HttpURLConnection http = (HttpURLConnection) tagUrl.openConnection(); HttpURLConnection http = (HttpURLConnection) tagUrl.openConnection();
http.setRequestMethod("HEAD"); http.setRequestMethod("HEAD");
@ -129,13 +129,13 @@ public class CommonTests {
@Order(3) @Order(3)
public void addTagCategoryWithSpaceCheck() throws InterruptedException, IOException { public void addTagCategoryWithSpaceCheck() throws InterruptedException, IOException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings()); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags")); // Setting/Tags
Events.click(webDriver, By.cssSelector("[data-testid='add-category']")); Events.click(webDriver, common.addTagCategory());
wait.until(ExpectedConditions.elementToBeClickable(webDriver.findElement(By.name("name")))); wait.until(ExpectedConditions.elementToBeClickable(webDriver.findElement(common.displayName())));
Events.sendKeys(webDriver, By.name("name"), "Space Tag"); Events.sendKeys(webDriver, common.displayName(), "Space Tag");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.saveEditedService());
webDriver.navigate().refresh(); webDriver.navigate().refresh();
URL tagUrl = new URL(url + urlTag); URL tagUrl = new URL(url + urlTag);
HttpURLConnection http = (HttpURLConnection) tagUrl.openConnection(); HttpURLConnection http = (HttpURLConnection) tagUrl.openConnection();
@ -148,24 +148,31 @@ public class CommonTests {
@Order(4) @Order(4)
public void onlySpaceAsNameForServiceCheck() throws InterruptedException { public void onlySpaceAsNameForServiceCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='service']")); // Service Events.click(webDriver, common.selectOverview("service"));
Thread.sleep(2000); Thread.sleep(2000);
List<WebElement> webElementList = webDriver.findElements(By.cssSelector("[data-testid='add-new-user-button']")); List<WebElement> webElementList = webDriver.findElements(common.noServicesAddServiceButton());
if (webElementList.isEmpty()) { if (webElementList.isEmpty()) {
Events.click(webDriver, By.cssSelector("[data-testid='add-service-button']")); Events.click(webDriver, common.addServiceButton());
} else { } else {
Events.click(webDriver, By.cssSelector("[data-testid='add-new-user-button']")); Events.click(webDriver, common.noServicesAddServiceButton());
} }
Events.click(webDriver, By.cssSelector("[data-testid='selectService']")); Events.click(webDriver, common.serviceType("MySQL"));
Events.click(webDriver, By.cssSelector("[value='MySQL']")); Events.click(webDriver, common.nextButton());
Events.sendKeys(webDriver, By.cssSelector("[data-testid='name']"), " "); Events.sendKeys(webDriver, common.serviceName(), " ");
Events.sendKeys(webDriver, By.cssSelector("[data-testid='url']"), "localhost:3306"); Events.click(webDriver, common.descriptionBoldButton());
Events.sendKeys(webDriver, By.cssSelector("[data-testid='database']"), "openmetadata_db"); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.click(webDriver, common.nextButton());
Events.click(webDriver, By.cssSelector("[data-testid='save-button']")); Events.sendKeys(webDriver, common.serviceUrl(), "localhost");
Events.sendKeys(webDriver, common.servicePort(), "3306");
Events.sendKeys(webDriver, common.serviceUsername(), "openmetadata_user");
Events.sendKeys(webDriver, common.servicePassword(), "openmetadata_password");
Events.sendKeys(webDriver, common.databaseName(), "openmetadata_db");
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.nextButton());
Events.click(webDriver, common.saveServiceButton());
webDriver.navigate().refresh(); webDriver.navigate().refresh();
try { try {
Events.click(webDriver, By.cssSelector("[data-testid='delete-service-" + " " + "']")); Events.click(webDriver, common.deleteServiceButton(" "));
} catch (TimeoutException exception) { } catch (TimeoutException exception) {
LOG.info("Success"); LOG.info("Success");
} }
@ -175,19 +182,19 @@ public class CommonTests {
@Order(5) @Order(5)
public void addMultipleTagsCheck() throws InterruptedException { public void addMultipleTagsCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "raw_product_catalog"); Events.sendKeys(webDriver, common.searchBar(), "raw_product_catalog");
Events.click(webDriver, By.cssSelector("[data-testid='data-name'][id='bigquery_gcpshopifyraw_product_catalog']")); Events.click(webDriver, common.selectSuggestionSearch("bigquery_gcpshopifyraw_product_catalog"));
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span")); Events.click(webDriver, common.editAssociatedTagButton());
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']")); Events.click(webDriver, common.enterAssociatedTagName());
for (int i = 0; i <= 10; i++) { for (int i = 0; i <= 10; i++) {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "P"); Events.sendKeys(webDriver, common.enterAssociatedTagName(), "P");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); Events.click(webDriver, common.tagListItem());
Thread.sleep(waitTime); Thread.sleep(waitTime);
} }
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); Events.click(webDriver, common.saveAssociatedTag());
webDriver.navigate().refresh(); webDriver.navigate().refresh();
Thread.sleep(2000); Thread.sleep(2000);
Object tagCount = webDriver.findElements(By.xpath("//div[@data-testid='tag-conatiner']/div/div")).size(); Object tagCount = webDriver.findElements(common.tagCount()).size();
Assert.assertEquals(tagCount, 11); Assert.assertEquals(tagCount, 11);
} }
@ -195,15 +202,14 @@ public class CommonTests {
@Order(6) @Order(6)
public void sameNameTagCategoryUIMessageCheck() throws InterruptedException { public void sameNameTagCategoryUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.cssSelector("[data-testid='add-category']")); Events.click(webDriver, common.addTagCategory());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "personalData"); Events.sendKeys(webDriver, common.displayName(), "personalData");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name already exists"); Assert.assertEquals(errorMessage, "Name already exists");
} }
@ -212,16 +218,15 @@ public class CommonTests {
@Order(7) @Order(7)
public void sameNameTagUIMessageCheck() throws InterruptedException { public void sameNameTagUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] ")); Events.click(webDriver, common.containsText("PersonalData"));
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']")); Events.click(webDriver, common.noServicesAddServiceButton());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "personal"); Events.sendKeys(webDriver, common.displayName(), "personal");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name already exists"); Assert.assertEquals(errorMessage, "Name already exists");
} }
@ -230,15 +235,14 @@ public class CommonTests {
@Order(8) @Order(8)
public void shortTagCategoryNameUIMessageCheck() throws InterruptedException { public void shortTagCategoryNameUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.cssSelector("[data-testid='add-category']")); Events.click(webDriver, common.addTagCategory());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "P"); Events.sendKeys(webDriver, common.displayName(), "P");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name size must be between 2 and 25"); Assert.assertEquals(errorMessage, "Name size must be between 2 and 25");
} }
@ -247,15 +251,14 @@ public class CommonTests {
@Order(9) @Order(9)
public void longTagCategoryNameUIMessageCheck() throws InterruptedException { public void longTagCategoryNameUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.cssSelector("[data-testid='add-category']")); Events.click(webDriver, common.addTagCategory());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "PersonalData-DataPlatform-PersonalData"); Events.sendKeys(webDriver, common.displayName(), "PersonalData-DataPlatform-PersonalData");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name size must be between 2 and 25"); Assert.assertEquals(errorMessage, "Name size must be between 2 and 25");
} }
@ -264,16 +267,15 @@ public class CommonTests {
@Order(10) @Order(10)
public void shortTagNameUIMessageCheck() throws InterruptedException { public void shortTagNameUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] ")); Events.click(webDriver, common.containsText("PersonalData"));
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']")); Events.click(webDriver, common.addTagButton());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "P"); Events.sendKeys(webDriver, common.displayName(), "P");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name size must be between 2 and 25"); Assert.assertEquals(errorMessage, "Name size must be between 2 and 25");
} }
@ -282,16 +284,15 @@ public class CommonTests {
@Order(11) @Order(11)
public void longTagNameUIMessageCheck() throws InterruptedException { public void longTagNameUIMessageCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting Events.click(webDriver, common.headerSettings());
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags Events.click(webDriver, common.headerSettingsMenu("Tags"));
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] ")); Events.click(webDriver, common.containsText("PersonalData"));
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']")); Events.click(webDriver, common.addTagButton());
wait.until(ExpectedConditions.elementToBeClickable(By.name("name"))); wait.until(ExpectedConditions.elementToBeClickable(common.displayName()));
Events.sendKeys(webDriver, By.name("name"), "P"); Events.sendKeys(webDriver, common.displayName(), "PersonalData-DataPlatform-PersonalData");
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']")); Events.click(webDriver, common.descriptionSaveButton());
String errorMessage = String errorMessage = webDriver.findElement(common.errorMessage()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='error-message']")).getAttribute("innerHTML");
Thread.sleep(2000); Thread.sleep(2000);
Assert.assertEquals(errorMessage, "Name size must be between 2 and 25"); Assert.assertEquals(errorMessage, "Name size must be between 2 and 25");
} }
@ -300,14 +301,12 @@ public class CommonTests {
@Order(12) @Order(12)
public void searchMatchesCountCheck() throws InterruptedException { public void searchMatchesCountCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "address"); // Search bar/dim Events.sendKeys(webDriver, common.searchBar(), "address"); // Search bar/dim
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar());
Thread.sleep(2000); Thread.sleep(2000);
Object tagCount = Object tagCount = webDriver.findElements(common.tagCountSearch()).size() - 1;
webDriver.findElements(By.xpath("(//div[@data-testid='description-text'][1])/div/p/span")).size() - 1;
Thread.sleep(2000); Thread.sleep(2000);
String matchesInDescription = String matchesInDescription = webDriver.findElement(common.matchesInDescription()).getAttribute("innerHTML");
webDriver.findElement(By.xpath("(//div[@data-testid='matches-stats'][1])/span[3]")).getAttribute("innerHTML");
Assert.assertEquals((tagCount + " in Description,"), matchesInDescription); Assert.assertEquals((tagCount + " in Description,"), matchesInDescription);
} }
@ -315,9 +314,9 @@ public class CommonTests {
@Order(13) @Order(13)
public void overviewLinksAfterTour() throws InterruptedException { public void overviewLinksAfterTour() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='tour']")); Events.click(webDriver, common.selectOverview("tour"));
webDriver.navigate().back(); webDriver.navigate().back();
Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables Events.click(webDriver, common.selectOverview("tables"));
String tablesUrl = webDriver.getCurrentUrl(); String tablesUrl = webDriver.getCurrentUrl();
Assert.assertEquals(tablesUrl, url + "/explore/tables/"); Assert.assertEquals(tablesUrl, url + "/explore/tables/");
} }
@ -326,38 +325,38 @@ public class CommonTests {
@Order(14) @Order(14)
public void tourStepSkippingCheck() throws InterruptedException { public void tourStepSkippingCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='tour']")); Events.click(webDriver, common.selectOverview("tour"));
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
Events.click(webDriver, By.cssSelector("[data-tour-elem='right-arrow']")); Events.click(webDriver, common.tourNavigationArrow("right-arrow"));
} }
Events.sendKeys(webDriver, By.cssSelector("[id='searchBox']"), "dim_a"); // Search bar/dim Events.sendKeys(webDriver, common.searchBar(), "dim_a"); // Search bar/dim
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar()); // Search bar/dim
} }
@Test @Test
@Order(15) @Order(15)
public void tagFilterCountCheck() throws InterruptedException { public void tagFilterCountCheck() throws InterruptedException {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), tableName); Events.sendKeys(webDriver, common.searchBar(), tableName);
Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); Events.click(webDriver, common.searchSuggestion());
Thread.sleep(waitTime); Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(By.xpath("//div[@data-testid='tag-conatiner']//span"))).perform(); actions.moveToElement(webDriver.findElement(common.editAssociatedTagButton())).perform();
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span")); Events.click(webDriver, common.editAssociatedTagButton());
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']")); Events.click(webDriver, common.enterAssociatedTagName());
for (int i = 0; i <= 8; i++) { for (int i = 0; i <= 8; i++) {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "P"); Events.sendKeys(webDriver, common.enterAssociatedTagName(), "P");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); Events.click(webDriver, common.tagListItem());
} }
for (int i = 0; i <= 5; i++) { for (int i = 0; i <= 5; i++) {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "U"); Events.sendKeys(webDriver, common.enterAssociatedTagName(), "U");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); Events.click(webDriver, common.tagListItem());
} }
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']")); Events.click(webDriver, common.saveAssociatedTag());
Thread.sleep(2000); Thread.sleep(2000);
Object tagsCount = webDriver.findElements(By.xpath("//div[@data-testid='tag-conatiner']/div/div")).size() - 1; Object tagsCount = webDriver.findElements(common.tagCount()).size() - 1;
Thread.sleep(2000); Thread.sleep(2000);
webDriver.navigate().back(); webDriver.navigate().back();
Thread.sleep(2000); Thread.sleep(2000);
Object tagsFilterCount = webDriver.findElements(By.xpath("//div[@data-testid='filter-containers-2']/div")).size(); Object tagsFilterCount = webDriver.findElements(common.tagFilterCount()).size();
Assert.assertEquals(tagsFilterCount.toString(), tagsCount.toString()); Assert.assertEquals(tagsFilterCount.toString(), tagsCount.toString());
} }
@ -365,19 +364,16 @@ public class CommonTests {
@Order(16) @Order(16)
public void differentSearchDifferentResultCheck() throws InterruptedException { public void differentSearchDifferentResultCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "!"); Events.sendKeys(webDriver, common.searchBar(), "!");
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar());
Thread.sleep(2000); Thread.sleep(2000);
String search1 = String search1 = webDriver.findElement(common.noSearchResult()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='no-search-results']")).getAttribute("innerHTML");
Assert.assertEquals(search1, "No matching data assets found for !"); Assert.assertEquals(search1, "No matching data assets found for !");
webDriver.navigate().back(); webDriver.navigate().back();
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "{"); Events.sendKeys(webDriver, common.searchBar(), "{");
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar());
Thread.sleep(2000);
try { try {
String search2 = String search2 = webDriver.findElement(common.noSearchResult()).getAttribute("innerHTML");
webDriver.findElement(By.cssSelector("[data-testid='no-search-results']")).getAttribute("innerHTML");
Assert.assertEquals(search2, "No matching data assets found for {"); Assert.assertEquals(search2, "No matching data assets found for {");
} catch (NoSuchElementException exception) { } catch (NoSuchElementException exception) {
LOG.info("Search results are not similar for no data found!"); LOG.info("Search results are not similar for no data found!");
@ -388,12 +384,11 @@ public class CommonTests {
@Order(17) @Order(17)
public void missingMatchesForSearchCheck() throws InterruptedException { public void missingMatchesForSearchCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='dashboards']")); // Dashboards Events.click(webDriver, common.selectOverview("dashboards"));
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "sales"); Events.sendKeys(webDriver, common.searchBar(), "sales");
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar());
String resultsCount = String resultsCount = webDriver.findElement(common.resultsCount()).getAttribute("innerHTML");
webDriver.findElement(By.xpath("//div[@data-testid='search-container']/div")).getAttribute("innerHTML"); Object matchesCount = webDriver.findElements(common.matchesStats()).size();
Object matchesCount = webDriver.findElements(By.cssSelector("[data-testid='matches-stats']")).size();
Assert.assertEquals(matchesCount + " results", resultsCount); Assert.assertEquals(matchesCount + " results", resultsCount);
} }
@ -401,23 +396,22 @@ public class CommonTests {
@Order(18) @Order(18)
public void sameNodesLineage() throws InterruptedException { public void sameNodesLineage() throws InterruptedException {
openHomePage(); openHomePage();
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "dim_product_variant"); Events.sendKeys(webDriver, common.searchBar(), "dim_product_variant");
Events.click(webDriver, By.cssSelector("[data-testid='data-name']")); Events.click(webDriver, common.searchSuggestion());
Thread.sleep(waitTime); Thread.sleep(waitTime);
Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[4]")); Events.click(webDriver, common.entityTabIndex(4));
Events.click(webDriver, By.cssSelector("[data-testid='edit-lineage']")); Events.click(webDriver, common.editLineageButton());
} }
@Test @Test
@Order(19) @Order(19)
public void searchNotShowingResultsCheck() throws InterruptedException { public void searchNotShowingResultsCheck() throws InterruptedException {
openHomePage(); openHomePage();
Events.click(webDriver, By.cssSelector("[data-testid='pipelines']")); Events.click(webDriver, common.selectOverview("pipelines"));
Events.sendKeys(webDriver, By.cssSelector("[data-testid='searchBox']"), "sample"); Events.sendKeys(webDriver, common.searchBar(), "sample");
Events.sendEnter(webDriver, By.cssSelector("[id='searchBox']")); Events.sendEnter(webDriver, common.searchBar());
try { try {
WebElement searchResult = WebElement searchResult = wait.until(ExpectedConditions.presenceOfElementLocated(common.searchResults()));
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[data-testid='search-results']")));
if (searchResult.isDisplayed()) { if (searchResult.isDisplayed()) {
LOG.info("Success"); LOG.info("Success");
} }

View File

@ -85,7 +85,7 @@ public class TagsPageTest {
@Order(2) @Order(2)
public void addTagCategory() throws InterruptedException { public void addTagCategory() throws InterruptedException {
openTagsPage(); openTagsPage();
Events.click(webDriver, tagsPage.addTagCategory()); Events.click(webDriver, common.addTagCategory());
Events.sendKeys(webDriver, common.displayName(), tagCategoryDisplayName); Events.sendKeys(webDriver, common.displayName(), tagCategoryDisplayName);
Events.click(webDriver, common.descriptionBoldButton()); Events.click(webDriver, common.descriptionBoldButton());
Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
@ -115,7 +115,7 @@ public class TagsPageTest {
public void addTag() throws InterruptedException { public void addTag() throws InterruptedException {
openTagsPage(); openTagsPage();
Events.click(webDriver, common.containsText(tagCategoryDisplayName)); Events.click(webDriver, common.containsText(tagCategoryDisplayName));
Events.click(webDriver, tagsPage.addTagButton()); Events.click(webDriver, common.addTagButton());
Events.sendKeys(webDriver, common.displayName(), tagDisplayName); Events.sendKeys(webDriver, common.displayName(), tagDisplayName);
Events.click(webDriver, common.descriptionBoldButton()); Events.click(webDriver, common.descriptionBoldButton());
Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString()); Events.sendKeys(webDriver, common.addDescriptionString(), faker.address().toString());
@ -217,7 +217,7 @@ public class TagsPageTest {
public void addTagWithExistingName() throws InterruptedException { public void addTagWithExistingName() throws InterruptedException {
openTagsPage(); openTagsPage();
Events.click(webDriver, common.containsText("PersonalData")); Events.click(webDriver, common.containsText("PersonalData"));
Events.click(webDriver, tagsPage.addTagButton()); Events.click(webDriver, common.addTagButton());
Events.sendKeys(webDriver, common.displayName(), "Personals"); Events.sendKeys(webDriver, common.displayName(), "Personals");
Events.click(webDriver, common.descriptionSaveButton()); Events.click(webDriver, common.descriptionSaveButton());
Events.click(webDriver, common.headerItem("explore")); Events.click(webDriver, common.headerItem("explore"));