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