Revamping tags selenium tests (#2508)

* revemping tags selenium tests

* addressing style check

* completed tags page revamp

* addressing style-check

* removing extra code

* addressing style-check
This commit is contained in:
parthp2107 2022-02-01 13:27:49 +05:30 committed by GitHub
parent b82854c56e
commit f077a025a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 306 additions and 147 deletions

View File

@ -0,0 +1,185 @@
/*
* Copyright 2021 Collate
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.openmetadata.catalog.selenium.objectRepository;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class TagsPage {
WebDriver webDriver;
static String enterDescription = "//div[@data-testid='enterDescription']/div/div[2]/div/div/div/div/div/div";
public TagsPage(WebDriver webDriver) {
this.webDriver = webDriver;
}
By closeWhatsNew = By.cssSelector("[data-testid='closeWhatsNew']");
By addTagCategory = By.cssSelector("[data-testid='add-category']");
By displayName = By.name("name");
By descriptionBoldButton = By.cssSelector("[data-testid='boldButton']");
By descriptionItalicButton = By.cssSelector("[data-testid='italicButton']");
By descriptionLinkButton = By.cssSelector("[data-testid='linkButton']");
By descriptionSaveButton = By.cssSelector("[data-testid='saveButton']");
By addDescriptionString = By.xpath(enterDescription);
By editTagCategoryDescription = By.cssSelector("[data-testid='edit-description']");
By editDescriptionSaveButton = By.cssSelector("[data-testid='save']");
By addTagButton = By.cssSelector("[data-testid='add-new-tag-button']");
By editTagDescription = By.cssSelector("[data-testid='editTagDescription']");
By addAssociatedTagButton = By.cssSelector("[data-testid='tags']");
By enterAssociatedTagName = By.cssSelector("[data-testid='associatedTagName']");
By tagListItem = By.cssSelector("[data-testid='list-item']");
By saveAssociatedTag = By.cssSelector("[data-testid='saveAssociatedTag']");
By removeAssociatedTag = By.cssSelector("[data-testid='remove']");
By tables = By.cssSelector("[data-testid='tables']");
By tableLink = By.xpath("//button[@data-testid='table-link']");
By lastTableLink = By.xpath("//button[@data-testid='table-link'][last()]");
By tagUsageCount = By.cssSelector("[data-testid='usage-count']");
By editAssociatedTagButton = By.xpath("//div[@data-testid='tag-conatiner']//span");
By headerSettings = By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']");
By headerSettingsTags = By.cssSelector("[data-testid='menu-item-Tags']");
By headerExplore = By.cssSelector("[data-testid='appbar-item'][id='explore']");
By sortBy = By.cssSelector("[data-testid='sortBy']");
public By addTagCategory() {
return addTagCategory;
}
public By displayName() {
return displayName;
}
public By descriptionBoldButton() {
return descriptionBoldButton;
}
public By descriptionItalicButton() {
return descriptionItalicButton;
}
public By descriptionLinkButton() {
return descriptionLinkButton;
}
public By descriptionSaveButton() {
return descriptionSaveButton;
}
public By addDescriptionString() {
return addDescriptionString;
}
public By editTagCategoryDescription() {
return editTagCategoryDescription;
}
public By editDescriptionSaveButton() {
return editDescriptionSaveButton;
}
public By containsText(String matchingText) {
return By.xpath("//*[text()[contains(.,'" + matchingText + "')]] ");
}
public By addTagButton() {
return addTagButton;
}
public By editTagDescription() {
return editTagDescription;
}
public By addAssociatedTagButton() {
return addAssociatedTagButton;
}
public By enterAssociatedTagName() {
return enterAssociatedTagName;
}
public By tagListItem() {
return tagListItem;
}
public By saveAssociatedTag() {
return saveAssociatedTag;
}
public By removeAssociatedTag() {
return removeAssociatedTag;
}
public By closeWhatsNew() {
return closeWhatsNew;
}
public By tables() {
return tables;
}
public By tagFilter(String tagCategoryDisplayName, String tagDisplayName) {
return By.cssSelector("[data-testid='checkbox'][id='" + tagCategoryDisplayName + "." + tagDisplayName + "']");
}
public By tableLink() {
return tableLink;
}
public By lastTableLink() {
return lastTableLink;
}
public By tagUsageCount() {
return tagUsageCount;
}
public By editAssociatedTagButton() {
return editAssociatedTagButton;
}
public By usageCountElementIndex(int index) {
return By.xpath("(//a[@data-testid='usage-count'])[" + index + "]");
}
public By headerSettings() {
return headerSettings;
}
public By headerSettingsTags() {
return headerSettingsTags;
}
public By spanTagUsageCountElementIndex(int index) {
return By.xpath("(//div[@data-testid='usage'])[" + index + "]/span[@data-testid='usage-count']");
}
public By aTagUsageCountElementIndex(int index) {
return By.xpath("(//div[@data-testid='usage'])[" + index + "]/a[@data-testid='usage-count']");
}
public By tagFilterCount(int index) {
return By.xpath("(//button[@data-testid='tab'])[" + index + "]//span[@data-testid='filter-count']");
}
public By entityTabIndex(int index) {
return By.xpath("(//button[@data-testid='tab'])" + "[" + index + "]");
}
public By headerExplore() {
return headerExplore;
}
public By sortBy() {
return sortBy;
}
}

View File

@ -24,16 +24,15 @@ import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.openmetadata.catalog.selenium.events.Events;
import org.openmetadata.catalog.selenium.objectRepository.TagsPage;
import org.openmetadata.catalog.selenium.pages.myData.MyDataPageTest;
import org.openmetadata.catalog.selenium.properties.Property;
import org.openqa.selenium.By;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
@ -44,6 +43,7 @@ public class TagsPageTest {
private static final Logger LOG = Logger.getLogger(MyDataPageTest.class.getName());
static WebDriver webDriver;
static TagsPage tagsPage;
static String url = Property.getInstance().getURL();
static Faker faker = new Faker();
static String tagCategoryDisplayName = faker.name().firstName();
@ -60,6 +60,7 @@ public class TagsPageTest {
options.addArguments("--headless");
options.addArguments("--window-size=1280,800");
webDriver = new ChromeDriver(options);
tagsPage = new TagsPage(webDriver);
actions = new Actions(webDriver);
wait = new WebDriverWait(webDriver, Duration.ofSeconds(30));
webDriver.manage().window().maximize();
@ -69,9 +70,9 @@ public class TagsPageTest {
@Test
@Order(1)
public void openTagsPage() throws InterruptedException {
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
Events.click(webDriver, tagsPage.closeWhatsNew());
Events.click(webDriver, tagsPage.headerSettings());
Events.click(webDriver, tagsPage.headerSettingsTags());
Thread.sleep(waitTime);
}
@ -79,171 +80,154 @@ public class TagsPageTest {
@Order(2)
public void addTagCategory() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.cssSelector("[data-testid='add-category']"));
wait.until(ExpectedConditions.elementToBeClickable(webDriver.findElement(By.name("name"))));
Events.sendKeys(webDriver, By.name("name"), tagCategoryDisplayName);
Events.click(webDriver, By.cssSelector("[data-testid='boldButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.xpath(enterDescription));
Events.sendEnter(webDriver, By.xpath(enterDescription));
Events.click(webDriver, By.cssSelector("[data-testid='italicButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.xpath(enterDescription));
Events.sendEnter(webDriver, By.xpath(enterDescription));
Events.click(webDriver, By.cssSelector("[data-testid='linkButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']"));
Events.click(webDriver, tagsPage.addTagCategory());
Events.sendKeys(webDriver, tagsPage.displayName(), tagCategoryDisplayName);
Events.click(webDriver, tagsPage.descriptionBoldButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.addDescriptionString());
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
Events.click(webDriver, tagsPage.descriptionItalicButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.addDescriptionString());
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
Events.click(webDriver, tagsPage.descriptionLinkButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.descriptionSaveButton());
}
@Test
@Order(3)
public void editTagCategoryDescription() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
Events.click(webDriver, By.cssSelector("[data-testid='edit-description']"));
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(enterDescription)));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='save']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
Events.click(webDriver, tagsPage.editTagCategoryDescription());
Events.click(webDriver, tagsPage.addDescriptionString());
Events.click(webDriver, tagsPage.editDescriptionSaveButton());
}
@Test
@Order(4)
public void addTag() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
// Select the created listed team
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']"));
wait.until(ExpectedConditions.elementToBeClickable(By.name("name")));
Events.sendKeys(webDriver, By.name("name"), tagDisplayName);
Events.click(webDriver, By.cssSelector("[data-testid='boldButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.xpath(enterDescription));
Events.sendEnter(webDriver, By.xpath(enterDescription));
Events.click(webDriver, By.cssSelector("[data-testid='italicButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.xpath(enterDescription));
Events.sendEnter(webDriver, By.xpath(enterDescription));
Events.click(webDriver, By.cssSelector("[data-testid='linkButton']"));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[data-testid='saveButton']")));
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
Events.click(webDriver, tagsPage.addTagButton());
Events.sendKeys(webDriver, tagsPage.displayName(), tagDisplayName);
Events.click(webDriver, tagsPage.descriptionBoldButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.addDescriptionString());
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
Events.click(webDriver, tagsPage.descriptionItalicButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.addDescriptionString());
Events.sendEnter(webDriver, tagsPage.addDescriptionString());
Events.click(webDriver, tagsPage.descriptionLinkButton());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.descriptionSaveButton());
}
@Test
@Order(5)
public void changeTagDescription() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
// Select the created listed team
actions.moveToElement(webDriver.findElement(By.cssSelector("[data-testid='editTagDescription']"))).perform();
Events.click(webDriver, By.cssSelector("[data-testid='editTagDescription']"));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(enterDescription)));
Events.sendKeys(webDriver, By.xpath(enterDescription), faker.address().toString());
Events.click(webDriver, By.cssSelector("[data-testid='save']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
actions.moveToElement(webDriver.findElement(tagsPage.editTagDescription())).perform();
Events.click(webDriver, tagsPage.editTagDescription());
Events.sendKeys(webDriver, tagsPage.addDescriptionString(), faker.address().toString());
Events.click(webDriver, tagsPage.editDescriptionSaveButton());
}
@Test
@Order(6)
public void addAssociatedTag() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
// Select the created listed team
actions.moveToElement(webDriver.findElement(By.cssSelector("[data-testid='tags']"))).perform();
Events.click(webDriver, By.cssSelector("[data-testid='tags']"));
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
actions.moveToElement(webDriver.findElement(tagsPage.addAssociatedTagButton())).perform();
Events.click(webDriver, tagsPage.addAssociatedTagButton());
Events.click(webDriver, tagsPage.enterAssociatedTagName());
for (int i = 0; i <= 1; i++) {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "P");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']"));
Events.sendKeys(webDriver, tagsPage.enterAssociatedTagName(), "P");
Events.click(webDriver, tagsPage.tagListItem());
}
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, tagsPage.saveAssociatedTag());
}
@Test
@Order(7)
public void removeAssociatedTag() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
// Select the created listed team
actions.moveToElement(webDriver.findElement(By.cssSelector("[data-testid='tags']"))).perform();
Events.click(webDriver, By.cssSelector("[data-testid='tags']"));
Events.click(webDriver, By.cssSelector("[data-testid='remove']"));
Events.click(webDriver, By.cssSelector("[data-testid='remove']"));
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
actions.moveToElement(webDriver.findElement(tagsPage.addAssociatedTagButton())).perform();
Events.click(webDriver, tagsPage.addAssociatedTagButton());
for (int i = 0; i <= 1; i++) {
Events.click(webDriver, tagsPage.removeAssociatedTag());
}
Events.click(webDriver, tagsPage.saveAssociatedTag());
}
@Test
@Order(8)
public void addTagToTableColumn() throws InterruptedException {
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
Events.click(webDriver, By.cssSelector("[data-testid='sortBy']")); // Sort By
Events.click(webDriver, By.cssSelector("[data-testid='list-item']")); // Last Updated
Events.click(webDriver, By.xpath("(//button[@data-testid='table-link'])[last()]"));
Events.click(webDriver, tagsPage.closeWhatsNew());
Events.click(webDriver, tagsPage.headerExplore());
Events.click(webDriver, tagsPage.sortBy());
Events.click(webDriver, tagsPage.tagListItem());
Events.click(webDriver, tagsPage.lastTableLink());
Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(By.cssSelector("[data-testid='tags']"))).perform();
actions.moveToElement(webDriver.findElement(tagsPage.addAssociatedTagButton())).perform();
Thread.sleep(waitTime);
Events.click(webDriver, By.cssSelector("[data-testid='tags']"));
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']"));
Events.sendKeys(
webDriver, By.cssSelector("[data-testid='associatedTagName']"), tagCategoryDisplayName + "." + tagDisplayName);
Events.click(webDriver, By.cssSelector("[data-testid='list-item']"));
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
Events.click(webDriver, By.cssSelector("[data-testid='usage-count']"));
webDriver.navigate().refresh();
Events.click(webDriver, tagsPage.addAssociatedTagButton());
Events.click(webDriver, tagsPage.enterAssociatedTagName());
Events.sendKeys(webDriver, tagsPage.enterAssociatedTagName(), tagCategoryDisplayName + "." + tagDisplayName);
Events.click(webDriver, tagsPage.tagListItem());
Events.click(webDriver, tagsPage.saveAssociatedTag());
Events.click(webDriver, tagsPage.headerSettings());
Events.click(webDriver, tagsPage.headerSettingsTags());
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
Events.click(webDriver, tagsPage.tagUsageCount());
}
@Test
@Order(9)
public void checkAddedTagToTableColumn() {
Events.click(webDriver, By.cssSelector("[data-testid='closeWhatsNew']")); // Close What's new
Events.click(webDriver, By.cssSelector("[data-testid='tables']")); // Tables
Events.click(
webDriver,
By.cssSelector("[data-testid='checkbox'][id='" + tagCategoryDisplayName + "." + tagDisplayName + "']"));
Events.click(webDriver, By.xpath("//button[@data-testid='table-link']"));
Events.click(webDriver, tagsPage.closeWhatsNew());
Events.click(webDriver, tagsPage.tables());
Events.click(webDriver, tagsPage.tagFilter(tagCategoryDisplayName, tagDisplayName));
Events.click(webDriver, tagsPage.tableLink());
}
@Test
@Order(10)
public void removeTagFromTableColumn() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + tagCategoryDisplayName + "')]] "));
Events.click(webDriver, By.cssSelector("[data-testid='usage-count']"));
Events.click(webDriver, By.xpath("//button[@data-testid='table-link']"));
Thread.sleep(waitTime);
actions.moveToElement(webDriver.findElement(By.xpath("//div[@data-testid='tag-conatiner']//span"))).perform();
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span"));
Events.click(webDriver, By.cssSelector("[data-testid='remove']"));
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, tagsPage.containsText(tagCategoryDisplayName));
Events.click(webDriver, tagsPage.tagUsageCount());
Events.click(webDriver, tagsPage.tableLink());
// actions.moveToElement(webDriver.findElement(tagsPage.editAssociatedTagButton())).perform();
Events.click(webDriver, tagsPage.editAssociatedTagButton());
Events.click(webDriver, tagsPage.removeAssociatedTag());
Events.click(webDriver, tagsPage.saveAssociatedTag());
}
@Test
@Order(10)
public void addTagWithExistingName() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
Events.click(webDriver, By.cssSelector("[data-testid='add-new-tag-button']"));
wait.until(ExpectedConditions.elementToBeClickable(By.name("name")));
Events.sendKeys(webDriver, By.name("name"), "Personals");
Events.click(webDriver, By.cssSelector("[data-testid='saveButton']"));
Events.click(webDriver, By.cssSelector("[data-testid='appbar-item'][id='explore']")); // Explore
Events.click(webDriver, By.cssSelector("[data-testid='table-link']"));
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span"));
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']"));
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "Personals");
Events.click(webDriver, By.cssSelector("[data-testid='list-item']"));
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
Events.click(webDriver, tagsPage.containsText("PersonalData"));
Events.click(webDriver, tagsPage.addTagButton());
Events.sendKeys(webDriver, tagsPage.displayName(), "Personals");
Events.click(webDriver, tagsPage.descriptionSaveButton());
Events.click(webDriver, tagsPage.headerExplore());
Events.click(webDriver, tagsPage.tableLink());
Events.click(webDriver, tagsPage.editAssociatedTagButton());
Events.click(webDriver, tagsPage.enterAssociatedTagName());
Events.sendKeys(webDriver, tagsPage.enterAssociatedTagName(), "Personals");
Events.click(webDriver, tagsPage.tagListItem());
Events.click(webDriver, tagsPage.saveAssociatedTag());
Events.click(webDriver, tagsPage.headerSettings());
Events.click(webDriver, tagsPage.headerSettingsTags());
Events.click(webDriver, tagsPage.containsText("PersonalData"));
Thread.sleep(2000);
String usageCount =
webDriver
.findElement(By.xpath("(//div[@data-testid='usage'])[1]/a[@data-testid='usage-count']"))
.getAttribute("innerHTML");
String usageCount = webDriver.findElement(tagsPage.aTagUsageCountElementIndex(1)).getAttribute("innerHTML");
Assert.assertEquals(usageCount, "0");
}
@ -251,19 +235,13 @@ public class TagsPageTest {
@Order(11)
public void TagUsageCheck() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
Events.click(webDriver, By.xpath("(//a[@data-testid='usage-count'])[2]"));
Events.click(webDriver, tagsPage.containsText("PersonalData"));
Events.click(webDriver, tagsPage.usageCountElementIndex(2));
Thread.sleep(2000);
String beforeFilterCount =
webDriver
.findElement(By.xpath("(//button[@data-testid='tab'])[1]//span[@data-testid='filter-count']"))
.getAttribute("innerHTML");
Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[2]"));
Events.click(webDriver, By.xpath("(//button[@data-testid='tab'])[1]"));
String afterFilterCount =
webDriver
.findElement(By.xpath("(//button[@data-testid='tab'])[1]//span[@data-testid='filter-count']"))
.getAttribute("innerHTML");
String beforeFilterCount = webDriver.findElement(tagsPage.tagFilterCount(1)).getAttribute("innerHTML");
Events.click(webDriver, tagsPage.entityTabIndex(2));
Events.click(webDriver, tagsPage.entityTabIndex(1));
String afterFilterCount = webDriver.findElement(tagsPage.tagFilterCount(1)).getAttribute("innerHTML");
Assert.assertEquals(afterFilterCount, beforeFilterCount);
}
@ -271,20 +249,18 @@ public class TagsPageTest {
@Order(12)
public void removeTagWithExistingName() throws InterruptedException {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
Events.click(webDriver, By.xpath("(//a[@data-testid='usage-count'])[2]"));
Events.click(webDriver, By.cssSelector("[data-testid='table-link']"));
Events.click(webDriver, By.xpath("//div[@data-testid='tag-conatiner']//span"));
Events.click(webDriver, By.cssSelector("[data-testid='remove']"));
Events.click(webDriver, By.cssSelector("[data-testid='saveAssociatedTag']"));
Events.click(webDriver, By.cssSelector("[data-testid='menu-button'][id='menu-button-Settings']")); // Setting
Events.click(webDriver, By.cssSelector("[data-testid='menu-item-Tags']")); // Setting/Tags
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
Events.click(webDriver, tagsPage.containsText("PersonalData"));
Events.click(webDriver, tagsPage.usageCountElementIndex(2));
Events.click(webDriver, tagsPage.tableLink());
Events.click(webDriver, tagsPage.editAssociatedTagButton());
Events.click(webDriver, tagsPage.removeAssociatedTag());
Events.click(webDriver, tagsPage.saveAssociatedTag());
Events.click(webDriver, tagsPage.headerSettings());
Events.click(webDriver, tagsPage.headerSettingsTags());
Events.click(webDriver, tagsPage.containsText("PersonalData"));
Thread.sleep(2000);
String usageCount =
webDriver
.findElement(By.xpath("(//div[@data-testid='usage'])[2]/span[@data-testid='usage-count']"))
.getAttribute("innerHTML");
String usageCount = webDriver.findElement(tagsPage.spanTagUsageCountElementIndex(2)).getAttribute("innerHTML");
Assert.assertEquals(usageCount, "Not used");
}
@ -292,17 +268,15 @@ public class TagsPageTest {
@Order(13)
public void addSelfAssociatedTag() throws Exception {
openTagsPage();
Events.click(webDriver, By.xpath("//*[text()[contains(.,'" + "PersonalData" + "')]] "));
actions.moveToElement(webDriver.findElement(By.cssSelector("[data-testid='tags']"))).perform();
Events.click(webDriver, By.cssSelector("[data-testid='tags']"));
Events.click(webDriver, By.cssSelector("[data-testid='associatedTagName']"));
Events.click(webDriver, tagsPage.containsText("PersonalData"));
actions.moveToElement(webDriver.findElement(tagsPage.addAssociatedTagButton())).perform();
Events.click(webDriver, tagsPage.addAssociatedTagButton());
Events.click(webDriver, tagsPage.enterAssociatedTagName());
try {
Events.sendKeys(webDriver, By.cssSelector("[data-testid='associatedTagName']"), "PersonalData.Personal");
WebElement sameTag =
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[data-testid='list-item']")));
Events.sendKeys(webDriver, tagsPage.enterAssociatedTagName(), "PersonalData.Personal");
WebElement sameTag = webDriver.findElement(tagsPage.tagListItem());
if (sameTag.isDisplayed()) {
throw new Exception("Can add tag itself as it's associated tag");
Assert.fail();
}
} catch (TimeoutException exception) {
LOG.info("Success");