From 70a7b2c9381af4cd97c5086036c7b3b86fbffea3 Mon Sep 17 00:00:00 2001 From: Serafym Tuhai Date: Wed, 4 Jan 2023 18:28:35 +0200 Subject: [PATCH] add tests on make default device profile --- .../server/msa/TestRestClient.java | 7 +++ .../msa/ui/pages/ProfilesPageElements.java | 15 +++++ .../msa/ui/pages/ProfilesPageHelper.java | 1 - .../MakeDeviceProfileDefaultTest.java | 60 +++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java 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 c809d926d2..05d48de214 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 @@ -315,6 +315,13 @@ public class TestRestClient { .statusCode(HTTP_OK); } + public void setDefaultDeviceProfile(DeviceProfileId deviceProfileId) { + given().spec(requestSpec) + .post("/api/deviceProfile/{deviceProfileId}/default", deviceProfileId.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/pages/ProfilesPageElements.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/pages/ProfilesPageElements.java index 0dde961ac9..8497896a2d 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 @@ -37,6 +37,9 @@ public class ProfilesPageElements extends OtherPageElementsHelper { 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 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 ']/.."; protected String getDeviseProfileViewDeleteBtn() { return DEVISE_PROFILE_VIEW_DELETE_BTN; @@ -105,4 +108,16 @@ public class ProfilesPageElements extends OtherPageElementsHelper { public List profileNames() { return waitUntilElementsToBeClickable(PROFILE_NAMES); } + + public WebElement makeProfileDefaultBtn(String profileName) { + return waitUntilElementToBeClickable(String.format(MAKE_DEFAULT_BTN, profileName)); + } + + public WebElement defaultCheckbox(String profileName) { + return waitUntilElementToBeClickable(String.format(DEFAULT, profileName)); + } + + public WebElement profileViewMakeDefaultBtn() { + return waitUntilElementToBeClickable(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 b9d9f53608..0e22348e14 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 @@ -16,7 +16,6 @@ package org.thingsboard.server.msa.ui.pages; import org.openqa.selenium.By; -import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.ExpectedConditions; 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 new file mode 100644 index 0000000000..c65a985302 --- /dev/null +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ui/tests/deviceProfileSmoke/MakeDeviceProfileDefaultTest.java @@ -0,0 +1,60 @@ +package org.thingsboard.server.msa.ui.tests.deviceProfileSmoke; + +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 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); + } + + @AfterMethod + public void delete() { + testRestClient.setDefaultDeviceProfile(getDeviceProfileByName("default").getId()); + } + + + @Test(priority = 10, groups = "smoke") + @Description + public void makeRuleChainRootByRightCornerBtn() { + sideBarMenuView.openDeviceProfiles(); + profilesPage.setProfileName(); + String profile = profilesPage.getProfileName(); + profilesPage.makeProfileDefaultBtn(profile).click(); + profilesPage.warningPopUpYesBtn().click(); + + Assert.assertTrue(profilesPage.defaultCheckbox(profile).isDisplayed()); + } + + @Test(priority = 20, groups = "smoke") + @Description + public void makeRuleChainRootFromView() { + sideBarMenuView.openDeviceProfiles(); + profilesPage.setProfileName(); + String profile = profilesPage.getProfileName(); + profilesPage.entity(profile).click(); + profilesPage.profileViewMakeDefaultBtn().click(); + profilesPage.warningPopUpYesBtn().click(); + profilesPage.closeEntityViewBtn().click(); + + Assert.assertTrue(profilesPage.defaultCheckbox(profile).isDisplayed()); + } +}