54 changed files with 1285 additions and 210 deletions
@ -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); |
|||
} |
|||
} |
|||
@ -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()); |
|||
} |
|||
} |
|||
@ -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)); |
|||
} |
|||
} |
|||
@ -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)); |
|||
} |
|||
} |
|||
@ -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)); |
|||
} |
|||
} |
|||
@ -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()); |
|||
} |
|||
} |
|||
@ -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))); |
|||
} |
|||
} |
|||
@ -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); |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
{ |
|||
"name": "Asset Profile For Import", |
|||
"description": null, |
|||
"image": null, |
|||
"defaultRuleChainId": null, |
|||
"defaultDashboardId": null, |
|||
"defaultQueueName": null, |
|||
"externalId": null, |
|||
"default": false |
|||
} |
|||
Loading…
Reference in new issue