From 8fbd83aefb56c5424f4f47d92660d4db66355282 Mon Sep 17 00:00:00 2001 From: Seraphym-Tuhai Date: Thu, 12 Jan 2023 17:08:54 +0200 Subject: [PATCH] add tests on device profiles, asset profiles, fix older tests --- .../server/msa/TestRestClient.java | 37 ++++ .../server/msa/ui/base/AbstractBasePage.java | 5 + .../msa/ui/base/AbstractDriverBaseTest.java | 15 ++ .../msa/ui/pages/CustomerPageHelper.java | 16 +- .../msa/ui/pages/OtherPageElementsHelper.java | 10 +- .../msa/ui/pages/ProfilesPageElements.java | 72 +++++++- .../msa/ui/pages/ProfilesPageHelper.java | 58 ++++-- .../msa/ui/pages/RuleChainsPageHelper.java | 10 + .../msa/ui/pages/SideBarMenuViewElements.java | 5 + .../msa/ui/pages/SideBarMenuViewHelper.java | 5 + .../AssetProfileEditMenuTest.java | 128 +++++++++++++ .../CreateAssetProfileImportTest.java | 126 +++++++++++++ .../CreateAssetProfileTest.java | 174 ++++++++++++++++++ .../DeleteAssetProfileTest.java | 124 +++++++++++++ .../DeleteSeveralAssetProfilesTest.java | 103 +++++++++++ .../MakeAssetProfileDefaultTest.java | 78 ++++++++ .../SearchAssetProfileTest.java | 62 +++++++ .../assetProfileSmoke/SortByNameTest.java | 127 +++++++++++++ .../customerSmoke/CreateCustomerTest.java | 15 +- .../customerSmoke/CustomerEditMenuTest.java | 33 +--- .../customerSmoke/DeleteCustomerTest.java | 4 - .../DeleteSeveralCustomerTest.java | 4 - .../ManageCustomersAssetsTest.java | 1 - .../ManageCustomersDashboardsTest.java | 1 - .../ManageCustomersDevicesTest.java | 1 - .../ManageCustomersEdgesTest.java | 1 - .../ManageCustomersUsersTest.java | 1 - .../customerSmoke/SearchCustomerTest.java | 4 - .../tests/customerSmoke/SortByNameTest.java | 4 - .../CreateDeviceProfileImportTest.java | 18 +- .../CreateDeviceProfileTest.java | 46 +++-- .../DeleteDeviceProfileTest.java | 26 +-- .../DeleteSeveralDeviceProfilesTest.java | 8 +- .../DeviceProfileEditMenuTest.java | 11 +- .../MakeDeviceProfileDefaultTest.java | 9 +- .../SearchDeviceProfileTest.java | 4 - .../deviceProfileSmoke/SortByNameTest.java | 4 - .../CreateRuleChainImportTest.java | 4 - .../ruleChainsSmoke/CreateRuleChainTest.java | 4 - .../ruleChainsSmoke/DeleteRuleChainTest.java | 4 - .../DeleteSeveralRuleChainsTest.java | 4 - .../MakeRuleChainRootTest.java | 5 - .../ruleChainsSmoke/OpenRuleChainTest.java | 4 - .../RuleChainEditMenuTest.java | 34 ++-- .../ruleChainsSmoke/SearchRuleChainTest.java | 4 - .../tests/ruleChainsSmoke/SortByNameTest.java | 4 - .../tests/ruleChainsSmoke/SortByTimeTest.java | 4 - .../server/msa/ui/utils/Const.java | 4 + .../msa/ui/utils/DataProviderCredential.java | 10 + .../server/msa/ui/utils/EntityPrototypes.java | 29 +++ .../src/test/resources/all.xml | 10 + .../test/resources/assetProfileForImport.json | 10 + .../src/test/resources/smokesProfiles.xml | 1 + .../src/test/resources/uiTests.xml | 10 + 54 files changed, 1285 insertions(+), 210 deletions(-) create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/AssetProfileEditMenuTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileImportTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteAssetProfileTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteSeveralAssetProfilesTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/MakeAssetProfileDefaultTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SearchAssetProfileTest.java create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SortByNameTest.java create mode 100644 msa/black-box-tests/src/test/resources/assetProfileForImport.json diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java index 05d48de214..acf87f8b29 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/TestRestClient.java @@ -29,6 +29,8 @@ import io.restassured.specification.RequestSpecification; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.DeviceProfile; +import org.thingsboard.server.common.data.asset.AssetProfile; +import org.thingsboard.server.common.data.id.AssetProfileId; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DeviceId; import org.thingsboard.server.common.data.id.DeviceProfileId; @@ -322,6 +324,41 @@ public class TestRestClient { .statusCode(HTTP_OK); } + public AssetProfile postAssetProfile(AssetProfile assetProfile) { + return given().spec(requestSpec).body(assetProfile) + .post("/api/assetProfile") + .then() + .statusCode(HTTP_OK) + .extract() + .as(AssetProfile.class); + } + + public PageData getAssetProfiles(PageLink pageLink) { + Map params = new HashMap<>(); + addPageLinkToParam(params, pageLink); + return given().spec(requestSpec).queryParams(params) + .get("/api/assetProfiles") + .then() + .statusCode(HTTP_OK) + .extract() + .as(new TypeRef>() { + }); + } + + public void deleteAssetProfile(AssetProfileId assetProfileId) { + given().spec(requestSpec) + .delete("/api/assetProfile/{assetProfileId}", assetProfileId.getId()) + .then() + .statusCode(HTTP_OK); + } + + public void setDefaultAssetProfile(AssetProfileId assetProfileId) { + given().spec(requestSpec) + .post("/api/assetProfile/{assetProfileId}/default", assetProfileId.getId()) + .then() + .statusCode(HTTP_OK); + } + public Customer postCustomer(Customer customer) { return given().spec(requestSpec) .body(customer) diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java index dc8f5eadfe..72512c2ba9 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractBasePage.java @@ -142,6 +142,11 @@ abstract public class AbstractBasePage { js.executeScript("arguments[0].click();", element); } + public void enterText(WebElement element, CharSequence keysToEnter) { + element.click(); + element.sendKeys(keysToEnter); + } + public void scrollToElement(WebElement element) { js.executeScript("arguments[0].scrollIntoView(true);", element); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java index 18525be667..663d1bc640 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/base/AbstractDriverBaseTest.java @@ -38,6 +38,7 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.DeviceProfile; +import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.msa.AbstractContainerTest; @@ -49,6 +50,8 @@ import java.time.Duration; import java.util.stream.Collectors; import static org.thingsboard.server.msa.TestProperties.getBaseUiUrl; +import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; +import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; @Slf4j abstract public class AbstractDriverBaseTest extends AbstractContainerTest { @@ -66,6 +69,7 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { @BeforeMethod public void openBrowser() { log.info("===>>> Setup driver"); + testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); ChromeOptions options = new ChromeOptions(); options.setAcceptInsecureCerts(true); if (instance.isActive()) { @@ -77,6 +81,7 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { driver = new ChromeDriver(options); } driver.manage().window().setSize(dimension); + openLocalhost(); } @AfterMethod @@ -142,6 +147,16 @@ abstract public class AbstractDriverBaseTest extends AbstractContainerTest { } } + public static AssetProfile getAssetProfileByName(String name) { + try { + return testRestClient.getAssetProfiles(pageLink).getData().stream() + .filter(x -> x.getName().equals(name)).collect(Collectors.toList()).get(0); + } catch (Exception e) { + log.error("No such asset profile with name: " + name); + return null; + } + } + @SneakyThrows @Attachment(value = "Page screenshot", type = "image/png") public static byte[] captureScreen(WebDriver driver, String dirPath) { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java index 9956966a16..73c912662c 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/CustomerPageHelper.java @@ -30,7 +30,7 @@ public class CustomerPageHelper extends CustomerPageElements { private String country; private String dashboard; private String dashboardFromView; - + private String description; private String customerEmail; private String customerCountry; private String customerCity; @@ -63,6 +63,11 @@ public class CustomerPageHelper extends CustomerPageElements { this.dashboardFromView = editMenuDashboardField().getAttribute("value"); } + public void setDescription() { + scrollToElement(descriptionEntityView()); + this.description = descriptionEntityView().getAttribute("value"); + } + public String getDashboard() { return dashboard; } @@ -71,6 +76,10 @@ public class CustomerPageHelper extends CustomerPageElements { return dashboardFromView; } + public String getDescription() { + return description; + } + public void setCustomerEmail(String title) { this.customerEmail = email(title).getText(); } @@ -96,6 +105,7 @@ public class CustomerPageHelper extends CustomerPageElements { } public void changeTitleEditMenu(String newTitle) { + titleFieldEntityView().click(); titleFieldEntityView().clear(); wait.until(ExpectedConditions.textToBe(By.xpath(String.format(INPUT_FIELD, INPUT_FIELD_NAME_TITLE)), "")); titleFieldEntityView().sendKeys(newTitle); @@ -142,4 +152,8 @@ public class CustomerPageHelper extends CustomerPageElements { public void sortByNameDown() { doubleClick(sortByTitleBtn()); } + + public void addCustomerViewEnterName(CharSequence keysToEnter) { + enterText(titleFieldAddEntityView(), keysToEnter); + } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java index dbef06e7fe..33a3d34798 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/OtherPageElementsHelper.java @@ -49,13 +49,15 @@ public class OtherPageElementsHelper extends OtherPageElements { } } - public void changeNameEditMenu(String newName) { - nameFieldEditMenu().sendKeys(Keys.CONTROL + "a" + Keys.BACK_SPACE); - nameFieldEditMenu().sendKeys(newName); + public void changeNameEditMenu(CharSequence keysToSend) { + nameFieldEditMenu().click(); + nameFieldEditMenu().clear(); + nameFieldEditMenu().sendKeys(keysToSend); } public void changeDescription(String newDescription) { - descriptionEntityView().sendKeys(Keys.CONTROL + "a" + Keys.BACK_SPACE); + descriptionEntityView().click(); + descriptionEntityView().clear(); descriptionEntityView().sendKeys(newDescription); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageElements.java index 8497896a2d..df7510d886 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageElements.java @@ -26,41 +26,67 @@ public class ProfilesPageElements extends OtherPageElementsHelper { } private static final String CREATE_DEVICE_PROFILE_BTN = "//span[text()='Create new device profile']"; - private static final String IMPORT_PROFILE_BTN = "//span[text()='Import device profile']"; + private static final String CREATE_ASSET_PROFILE_BTN = "//span[text()='Create new asset profile']"; + private static final String IMPORT_DEVICE_PROFILE_BTN = "//span[text()='Import device profile']"; + private static final String IMPORT_ASSET_PROFILE_BTN = "//span[text()='Import asset profile']"; private static final String ADD_DEVICE_PROFILE_VIEW = "//tb-add-device-profile-dialog"; + private static final String ADD_ASSET_PROFILE_VIEW = "//tb-add-entity-dialog"; private static final String DEVICE_PROFILE_VIEW = "//tb-entity-details-panel"; private static final String NAME_FIELD = "//input[@formcontrolname='name']"; private static final String RULE_CHAIN_FIELD = "//input[@formcontrolname='ruleChainId']"; private static final String DASHBOARD_FIELD = "//input[@formcontrolname='dashboard']"; private static final String QUEUE_FIELD = "//input[@formcontrolname='queueName']"; private static final String DESCRIPTION_FIELD = "//textarea[@formcontrolname='description']"; - private static final String ADD_DEVICE_PROFILE_ADD_BTN = ADD_DEVICE_PROFILE_VIEW + "//span[text() = 'Add']/.."; - private static final String DEVISE_PROFILE_VIEW_DELETE_BTN = "//tb-device-profile//span[contains(text(),'Delete')]"; + private static final String ADD_DEVICE_PROFILE_ADD_BTN = "//span[text()='Add']"; + private static final String ADD_ASSET_PROFILE_ADD_BTN = "//button[@type='submit']"; + private static final String DEVICE_PROFILE_VIEW_DELETE_BTN = "//tb-device-profile//span[contains(text(),'Delete')]"; + private static final String ASSET_PROFILE_VIEW_DELETE_BTN = "//tb-entity-details-panel//span[contains(text(),'Delete')]"; private static final String PROFILE_NAMES = "//tbody/mat-row/mat-cell[contains(@class,'name')]"; private static final String MAKE_DEFAULT_BTN = ENTITY + "/../..//mat-icon[contains(text(),' flag')]/../.."; private static final String DEFAULT = ENTITY + "/../..//mat-icon[text() = 'check_box']"; - private static final String PROFILE_VIEW_MAKE_DEFAULT_BTN = "//span[text() = ' Make device profile default ']/.."; + private static final String DEVICE_PROFILE_VIEW_MAKE_DEFAULT_BTN = "//span[text() = ' Make device profile default ']/.."; + private static final String ASSET_PROFILE_VIEW_MAKE_DEFAULT_BTN = "//span[text() = ' Make asset profile default ']/.."; protected String getDeviseProfileViewDeleteBtn() { - return DEVISE_PROFILE_VIEW_DELETE_BTN; + return DEVICE_PROFILE_VIEW_DELETE_BTN; + } + + protected String getAssetProfileViewDeleteBtn() { + return ASSET_PROFILE_VIEW_DELETE_BTN; } public WebElement createNewDeviceProfileBtn() { return waitUntilElementToBeClickable(CREATE_DEVICE_PROFILE_BTN); } + public WebElement createNewAssetProfileBtn() { + return waitUntilElementToBeClickable(CREATE_ASSET_PROFILE_BTN); + } + public WebElement importDeviceProfileBtn() { - return waitUntilElementToBeClickable(IMPORT_PROFILE_BTN); + return waitUntilElementToBeClickable(IMPORT_DEVICE_PROFILE_BTN); + } + + public WebElement importAssetProfileBtn() { + return waitUntilElementToBeClickable(IMPORT_ASSET_PROFILE_BTN); } public WebElement addDeviceProfileView() { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW); } + public WebElement addAssetProfileView() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW); + } + public WebElement addDeviceProfileNameField() { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW + NAME_FIELD); } + public WebElement addAssetProfileNameField() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW + NAME_FIELD); + } + public WebElement profileViewNameField() { return waitUntilVisibilityOfElementLocated(DEVICE_PROFILE_VIEW + NAME_FIELD); } @@ -69,6 +95,10 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW + RULE_CHAIN_FIELD); } + public WebElement addAssetProfileRuleChainField() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW + RULE_CHAIN_FIELD); + } + public WebElement profileViewRuleChainField() { return waitUntilVisibilityOfElementLocated(DEVICE_PROFILE_VIEW + RULE_CHAIN_FIELD); } @@ -77,6 +107,10 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW + DASHBOARD_FIELD); } + public WebElement addAssetProfileMobileDashboardField() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW + DASHBOARD_FIELD); + } + public WebElement profileViewMobileDashboardField() { return waitUntilVisibilityOfElementLocated(DEVICE_PROFILE_VIEW + DASHBOARD_FIELD); } @@ -85,6 +119,10 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW + QUEUE_FIELD); } + public WebElement addAssetProfileQueueField() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW + QUEUE_FIELD); + } + public WebElement profileViewQueueField() { return waitUntilVisibilityOfElementLocated(DEVICE_PROFILE_VIEW + QUEUE_FIELD); } @@ -93,6 +131,10 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_VIEW + DESCRIPTION_FIELD); } + public WebElement addAssetDescriptionField() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_VIEW + DESCRIPTION_FIELD); + } + public WebElement profileViewDescriptionField() { return waitUntilVisibilityOfElementLocated(DEVICE_PROFILE_VIEW + DESCRIPTION_FIELD); } @@ -101,8 +143,16 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(ADD_DEVICE_PROFILE_ADD_BTN); } + public WebElement addAssetProfileAddBtn() { + return waitUntilElementToBeClickable(ADD_ASSET_PROFILE_ADD_BTN); + } + public WebElement deviceProfileViewDeleteBtn() { - return waitUntilElementToBeClickable(DEVISE_PROFILE_VIEW_DELETE_BTN); + return waitUntilElementToBeClickable(DEVICE_PROFILE_VIEW_DELETE_BTN); + } + + public WebElement assetProfileViewDeleteBtn() { + return waitUntilElementToBeClickable(ASSET_PROFILE_VIEW_DELETE_BTN); } public List profileNames() { @@ -117,7 +167,11 @@ public class ProfilesPageElements extends OtherPageElementsHelper { return waitUntilElementToBeClickable(String.format(DEFAULT, profileName)); } - public WebElement profileViewMakeDefaultBtn() { - return waitUntilElementToBeClickable(PROFILE_VIEW_MAKE_DEFAULT_BTN); + public WebElement deviceProfileViewMakeDefaultBtn() { + return waitUntilElementToBeClickable(DEVICE_PROFILE_VIEW_MAKE_DEFAULT_BTN); + } + + public WebElement assetProfileViewMakeDefaultBtn() { + return waitUntilElementToBeClickable(ASSET_PROFILE_VIEW_MAKE_DEFAULT_BTN); } } \ No newline at end of file diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageHelper.java index 07edfa9d62..afc25c75c9 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageHelper.java @@ -18,7 +18,6 @@ package org.thingsboard.server.msa.ui.pages; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; -import org.testng.Assert; public class ProfilesPageHelper extends ProfilesPageElements { public ProfilesPageHelper(WebDriver driver) { @@ -85,45 +84,83 @@ public class ProfilesPageHelper extends ProfilesPageElements { return this.profile; } - public void enterName(String name) { - addDeviceProfileNameField().click(); - addDeviceProfileNameField().sendKeys(name); + public void createDeviceProfileEnterName(CharSequence keysToEnter) { + enterText(addDeviceProfileNameField(), keysToEnter); } - public void chooseRuleChain(String ruleChain) { + public void addDeviceProfileViewChooseRuleChain(String ruleChain) { addDeviceProfileRuleChainField().click(); entityFromList(ruleChain).click(); } - public void chooseMobileDashboard(String mobileDashboard) { + public void addAssetProfileViewChooseRuleChain(String ruleChain) { + addAssetProfileRuleChainField().click(); + entityFromList(ruleChain).click(); + } + + public void addDeviceProfileViewChooseMobileDashboard(String mobileDashboard) { addDeviceProfileMobileDashboardField().click(); entityFromList(mobileDashboard).click(); } - public void chooseQueue(String queue) { + public void addAssetProfileViewChooseMobileDashboard(String mobileDashboard) { + addAssetProfileMobileDashboardField().click(); + entityFromList(mobileDashboard).click(); + } + + public void addDeviceProfileViewChooseQueue(String queue) { addDeviceProfileQueueField().click(); entityFromList(queue).click(); waitUntilAttributeContains(addDeviceProfileQueueField(), "aria-expanded", "false"); } - public void enterDescription(String description) { + public void addAssetsProfileViewChooseQueue(String queue) { + addAssetProfileQueueField().click(); + entityFromList(queue).click(); + waitUntilAttributeContains(addAssetProfileQueueField(), "aria-expanded", "false"); + } + + public void addDeviceProfileViewEnterDescription(String description) { addDeviceDescriptionField().sendKeys(description); } + public void addAssetProfileViewEnterDescription(String description) { + addAssetDescriptionField().sendKeys(description); + } + public void openCreateDeviceProfileView() { plusBtn().click(); createNewDeviceProfileBtn().click(); } + public void openCreateAssetProfileView() { + plusBtn().click(); + createNewAssetProfileBtn().click(); + } + + public void addAssetProfileViewEnterName(String name) { + addAssetProfileNameField().click(); + addAssetProfileNameField().sendKeys(name); + } + public void openImportDeviceProfileView() { plusBtn().click(); importDeviceProfileBtn().click(); } + public void openImportAssetProfileView() { + plusBtn().click(); + importAssetProfileBtn().click(); + } + public boolean deleteDeviceProfileFromViewBtnIsNotDisplayed() { return wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(getDeviseProfileViewDeleteBtn()))); } + public boolean deleteAssetProfileFromViewBtnIsNotDisplayed() { + return wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(getAssetProfileViewDeleteBtn()))); + } + public void goToProfileHelpPage() { jsClick(helpBtn()); goToNextTab(2); @@ -137,9 +174,8 @@ public class ProfilesPageHelper extends ProfilesPageElements { return elementsIsNotPresent(getEntity(name)); } - public void assertCheckBoxIsNotDisplayed(String name) { - wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//mat-checkbox)[2]"))); - Assert.assertFalse(driver.findElement(By.xpath(getCheckbox(name))).isDisplayed()); + public boolean checkBoxIsDisplayed(String name) { + return waitUntilPresenceOfElementLocated(getCheckbox(name)).isDisplayed(); } } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageHelper.java index b06b356722..d887b3571e 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/RuleChainsPageHelper.java @@ -47,6 +47,7 @@ public class RuleChainsPageHelper extends RuleChainsPageElements { } private String ruleChainName; + private String description; public void setRuleChainNameWithoutRoot() { this.ruleChainName = notRootRuleChainsNames().get(getRandomNumberFromRuleChainsCount()).getText(); @@ -56,6 +57,11 @@ public class RuleChainsPageHelper extends RuleChainsPageElements { this.ruleChainName = notRootRuleChainsNames().get(number).getText(); } + public void setDescription() { + scrollToElement(descriptionEntityView()); + this.description = descriptionEntityView().getAttribute("value"); + } + public void setRuleChainName(int number) { this.ruleChainName = allNames().get(number).getText(); } @@ -64,6 +70,10 @@ public class RuleChainsPageHelper extends RuleChainsPageElements { return this.ruleChainName; } + public String getDescription() { + return description; + } + public String deleteRuleChainFromView(String ruleChainName) { String s = ""; if (deleteBtnFromView() != null) { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewElements.java index b62a7acfe0..f84cdaac65 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewElements.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewElements.java @@ -29,6 +29,7 @@ public class SideBarMenuViewElements extends AbstractBasePage { private static final String DASHBOARD_BTN = "//mat-toolbar//a[@href='/dashboards']"; private static final String PROFILES_BTN = "//mat-toolbar//a[@href='/profiles']"; private static final String DEVICE_PROFILE_BTN = "//mat-toolbar//a[@href='/profiles/deviceProfiles']"; + private static final String ASSET_PROFILE_BTN = "//mat-toolbar//a[@href='/profiles/assetProfiles']"; public WebElement ruleChainsBtn() { return waitUntilElementToBeClickable(RULE_CHAINS_BTN); @@ -49,4 +50,8 @@ public class SideBarMenuViewElements extends AbstractBasePage { public WebElement deviceProfileBtn() { return waitUntilElementToBeClickable(DEVICE_PROFILE_BTN); } + + public WebElement assetProfileBtn() { + return waitUntilElementToBeClickable(ASSET_PROFILE_BTN); + } } \ No newline at end of file diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewHelper.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewHelper.java index 35aa7f8e86..bf5e925a17 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewHelper.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/SideBarMenuViewHelper.java @@ -26,4 +26,9 @@ public class SideBarMenuViewHelper extends SideBarMenuViewElements { profilesBtn().click(); deviceProfileBtn().click(); } + + public void openAssetProfiles() { + profilesBtn().click(); + assetProfileBtn().click(); + } } \ No newline at end of file diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/AssetProfileEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/AssetProfileEditMenuTest.java new file mode 100644 index 0000000000..061b09788b --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/AssetProfileEditMenuTest.java @@ -0,0 +1,128 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.openqa.selenium.Keys; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.DataProviderCredential; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.base.AbstractBasePage.getRandomNumber; +import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_ASSET_PROFILE_MESSAGE; +import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; + +public class AssetProfileEditMenuTest extends AbstractDriverBaseTest { + + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void delete() { + if (name != null) { + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + name = null; + } + } + + @Test(priority = 10, groups = "smoke") + @Description + public void changeName() { + String name = ENTITY_NAME; + String newName = "Changed" + getRandomNumber(); + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + profilesPage.setHeaderName(); + String nameBefore = profilesPage.getHeaderName(); + jsClick(profilesPage.editPencilBtn()); + profilesPage.changeNameEditMenu(newName); + profilesPage.doneBtnEditView().click(); + this.name = newName; + profilesPage.setHeaderName(); + String nameAfter = profilesPage.getHeaderName(); + + Assert.assertNotEquals(nameBefore, nameAfter); + Assert.assertEquals(nameAfter, newName); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void deleteName() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + jsClick(profilesPage.editPencilBtn()); + profilesPage.changeNameEditMenu(""); + + Assert.assertFalse(profilesPage.doneBtnEditViewVisible().isEnabled()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void saveWithOnlySpaceInName() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + jsClick(profilesPage.editPencilBtn()); + profilesPage.changeNameEditMenu(Keys.SPACE); + profilesPage.doneBtnEditView().click(); + + Assert.assertNotNull(profilesPage.warningMessage()); + Assert.assertTrue(profilesPage.warningMessage().isDisplayed()); + Assert.assertEquals(profilesPage.warningMessage().getText(), EMPTY_ASSET_PROFILE_MESSAGE); + } + + @Test(priority = 30, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "editMenuDescription") + @Description + public void editDescription(String description, String newDescription, String finalDescription) { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name, description)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + jsClick(profilesPage.editPencilBtn()); + profilesPage.profileViewDescriptionField().sendKeys(newDescription); + profilesPage.doneBtnEditView().click(); + profilesPage.setDescription(); + + Assert.assertEquals(profilesPage.getDescription(), finalDescription); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileImportTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileImportTest.java new file mode 100644 index 0000000000..ac4cf8683a --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileImportTest.java @@ -0,0 +1,126 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_IMPORT_MESSAGE; +import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_ASSET_PROFILE_FILE_NAME; +import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_ASSET_PROFILE_NAME; +import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_TXT_FILE_NAME; +import static org.thingsboard.server.msa.ui.utils.Const.SAME_NAME_WARNING_ASSET_PROFILE_MESSAGE; + +public class CreateAssetProfileImportTest extends AbstractDriverBaseTest { + + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private final String absolutePathToFileImportAssetProfile = getClass().getClassLoader().getResource(IMPORT_ASSET_PROFILE_FILE_NAME).getPath(); + private final String absolutePathToFileImportTxt = getClass().getClassLoader().getResource(IMPORT_TXT_FILE_NAME).getPath(); + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void delete() { + if (name != null) { + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + name = null; + } + } + + @Test(priority = 20, groups = "smoke") + @Description + public void importAssetProfile() { + sideBarMenuView.openAssetProfiles(); + profilesPage.openImportAssetProfileView(); + profilesPage.browseFile().sendKeys(absolutePathToFileImportAssetProfile); + profilesPage.importBrowseFileBtn().click(); + name = IMPORT_ASSET_PROFILE_NAME; + profilesPage.refreshBtn().click(); + + Assert.assertNotNull(profilesPage.entity(IMPORT_ASSET_PROFILE_NAME)); + Assert.assertTrue(profilesPage.entity(IMPORT_ASSET_PROFILE_NAME).isDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void importTxtFile() { + sideBarMenuView.openDeviceProfiles(); + profilesPage.openImportDeviceProfileView(); + profilesPage.browseFile().sendKeys(absolutePathToFileImportTxt); + + Assert.assertNotNull(profilesPage.importingFile(EMPTY_IMPORT_MESSAGE)); + Assert.assertTrue(profilesPage.importingFile(EMPTY_IMPORT_MESSAGE).isDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void addFileToImportAndRemove() { + sideBarMenuView.openAssetProfiles(); + profilesPage.openImportAssetProfileView(); + profilesPage.browseFile().sendKeys(absolutePathToFileImportAssetProfile); + profilesPage.clearImportFileBtn().click(); + + Assert.assertNotNull(profilesPage.importingFile(EMPTY_IMPORT_MESSAGE)); + Assert.assertTrue(profilesPage.importingFile(EMPTY_IMPORT_MESSAGE).isDisplayed()); + Assert.assertTrue(profilesPage.entityIsNotPresent(IMPORT_ASSET_PROFILE_NAME)); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void importAssetProfileWithSameName() { + String name = IMPORT_ASSET_PROFILE_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.openImportAssetProfileView(); + profilesPage.browseFile().sendKeys(absolutePathToFileImportAssetProfile); + profilesPage.importBrowseFileBtn().click(); + profilesPage.refreshBtn().click(); + + Assert.assertNotNull(profilesPage.warningMessage()); + Assert.assertTrue(profilesPage.warningMessage().isDisplayed()); + Assert.assertEquals(profilesPage.warningMessage().getText(), SAME_NAME_WARNING_ASSET_PROFILE_MESSAGE); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void importAssetProfileWithoutRefresh() { + sideBarMenuView.openAssetProfiles(); + profilesPage.openImportAssetProfileView(); + profilesPage.browseFile().sendKeys(absolutePathToFileImportAssetProfile); + profilesPage.importBrowseFileBtn().click(); + name = IMPORT_ASSET_PROFILE_NAME; + + Assert.assertNotNull(profilesPage.entity(IMPORT_ASSET_PROFILE_NAME)); + Assert.assertTrue(profilesPage.entity(IMPORT_ASSET_PROFILE_NAME).isDisplayed()); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java new file mode 100644 index 0000000000..764f21b7d5 --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/CreateAssetProfileTest.java @@ -0,0 +1,174 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_ASSET_PROFILE_MESSAGE; +import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; +import static org.thingsboard.server.msa.ui.utils.Const.SAME_NAME_WARNING_ASSET_PROFILE_MESSAGE; + +public class CreateAssetProfileTest extends AbstractDriverBaseTest { + + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void delete() { + if (name != null) { + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + name = null; + } + } + + @Test(priority = 10, groups = "smoke") + @Description + public void createAssetProfile() { + String name = ENTITY_NAME; + + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + profilesPage.addAssetProfileViewEnterName(name); + profilesPage.addAssetProfileAddBtn().click(); + this.name = name; + profilesPage.refreshBtn().click(); + + Assert.assertNotNull(profilesPage.entity(name)); + Assert.assertTrue(profilesPage.entity(name).isDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void createAssetProfileWithDetails() { + String name = ENTITY_NAME; + String ruleChain = "Root Rule Chain"; + String mobileDashboard = "Firmware"; + String queue = "Main"; + String description = "Description"; + + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + profilesPage.addAssetProfileViewEnterName(name); + profilesPage.addAssetProfileViewChooseRuleChain(ruleChain); + profilesPage.addAssetProfileViewChooseMobileDashboard(mobileDashboard); + profilesPage.addAssetsProfileViewChooseQueue(queue); + profilesPage.addAssetProfileViewEnterDescription(description); + profilesPage.addAssetProfileAddBtn().click(); + this.name = name; + profilesPage.refreshBtn().click(); + profilesPage.entity(name).click(); + profilesPage.setName(); + profilesPage.setRuleChain(); + profilesPage.setMobileDashboard(); + profilesPage.setQueue(); + profilesPage.setDescription(); + + Assert.assertNotNull(profilesPage.entity(name)); + Assert.assertTrue(profilesPage.entity(name).isDisplayed()); + Assert.assertEquals(name, profilesPage.getName()); + Assert.assertEquals(ruleChain, profilesPage.getRuleChain()); + Assert.assertEquals(mobileDashboard, profilesPage.getMobileDashboard()); + Assert.assertEquals(queue, profilesPage.getQueue()); + Assert.assertEquals(description, profilesPage.getDescription()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void createAssetProfileWithSameName() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + profilesPage.addAssetProfileViewEnterName(name); + profilesPage.addAssetProfileAddBtn().click(); + + Assert.assertNotNull(profilesPage.warningMessage()); + Assert.assertTrue(profilesPage.warningMessage().isDisplayed()); + Assert.assertEquals(profilesPage.warningMessage().getText(), SAME_NAME_WARNING_ASSET_PROFILE_MESSAGE); + Assert.assertNotNull(profilesPage.addAssetProfileView()); + Assert.assertTrue(profilesPage.addAssetProfileView().isDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void createAssetProfileWithoutName() { + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + + Assert.assertFalse(profilesPage.addBtnV().isEnabled()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void createAssetProfileWithOnlySpaceInName() { + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + profilesPage.addAssetProfileViewEnterName(" "); + profilesPage.addAssetProfileAddBtn().click(); + + Assert.assertNotNull(profilesPage.warningMessage()); + Assert.assertTrue(profilesPage.warningMessage().isDisplayed()); + Assert.assertEquals(profilesPage.warningMessage().getText(), EMPTY_ASSET_PROFILE_MESSAGE); + Assert.assertNotNull(profilesPage.addAssetProfileView()); + Assert.assertTrue(profilesPage.addAssetProfileView().isDisplayed()); + } + + @Test(priority = 30, groups = "smoke") + @Description + public void createAssetProfileWithoutRefresh() { + String name = ENTITY_NAME; + + sideBarMenuView.openAssetProfiles(); + profilesPage.openCreateAssetProfileView(); + profilesPage.addAssetProfileViewEnterName(name); + profilesPage.addAssetProfileAddBtn().click(); + this.name = name; + + Assert.assertNotNull(profilesPage.entity(name)); + Assert.assertTrue(profilesPage.entity(name).isDisplayed()); + } + + @Test(priority = 40, groups = "smoke") + @Description + public void documentation() { + String urlPath = "docs/user-guide/asset-profiles/"; + + sideBarMenuView.openAssetProfiles(); + profilesPage.allEntity().get(0).click(); + profilesPage.goToProfileHelpPage(); + + Assert.assertTrue(urlContains(urlPath)); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteAssetProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteAssetProfileTest.java new file mode 100644 index 0000000000..100f0664ea --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteAssetProfileTest.java @@ -0,0 +1,124 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; + +public class DeleteAssetProfileTest extends AbstractDriverBaseTest { + + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void removeAssetProfile() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.deleteBtn(name).click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.refreshBtn(); + + Assert.assertTrue(profilesPage.entityIsNotPresent(name)); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void removeAssetProfileFromView() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + profilesPage.assetProfileViewDeleteBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.refreshBtn(); + + Assert.assertTrue(profilesPage.entityIsNotPresent(name)); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void removeSelectedAssetProfile() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.checkBox(name).click(); + profilesPage.deleteSelectedBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.refreshBtn(); + + Assert.assertTrue(profilesPage.entityIsNotPresent(name)); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void removeDefaultAssetProfile() { + sideBarMenuView.openAssetProfiles(); + + Assert.assertFalse(profilesPage.deleteBtn("default").isEnabled()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void removeDefaultAssetProfileFromView() { + sideBarMenuView.openAssetProfiles(); + profilesPage.entity("default").click(); + + Assert.assertTrue(profilesPage.deleteAssetProfileFromViewBtnIsNotDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void removeSelectedDefaultAssetProfile() { + sideBarMenuView.openAssetProfiles(); + + Assert.assertNotNull(profilesPage.presentCheckBox("default")); + Assert.assertFalse(profilesPage.presentCheckBox("default").isDisplayed()); + } + + @Test(priority = 30, groups = "smoke") + @Description + public void removeAssetProfileWithoutRefresh() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.deleteBtn(name).click(); + profilesPage.warningPopUpYesBtn().click(); + + Assert.assertTrue(profilesPage.entityIsNotPresent(name)); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteSeveralAssetProfilesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteSeveralAssetProfilesTest.java new file mode 100644 index 0000000000..af5bcbd490 --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/DeleteSeveralAssetProfilesTest.java @@ -0,0 +1,103 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; + +public class DeleteSeveralAssetProfilesTest extends AbstractDriverBaseTest { + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void canDeleteSeveralAssetProfilesByTopBtn() { + String name1 = ENTITY_NAME + "1"; + String name2 = ENTITY_NAME + "2"; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name1)); + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name2)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.clickOnCheckBoxes(2); + profilesPage.deleteSelectedBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.refreshBtn().click(); + + Assert.assertTrue(profilesPage.profileIsNotPresent(name1)); + Assert.assertTrue(profilesPage.profileIsNotPresent(name2)); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void selectAllDAssetProfiles() { + String name1 = ENTITY_NAME + "1"; + String name2 = ENTITY_NAME + "2"; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name1)); + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name2)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.selectAllCheckBox().click(); + profilesPage.deleteSelectedBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.refreshBtn().click(); + + Assert.assertTrue(profilesPage.profileIsNotPresent(name1)); + Assert.assertTrue(profilesPage.profileIsNotPresent(name2)); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void removeDefaultAssetProfile() { + sideBarMenuView.openAssetProfiles(); + profilesPage.selectAllCheckBox().click(); + + Assert.assertFalse(profilesPage.checkBoxIsDisplayed("default")); + Assert.assertFalse(profilesPage.deleteBtn("default").isEnabled()); + } + + @Test(priority = 30, groups = "smoke") + @Description + public void deleteSeveralAssetProfilesByTopBtnWithoutRefresh() { + String name1 = ENTITY_NAME + "1"; + String name2 = ENTITY_NAME + "2"; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name1)); + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name2)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.clickOnCheckBoxes(2); + profilesPage.deleteSelectedBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + + Assert.assertTrue(profilesPage.profileIsNotPresent(name1)); + Assert.assertTrue(profilesPage.profileIsNotPresent(name2)); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/MakeAssetProfileDefaultTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/MakeAssetProfileDefaultTest.java new file mode 100644 index 0000000000..7fd637f75e --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/MakeAssetProfileDefaultTest.java @@ -0,0 +1,78 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; + +public class MakeAssetProfileDefaultTest extends AbstractDriverBaseTest { + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void makeProfileDefault() { + testRestClient.setDefaultAssetProfile(getAssetProfileByName("default").getId()); + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void makeDeviceProfileDefaultByRightCornerBtn() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.makeProfileDefaultBtn(name).click(); + profilesPage.warningPopUpYesBtn().click(); + + Assert.assertTrue(profilesPage.defaultCheckbox(name).isDisplayed()); + } + + @Test(priority = 10, groups = "smoke") + @Description + public void makeDeviceProfileDefaultFromView() { + String name = ENTITY_NAME; + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.entity(name).click(); + profilesPage.assetProfileViewMakeDefaultBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.closeEntityViewBtn().click(); + + Assert.assertTrue(profilesPage.defaultCheckbox(name).isDisplayed()); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SearchAssetProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SearchAssetProfileTest.java new file mode 100644 index 0000000000..03d89572a4 --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SearchAssetProfileTest.java @@ -0,0 +1,62 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.DataProviderCredential; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; + +public class SearchAssetProfileTest extends AbstractDriverBaseTest { + + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void delete() { + if (name != null) { + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + name = null; + } + } + + @Test(priority = 10, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "assetProfileSearch") + @Description + public void searchFirstWord(String name, String namePath) { + testRestClient.postAssetProfile(EntityPrototypes.defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.searchEntity(namePath); + + profilesPage.allEntity().forEach(x -> Assert.assertTrue(x.getText().contains(namePath))); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SortByNameTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SortByNameTest.java new file mode 100644 index 0000000000..a9e7473cba --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/assetProfileSmoke/SortByNameTest.java @@ -0,0 +1,127 @@ +/** + * Copyright © 2016-2022 The Thingsboard Authors + * + * 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.thingsboard.server.msa.ui.tests.assetProfileSmoke; + +import io.qameta.allure.Description; +import org.testng.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; +import org.thingsboard.server.msa.ui.pages.LoginPageHelper; +import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; +import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; +import org.thingsboard.server.msa.ui.utils.DataProviderCredential; + +import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultAssetProfile; + +public class SortByNameTest extends AbstractDriverBaseTest { + private SideBarMenuViewHelper sideBarMenuView; + private ProfilesPageHelper profilesPage; + private String name; + + @BeforeMethod + public void login() { + new LoginPageHelper(driver).authorizationTenant(); + sideBarMenuView = new SideBarMenuViewHelper(driver); + profilesPage = new ProfilesPageHelper(driver); + } + + @AfterMethod + public void delete() { + if (name != null) { + testRestClient.deleteAssetProfile(getAssetProfileByName(name).getId()); + name = null; + } + } + + @Test(priority = 10, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "nameForSort") + @Description + public void specialCharacterUp(String name) { + testRestClient.postAssetProfile(defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.sortByNameBtn().click(); + profilesPage.setProfileName(); + + Assert.assertEquals(profilesPage.getProfileName(), name); + } + + @Test(priority = 20, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "nameForAllSort") + @Description + public void allSortUp(String assetProfile, String assetProfileSymbol, String assetProfileNumber) { + testRestClient.postAssetProfile(defaultAssetProfile(assetProfileSymbol)); + testRestClient.postAssetProfile(defaultAssetProfile(assetProfile)); + testRestClient.postAssetProfile(defaultAssetProfile(assetProfileNumber)); + + sideBarMenuView.openAssetProfiles(); + profilesPage.sortByNameBtn().click(); + profilesPage.setProfileName(0); + String firstAssetProfile = profilesPage.getProfileName(); + profilesPage.setProfileName(1); + String secondAssetProfile = profilesPage.getProfileName(); + profilesPage.setProfileName(2); + String thirdAssetProfile = profilesPage.getProfileName(); + + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfile).getId()); + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfileNumber).getId()); + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfileSymbol).getId()); + + Assert.assertEquals(firstAssetProfile, assetProfileSymbol); + Assert.assertEquals(secondAssetProfile, assetProfileNumber); + Assert.assertEquals(thirdAssetProfile, assetProfile); + } + + @Test(priority = 10, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "nameForSort") + @Description + public void specialCharacterDown(String name) { + testRestClient.postAssetProfile(defaultAssetProfile(name)); + this.name = name; + + sideBarMenuView.openAssetProfiles(); + profilesPage.sortByNameDown(); + profilesPage.setProfileName(profilesPage.allEntity().size() - 1); + + Assert.assertEquals(profilesPage.getProfileName(), name); + } + + @Test(priority = 20, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "nameForAllSort") + @Description + public void allSortDown(String assetProfile, String assetProfileSymbol, String assetProfileNumber) { + testRestClient.postAssetProfile(defaultAssetProfile(assetProfileSymbol)); + testRestClient.postAssetProfile(defaultAssetProfile(assetProfile)); + testRestClient.postAssetProfile(defaultAssetProfile(assetProfileNumber)); + + sideBarMenuView.openAssetProfiles(); + int lastIndex = profilesPage.allEntity().size() - 1; + profilesPage.sortByNameDown(); + profilesPage.setProfileName(lastIndex); + String firstAssetProfile = profilesPage.getProfileName(); + profilesPage.setProfileName(lastIndex - 1); + String secondAssetProfile = profilesPage.getProfileName(); + profilesPage.setProfileName(lastIndex - 2); + String thirdAssetProfile = profilesPage.getProfileName(); + + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfile).getId()); + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfileNumber).getId()); + testRestClient.deleteAssetProfile(getAssetProfileByName(assetProfileSymbol).getId()); + + Assert.assertEquals(firstAssetProfile, assetProfileSymbol); + Assert.assertEquals(secondAssetProfile, assetProfileNumber); + Assert.assertEquals(thirdAssetProfile, assetProfile); + } +} diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CreateCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CreateCustomerTest.java index 50aac8de11..cc356a6e48 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CreateCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CreateCustomerTest.java @@ -16,6 +16,7 @@ package org.thingsboard.server.msa.ui.tests.customerSmoke; import io.qameta.allure.Description; +import org.openqa.selenium.Keys; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; @@ -28,8 +29,6 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_CUSTOMER_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; import static org.thingsboard.server.msa.ui.utils.Const.SAME_NAME_WARNING_CUSTOMER_MESSAGE; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class CreateCustomerTest extends AbstractDriverBaseTest { @@ -39,9 +38,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); } @@ -61,7 +58,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.plusBtn().click(); - customerPage.titleFieldAddEntityView().sendKeys(customerName); + customerPage.addCustomerViewEnterName(customerName); customerPage.addBtnC().click(); this.customerName = customerName; customerPage.refreshBtn().click(); @@ -80,7 +77,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.plusBtn().click(); - customerPage.titleFieldAddEntityView().sendKeys(customerName); + customerPage.addCustomerViewEnterName(customerName); customerPage.selectCountryAddEntityView(); customerPage.descriptionAddEntityView().sendKeys(text); customerPage.cityAddEntityView().sendKeys(text); @@ -128,7 +125,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { public void createCustomerWithOnlySpace() { sideBarMenuView.customerBtn().click(); customerPage.plusBtn().click(); - customerPage.titleFieldAddEntityView().sendKeys(" "); + customerPage.addCustomerViewEnterName(Keys.SPACE); customerPage.addBtnC().click(); Assert.assertNotNull(customerPage.warningMessage()); @@ -145,7 +142,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { customerPage.setCustomerName(); String customerName = customerPage.getCustomerName(); customerPage.plusBtn().click(); - customerPage.titleFieldAddEntityView().sendKeys(customerName); + customerPage.addCustomerViewEnterName(customerName); customerPage.addBtnC().click(); Assert.assertNotNull(customerPage.warningMessage()); @@ -162,7 +159,7 @@ public class CreateCustomerTest extends AbstractDriverBaseTest { sideBarMenuView.customerBtn().click(); customerPage.plusBtn().click(); - customerPage.titleFieldAddEntityView().sendKeys(customerName); + customerPage.addCustomerViewEnterName(customerName); customerPage.addBtnC().click(); this.customerName = customerName; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java index 2ced125d70..5917c79c74 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/CustomerEditMenuTest.java @@ -26,13 +26,12 @@ import org.thingsboard.server.msa.ui.pages.DashboardPageHelper; import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; import static org.thingsboard.server.msa.ui.base.AbstractBasePage.getRandomNumber; import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_CUSTOMER_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; import static org.thingsboard.server.msa.ui.utils.Const.PHONE_NUMBER_ERROR_MESSAGE; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultCustomerPrototype; public class CustomerEditMenuTest extends AbstractDriverBaseTest { @@ -44,9 +43,7 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); dashboardPage = new DashboardPageHelper(driver); @@ -109,31 +106,21 @@ public class CustomerEditMenuTest extends AbstractDriverBaseTest { Assert.assertEquals(customerPage.getCustomerName(), customerPage.getHeaderName()); } - @Test(priority = 20, groups = "smoke") + @Test(priority = 20, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "editMenuDescription") @Description - public void editDescription() { - String customerName = ENTITY_NAME; - testRestClient.postCustomer(defaultCustomerPrototype(customerName)); - this.customerName = customerName; - String description = "Description"; + public void editDescription(String description, String newDescription, String finalDescription) { + String name = ENTITY_NAME; + testRestClient.postCustomer(EntityPrototypes.defaultCustomerPrototype(name, description)); + customerName = name; sideBarMenuView.customerBtn().click(); - customerPage.entityTitles().get(0).click(); + customerPage.entity(name).click(); customerPage.editPencilBtn().click(); - customerPage.descriptionEntityView().sendKeys(description); - customerPage.doneBtnEditView().click(); - String description1 = customerPage.descriptionEntityView().getAttribute("value"); - customerPage.editPencilBtn().click(); - customerPage.descriptionEntityView().sendKeys(description); - customerPage.doneBtnEditView().click(); - String description2 = customerPage.descriptionEntityView().getAttribute("value"); - customerPage.editPencilBtn().click(); - customerPage.changeDescription(""); + customerPage.descriptionEntityView().sendKeys(newDescription); customerPage.doneBtnEditView().click(); + customerPage.setDescription(); - Assert.assertEquals(description, description1); - Assert.assertEquals(description + description, description2); - Assert.assertTrue(customerPage.descriptionEntityView().getAttribute("value").isEmpty()); + Assert.assertEquals(customerPage.getDescription(), finalDescription); } @Test(priority = 20, groups = "smoke") diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java index 43c6fc8c27..0b1854ecf7 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteCustomerTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultCustomerPrototype; public class DeleteCustomerTest extends AbstractDriverBaseTest { @@ -38,9 +36,7 @@ public class DeleteCustomerTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); ruleChainsPage = new RuleChainsPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java index 06005075c3..33375d516f 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/DeleteSeveralCustomerTest.java @@ -25,8 +25,6 @@ import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultCustomerPrototype; public class DeleteSeveralCustomerTest extends AbstractDriverBaseTest { @@ -36,9 +34,7 @@ public class DeleteSeveralCustomerTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java index cfcf80c664..3b5e089494 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersAssetsTest.java @@ -32,7 +32,6 @@ public class ManageCustomersAssetsTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java index 50b6e895c8..3e29142a65 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDashboardsTest.java @@ -31,7 +31,6 @@ public class ManageCustomersDashboardsTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java index 6b5d3b80fd..8c944396d0 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersDevicesTest.java @@ -31,7 +31,6 @@ public class ManageCustomersDevicesTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java index 051658eb00..9f1000b967 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersEdgesTest.java @@ -32,7 +32,6 @@ public class ManageCustomersEdgesTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java index 509bacefc0..87266e56f3 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/ManageCustomersUsersTest.java @@ -32,7 +32,6 @@ public class ManageCustomersUsersTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SearchCustomerTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SearchCustomerTest.java index 7a1a4694bc..848a1cccc5 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SearchCustomerTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SearchCustomerTest.java @@ -25,8 +25,6 @@ import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultCustomerPrototype; public class SearchCustomerTest extends AbstractDriverBaseTest { @@ -36,9 +34,7 @@ public class SearchCustomerTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SortByNameTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SortByNameTest.java index 728696ac6f..96c881d6be 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SortByNameTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/customerSmoke/SortByNameTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultCustomerPrototype; public class SortByNameTest extends AbstractDriverBaseTest { @@ -37,9 +35,7 @@ public class SortByNameTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); customerPage = new CustomerPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileImportTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileImportTest.java index f83b2b19e5..e66daf5a17 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileImportTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileImportTest.java @@ -31,8 +31,6 @@ import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_DEVICE_PROFILE_FI import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_DEVICE_PROFILE_NAME; import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_TXT_FILE_NAME; import static org.thingsboard.server.msa.ui.utils.Const.SAME_NAME_WARNING_DEVICE_PROFILE_MESSAGE; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { @@ -44,9 +42,7 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } @@ -59,7 +55,8 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { } } - @Test + @Test(priority = 10, groups = "smoke") + @Description public void importDeviceProfile() { sideBarMenuView.openDeviceProfiles(); profilesPage.openImportDeviceProfileView(); @@ -72,7 +69,8 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entity(IMPORT_DEVICE_PROFILE_NAME).isDisplayed()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void importTxtFile() { sideBarMenuView.openDeviceProfiles(); profilesPage.openImportDeviceProfileView(); @@ -82,7 +80,7 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.importingFile(EMPTY_IMPORT_MESSAGE).isDisplayed()); } - @Test(groups = "smoke") + @Test(priority = 20, groups = "smoke") @Description public void addFileTiImportAndRemove() { sideBarMenuView.openDeviceProfiles(); @@ -95,7 +93,8 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entityIsNotPresent(IMPORT_DEVICE_PROFILE_NAME)); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void importDeviceProfileWithSameName() { String name = IMPORT_DEVICE_PROFILE_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); @@ -112,7 +111,8 @@ public class CreateDeviceProfileImportTest extends AbstractDriverBaseTest { Assert.assertEquals(profilesPage.warningMessage().getText(), SAME_NAME_WARNING_DEVICE_PROFILE_MESSAGE); } - @Test + @Test(priority = 30, groups = "smoke") + @Description public void importDeviceProfileWithoutRefresh() { sideBarMenuView.openDeviceProfiles(); profilesPage.openImportDeviceProfileView(); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java index 1cff37f5e6..6060c63ecf 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/CreateDeviceProfileTest.java @@ -31,8 +31,6 @@ import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_DEVICE_PROFILE_MES import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; import static org.thingsboard.server.msa.ui.utils.Const.NAME_IS_REQUIRED_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.SAME_NAME_WARNING_DEVICE_PROFILE_MESSAGE; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class CreateDeviceProfileTest extends AbstractDriverBaseTest { @@ -42,9 +40,7 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } @@ -57,14 +53,14 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { } } - @Test + @Test(priority = 10, groups = "smoke") + @Description public void createDeviceProfile() { String name = ENTITY_NAME; sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); - profilesPage.addDeviceProfileNameField().click(); - profilesPage.addDeviceProfileNameField().sendKeys(name); + profilesPage.createDeviceProfileEnterName(name); profilesPage.addDeviceProfileAddBtn().click(); this.name = name; profilesPage.refreshBtn().click(); @@ -73,7 +69,8 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entity(name).isDisplayed()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void createDeviceProfileWithDetails() { String name = ENTITY_NAME; String ruleChain = "Root Rule Chain"; @@ -83,11 +80,11 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); - profilesPage.enterName(name); - profilesPage.chooseRuleChain(ruleChain); - profilesPage.chooseMobileDashboard(mobileDashboard); - profilesPage.chooseQueue(queue); - profilesPage.enterDescription(description); + profilesPage.createDeviceProfileEnterName(name); + profilesPage.addDeviceProfileViewChooseRuleChain(ruleChain); + profilesPage.addDeviceProfileViewChooseMobileDashboard(mobileDashboard); + profilesPage.addDeviceProfileViewChooseQueue(queue); + profilesPage.addDeviceProfileViewEnterDescription(description); profilesPage.addDeviceProfileAddBtn().click(); this.name = name; profilesPage.refreshBtn().click(); @@ -107,7 +104,8 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertEquals(description, profilesPage.getDescription()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void createDeviseProfileWithSameName() { String name = ENTITY_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); @@ -115,8 +113,7 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); - profilesPage.addDeviceProfileNameField().click(); - profilesPage.addDeviceProfileNameField().sendKeys(name); + profilesPage.createDeviceProfileEnterName(name); profilesPage.addDeviceProfileAddBtn().click(); Assert.assertNotNull(profilesPage.warningMessage()); @@ -126,7 +123,8 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.addDeviceProfileView().isDisplayed()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void createDeviceProfileWithoutName() { sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); @@ -138,12 +136,12 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertEquals(profilesPage.errorMessage().getText(), NAME_IS_REQUIRED_MESSAGE); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void createDeviseProfileWithOnlySpaceInName() { sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); - profilesPage.addDeviceProfileNameField().click(); - profilesPage.addDeviceProfileNameField().sendKeys(Keys.SPACE); + profilesPage.createDeviceProfileEnterName(Keys.SPACE); profilesPage.addDeviceProfileAddBtn().click(); Assert.assertNotNull(profilesPage.warningMessage()); @@ -153,14 +151,14 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.addDeviceProfileView().isDisplayed()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void createDeviceProfileWithoutRefresh() { String name = ENTITY_NAME; sideBarMenuView.openDeviceProfiles(); profilesPage.openCreateDeviceProfileView(); - profilesPage.addDeviceProfileNameField().click(); - profilesPage.addDeviceProfileNameField().sendKeys(name); + profilesPage.createDeviceProfileEnterName(name); profilesPage.addDeviceProfileAddBtn().click(); this.name = name; @@ -168,7 +166,7 @@ public class CreateDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entity(name).isDisplayed()); } - @Test(groups = "smoke") + @Test(priority = 30, groups = "smoke") @Description public void documentation() { String urlPath = "docs/user-guide/device-profiles/"; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteDeviceProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteDeviceProfileTest.java index 409a94c4e1..6ccb23aaf3 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteDeviceProfileTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteDeviceProfileTest.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.msa.ui.tests.deviceProfileSmoke; +import io.qameta.allure.Description; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -25,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; import org.thingsboard.server.msa.ui.utils.EntityPrototypes; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { @@ -35,14 +34,13 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } - @Test + @Test(priority = 10, groups = "smoke") + @Description public void removeDeviceProfile() { String name = ENTITY_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); @@ -55,7 +53,8 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entityIsNotPresent(name)); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void removeDeviceProfileFromView() { String name = ENTITY_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); @@ -69,7 +68,8 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entityIsNotPresent(name)); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void removeSelectedDeviceProfile() { String name = ENTITY_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); @@ -83,14 +83,16 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.entityIsNotPresent(name)); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void removeDefaultDeviceProfile() { sideBarMenuView.openDeviceProfiles(); Assert.assertFalse(profilesPage.deleteBtn("default").isEnabled()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void removeDefaultDeviceProfileFromView() { sideBarMenuView.openDeviceProfiles(); profilesPage.entity("default").click(); @@ -98,7 +100,8 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.deleteDeviceProfileFromViewBtnIsNotDisplayed()); } - @Test + @Test(priority = 20, groups = "smoke") + @Description public void removeSelectedDefaultDeviceProfile() { sideBarMenuView.openDeviceProfiles(); @@ -106,7 +109,8 @@ public class DeleteDeviceProfileTest extends AbstractDriverBaseTest { Assert.assertFalse(profilesPage.presentCheckBox("default").isDisplayed()); } - @Test + @Test(priority = 30, groups = "smoke") + @Description public void removeDeviceProfileWithoutRefresh() { String name = ENTITY_NAME; testRestClient.postDeviceProfile(EntityPrototypes.defaultDeviceProfile(name)); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteSeveralDeviceProfilesTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteSeveralDeviceProfilesTest.java index 058eb86aac..71169cfa7e 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteSeveralDeviceProfilesTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeleteSeveralDeviceProfilesTest.java @@ -25,8 +25,6 @@ import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultDeviceProfile; public class DeleteSeveralDeviceProfilesTest extends AbstractDriverBaseTest { @@ -35,9 +33,7 @@ public class DeleteSeveralDeviceProfilesTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } @@ -60,7 +56,7 @@ public class DeleteSeveralDeviceProfilesTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.profileIsNotPresent(name2)); } - @Test(priority = 10, groups = "smoke") + @Test(priority = 20, groups = "smoke") @Description public void selectAllDeviceProfiles() { sideBarMenuView.openDeviceProfiles(); @@ -78,7 +74,7 @@ public class DeleteSeveralDeviceProfilesTest extends AbstractDriverBaseTest { sideBarMenuView.openDeviceProfiles(); profilesPage.selectAllCheckBox().click(); - profilesPage.assertCheckBoxIsNotDisplayed("default"); + Assert.assertFalse(profilesPage.checkBoxIsDisplayed("default")); Assert.assertFalse(profilesPage.deleteBtn("default").isEnabled()); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeviceProfileEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeviceProfileEditMenuTest.java index f1ac6c6d8f..fa1d5e3608 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeviceProfileEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/DeviceProfileEditMenuTest.java @@ -16,6 +16,7 @@ package org.thingsboard.server.msa.ui.tests.deviceProfileSmoke; import io.qameta.allure.Description; +import org.openqa.selenium.Keys; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; @@ -30,8 +31,6 @@ import org.thingsboard.server.msa.ui.utils.EntityPrototypes; import static org.thingsboard.server.msa.ui.base.AbstractBasePage.getRandomNumber; import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_DEVICE_PROFILE_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class DeviceProfileEditMenuTest extends AbstractDriverBaseTest { @@ -41,9 +40,7 @@ public class DeviceProfileEditMenuTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } @@ -94,7 +91,7 @@ public class DeviceProfileEditMenuTest extends AbstractDriverBaseTest { Assert.assertFalse(profilesPage.doneBtnEditViewVisible().isEnabled()); } - @Test(priority = 10, groups = "smoke") + @Test(priority = 20, groups = "smoke") @Description public void saveWithOnlySpaceInName() { String name = ENTITY_NAME; @@ -104,7 +101,7 @@ public class DeviceProfileEditMenuTest extends AbstractDriverBaseTest { sideBarMenuView.openDeviceProfiles(); profilesPage.entity(name).click(); jsClick(profilesPage.editPencilBtn()); - profilesPage.changeNameEditMenu(" "); + profilesPage.changeNameEditMenu(Keys.SPACE); profilesPage.doneBtnEditView().click(); Assert.assertNotNull(profilesPage.warningMessage()); @@ -112,7 +109,7 @@ public class DeviceProfileEditMenuTest extends AbstractDriverBaseTest { Assert.assertEquals(profilesPage.warningMessage().getText(), EMPTY_DEVICE_PROFILE_MESSAGE); } - @Test(priority = 10, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "editMenuDescription") + @Test(priority = 30, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "editMenuDescription") @Description public void editDescription(String description, String newDescription, String finalDescription) { String name = ENTITY_NAME; diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java index eb29c1e18a..6b52dfd1db 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java @@ -25,18 +25,13 @@ import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; - public class MakeDeviceProfileDefaultTest extends AbstractDriverBaseTest { private SideBarMenuViewHelper sideBarMenuView; private ProfilesPageHelper profilesPage; @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } @@ -58,14 +53,14 @@ public class MakeDeviceProfileDefaultTest extends AbstractDriverBaseTest { Assert.assertTrue(profilesPage.defaultCheckbox(profile).isDisplayed()); } - @Test(priority = 20, groups = "smoke") + @Test(priority = 10, groups = "smoke") @Description public void makeDeviceProfileDefaultFromView() { sideBarMenuView.openDeviceProfiles(); profilesPage.setProfileName(); String profile = profilesPage.getProfileName(); profilesPage.entity(profile).click(); - profilesPage.profileViewMakeDefaultBtn().click(); + profilesPage.deviceProfileViewMakeDefaultBtn().click(); profilesPage.warningPopUpYesBtn().click(); profilesPage.closeEntityViewBtn().click(); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SearchDeviceProfileTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SearchDeviceProfileTest.java index 350d11b865..a8706f42ee 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SearchDeviceProfileTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SearchDeviceProfileTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultDeviceProfile; public class SearchDeviceProfileTest extends AbstractDriverBaseTest { @@ -38,9 +36,7 @@ public class SearchDeviceProfileTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SortByNameTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SortByNameTest.java index d4aa73b261..bc5ff155ab 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SortByNameTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/SortByNameTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.ProfilesPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultDeviceProfile; public class SortByNameTest extends AbstractDriverBaseTest { @@ -37,9 +35,7 @@ public class SortByNameTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewHelper(driver); profilesPage = new ProfilesPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java index 2bc4875584..58afd758c9 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainImportTest.java @@ -32,8 +32,6 @@ import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_IMPORT_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_RULE_CHAIN_FILE_NAME; import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_RULE_CHAIN_NAME; import static org.thingsboard.server.msa.ui.utils.Const.IMPORT_TXT_FILE_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class CreateRuleChainImportTest extends AbstractDriverBaseTest { @@ -46,9 +44,7 @@ public class CreateRuleChainImportTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); openRuleChainPage = new OpenRuleChainPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainTest.java index b60b4a4a52..f3d27a5eba 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/CreateRuleChainTest.java @@ -30,8 +30,6 @@ import java.util.ArrayList; import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_RULE_CHAIN_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class CreateRuleChainTest extends AbstractDriverBaseTest { @@ -41,9 +39,7 @@ public class CreateRuleChainTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java index d605b6c0e9..a3a318f060 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteRuleChainTest.java @@ -27,8 +27,6 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.DELETE_RULE_CHAIN_WITH_PROFILE_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; import static org.thingsboard.server.msa.ui.utils.Const.ROOT_RULE_CHAIN_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class DeleteRuleChainTest extends AbstractDriverBaseTest { @@ -37,9 +35,7 @@ public class DeleteRuleChainTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java index bd6b8f73da..9ab089d0f3 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/DeleteSeveralRuleChainsTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; import static org.thingsboard.server.msa.ui.utils.Const.ROOT_RULE_CHAIN_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class DeleteSeveralRuleChainsTest extends AbstractDriverBaseTest { @@ -37,9 +35,7 @@ public class DeleteSeveralRuleChainsTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java index f63e65cc25..89e9756678 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/MakeRuleChainRootTest.java @@ -25,9 +25,6 @@ import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; - public class MakeRuleChainRootTest extends AbstractDriverBaseTest { private SideBarMenuViewElements sideBarMenuView; @@ -35,9 +32,7 @@ public class MakeRuleChainRootTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/OpenRuleChainTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/OpenRuleChainTest.java index db2919c914..ce17b5517d 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/OpenRuleChainTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/OpenRuleChainTest.java @@ -28,8 +28,6 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.EntityPrototypes; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; public class OpenRuleChainTest extends AbstractDriverBaseTest { @@ -40,9 +38,7 @@ public class OpenRuleChainTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); openRuleChainPage = new OpenRuleChainPageHelper(driver); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/RuleChainEditMenuTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/RuleChainEditMenuTest.java index 3a7ea071bb..48e1c87927 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/RuleChainEditMenuTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/RuleChainEditMenuTest.java @@ -24,11 +24,11 @@ import org.thingsboard.server.msa.ui.base.AbstractDriverBaseTest; import org.thingsboard.server.msa.ui.pages.LoginPageHelper; import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; +import org.thingsboard.server.msa.ui.utils.DataProviderCredential; +import org.thingsboard.server.msa.ui.utils.EntityPrototypes; import static org.thingsboard.server.msa.ui.utils.Const.EMPTY_RULE_CHAIN_MESSAGE; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class RuleChainEditMenuTest extends AbstractDriverBaseTest { @@ -39,9 +39,7 @@ public class RuleChainEditMenuTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } @@ -110,31 +108,21 @@ public class RuleChainEditMenuTest extends AbstractDriverBaseTest { Assert.assertEquals(ruleChainsPage.warningMessage().getText(), EMPTY_RULE_CHAIN_MESSAGE); } - @Test(priority = 20, groups = "smoke") + @Test(priority = 20, groups = "smoke", dataProviderClass = DataProviderCredential.class, dataProvider = "editMenuDescription") @Description - public void editDescription() { - String ruleChainName = ENTITY_NAME; - testRestClient.postRuleChain(defaultRuleChainPrototype(ruleChainName)); - this.ruleChainName = ruleChainName; - String description = "Description"; + public void editDescription(String description, String newDescription, String finalDescription) { + String name = ENTITY_NAME; + testRestClient.postRuleChain(EntityPrototypes.defaultRuleChainPrototype(name, description)); + ruleChainName = name; sideBarMenuView.ruleChainsBtn().click(); - ruleChainsPage.detailsBtn(ruleChainName).click(); + ruleChainsPage.detailsBtn(name).click(); ruleChainsPage.editPencilBtn().click(); - ruleChainsPage.descriptionEntityView().sendKeys(description); - ruleChainsPage.doneBtnEditView().click(); - String description1 = ruleChainsPage.descriptionEntityView().getAttribute("value"); - ruleChainsPage.editPencilBtn().click(); - ruleChainsPage.descriptionEntityView().sendKeys(description); - ruleChainsPage.doneBtnEditView().click(); - String description2 = ruleChainsPage.descriptionEntityView().getAttribute("value"); - ruleChainsPage.editPencilBtn().click(); - ruleChainsPage.changeDescription(""); + ruleChainsPage.descriptionEntityView().sendKeys(newDescription); ruleChainsPage.doneBtnEditView().click(); + ruleChainsPage.setDescription(); - Assert.assertTrue(ruleChainsPage.descriptionEntityView().getAttribute("value").isEmpty()); - Assert.assertEquals(description, description1); - Assert.assertEquals(description + description, description2); + Assert.assertEquals(ruleChainsPage.getDescription(), finalDescription); } @Test(priority = 20, groups = "smoke") diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SearchRuleChainTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SearchRuleChainTest.java index 8594147c99..374c7085f5 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SearchRuleChainTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SearchRuleChainTest.java @@ -25,8 +25,6 @@ import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class SearchRuleChainTest extends AbstractDriverBaseTest { @@ -36,9 +34,7 @@ public class SearchRuleChainTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByNameTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByNameTest.java index 6b9de5d1d1..04dead029a 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByNameTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByNameTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import org.thingsboard.server.msa.ui.utils.DataProviderCredential; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class SortByNameTest extends AbstractDriverBaseTest { @@ -38,9 +36,7 @@ public class SortByNameTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByTimeTest.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByTimeTest.java index 4d08ccc42c..2919dcd6b3 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByTimeTest.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/ruleChainsSmoke/SortByTimeTest.java @@ -26,8 +26,6 @@ import org.thingsboard.server.msa.ui.pages.RuleChainsPageHelper; import org.thingsboard.server.msa.ui.pages.SideBarMenuViewElements; import static org.thingsboard.server.msa.ui.utils.Const.ENTITY_NAME; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_EMAIL; -import static org.thingsboard.server.msa.ui.utils.Const.TENANT_PASSWORD; import static org.thingsboard.server.msa.ui.utils.EntityPrototypes.defaultRuleChainPrototype; public class SortByTimeTest extends AbstractDriverBaseTest { @@ -38,9 +36,7 @@ public class SortByTimeTest extends AbstractDriverBaseTest { @BeforeMethod public void login() { - openLocalhost(); new LoginPageHelper(driver).authorizationTenant(); - testRestClient.login(TENANT_EMAIL, TENANT_PASSWORD); sideBarMenuView = new SideBarMenuViewElements(driver); ruleChainsPage = new RuleChainsPageHelper(driver); } diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/Const.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/Const.java index 41c5e42424..eb4cd14771 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/Const.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/Const.java @@ -27,16 +27,20 @@ public class Const { public static final String ROOT_RULE_CHAIN_NAME = "Root Rule Chain"; public static final String IMPORT_RULE_CHAIN_NAME = "Rule Chain For Import"; public static final String IMPORT_DEVICE_PROFILE_NAME = "Device Profile For Import"; + public static final String IMPORT_ASSET_PROFILE_NAME = "Asset Profile For Import"; public static final String IMPORT_RULE_CHAIN_FILE_NAME = "ruleChainForImport.json"; public static final String IMPORT_DEVICE_PROFILE_FILE_NAME = "deviceProfileForImport.json"; + public static final String IMPORT_ASSET_PROFILE_FILE_NAME = "assetProfileForImport.json"; public static final String IMPORT_TXT_FILE_NAME = "forImport.txt"; public static final String EMPTY_IMPORT_MESSAGE = "No file selected"; public static final String EMPTY_RULE_CHAIN_MESSAGE = "Rule chain name should be specified!"; public static final String EMPTY_CUSTOMER_MESSAGE = "Customer title should be specified!"; public static final String EMPTY_DEVICE_PROFILE_MESSAGE = "Device profile name should be specified!"; + public static final String EMPTY_ASSET_PROFILE_MESSAGE = "Asset profile name should be specified!"; public static final String DELETE_RULE_CHAIN_WITH_PROFILE_MESSAGE = "The rule chain referenced by the device profiles cannot be deleted!"; public static final String SAME_NAME_WARNING_CUSTOMER_MESSAGE = "Customer with such title already exists!"; public static final String SAME_NAME_WARNING_DEVICE_PROFILE_MESSAGE = "Device profile with such name already exists!"; + public static final String SAME_NAME_WARNING_ASSET_PROFILE_MESSAGE = "Asset profile with such name already exists!"; public static final String PHONE_NUMBER_ERROR_MESSAGE = "Phone number is invalid or not possible"; public static final String NAME_IS_REQUIRED_MESSAGE = "Name is required."; } \ No newline at end of file diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/DataProviderCredential.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/DataProviderCredential.java index 70e393bd9d..44b8f7769c 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/DataProviderCredential.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/DataProviderCredential.java @@ -34,6 +34,7 @@ public class DataProviderCredential { private static final String RULE_CHAIN_FIRST_WORD_NAME_PATH = "Root"; private static final String CUSTOMER_FIRST_WORD_NAME_PATH = "A"; private static final String DEFAULT_DEVICE_PROFILE_NAME = "Device Profile"; + private static final String DEFAULT_ASSET_PROFILE_NAME = "Asset Profile"; @DataProvider public static Object[][] ruleChainNameForSearchByFirstAndSecondWord() { @@ -87,6 +88,15 @@ public class DataProviderCredential { {NAME, String.valueOf(getRandomSymbol())}}; } + @DataProvider + public static Object[][] assetProfileSearch() { + return new Object[][]{ + {DEFAULT_ASSET_PROFILE_NAME, DEFAULT_ASSET_PROFILE_NAME.split(" ")[0]}, + {DEFAULT_ASSET_PROFILE_NAME, DEFAULT_ASSET_PROFILE_NAME.split(" ")[1]}, + {NAME, ENTITY_NAME.split("`")[1]}, + {NAME, String.valueOf(getRandomSymbol())}}; + } + @DataProvider public static Object[][] editMenuDescription() { String newDescription = "Description" + getRandomNumber(); diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java index 5d0c18e887..0f32768af8 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/utils/EntityPrototypes.java @@ -15,11 +15,13 @@ */ package org.thingsboard.server.msa.ui.utils; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.Customer; import org.thingsboard.server.common.data.DeviceProfile; import org.thingsboard.server.common.data.DeviceProfileProvisionType; import org.thingsboard.server.common.data.DeviceProfileType; import org.thingsboard.server.common.data.DeviceTransportType; +import org.thingsboard.server.common.data.asset.AssetProfile; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileConfiguration; import org.thingsboard.server.common.data.device.profile.DefaultDeviceProfileTransportConfiguration; import org.thingsboard.server.common.data.device.profile.DeviceProfileData; @@ -34,12 +36,26 @@ public class EntityPrototypes { return customer; } + public static Customer defaultCustomerPrototype(String entityName, String description) { + Customer customer = new Customer(); + customer.setTitle(entityName); + customer.setAdditionalInfo(JacksonUtil.newObjectNode().put("description", description)); + return customer; + } + public static RuleChain defaultRuleChainPrototype(String entityName) { RuleChain ruleChain = new RuleChain(); ruleChain.setName(entityName); return ruleChain; } + public static RuleChain defaultRuleChainPrototype(String entityName, String description) { + RuleChain ruleChain = new RuleChain(); + ruleChain.setName(entityName); + ruleChain.setAdditionalInfo(JacksonUtil.newObjectNode().put("description", description)); + return ruleChain; + } + public static DeviceProfile defaultDeviceProfile(String entityName) { DeviceProfile deviceProfile = new DeviceProfile(); deviceProfile.setName(entityName); @@ -68,4 +84,17 @@ public class EntityPrototypes { deviceProfile.setProfileData(deviceProfileData); return deviceProfile; } + + public static AssetProfile defaultAssetProfile(String entityName) { + AssetProfile assetProfile = new AssetProfile(); + assetProfile.setName(entityName); + return assetProfile; + } + + public static AssetProfile defaultAssetProfile(String entityName, String description) { + AssetProfile assetProfile = new AssetProfile(); + assetProfile.setName(entityName); + assetProfile.setDescription(description); + return assetProfile; + } } diff --git a/msa/black-box-tests/src/test/resources/all.xml b/msa/black-box-tests/src/test/resources/all.xml index dfb947bb1a..e308b2854d 100644 --- a/msa/black-box-tests/src/test/resources/all.xml +++ b/msa/black-box-tests/src/test/resources/all.xml @@ -57,4 +57,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/msa/black-box-tests/src/test/resources/assetProfileForImport.json b/msa/black-box-tests/src/test/resources/assetProfileForImport.json new file mode 100644 index 0000000000..b42d77f998 --- /dev/null +++ b/msa/black-box-tests/src/test/resources/assetProfileForImport.json @@ -0,0 +1,10 @@ +{ + "name": "Asset Profile For Import", + "description": null, + "image": null, + "defaultRuleChainId": null, + "defaultDashboardId": null, + "defaultQueueName": null, + "externalId": null, + "default": false +} \ No newline at end of file diff --git a/msa/black-box-tests/src/test/resources/smokesProfiles.xml b/msa/black-box-tests/src/test/resources/smokesProfiles.xml index 43dd2b917a..3d9400f8df 100644 --- a/msa/black-box-tests/src/test/resources/smokesProfiles.xml +++ b/msa/black-box-tests/src/test/resources/smokesProfiles.xml @@ -30,6 +30,7 @@ + \ No newline at end of file diff --git a/msa/black-box-tests/src/test/resources/uiTests.xml b/msa/black-box-tests/src/test/resources/uiTests.xml index ef6130233f..1a52096ce1 100644 --- a/msa/black-box-tests/src/test/resources/uiTests.xml +++ b/msa/black-box-tests/src/test/resources/uiTests.xml @@ -52,4 +52,14 @@ + + + + + + + + + + \ No newline at end of file