add tests on search
This commit is contained in:
parent
f7c0be609d
commit
32c6b7385f
@ -3,14 +3,18 @@ package org.thingsboard.server.msa.ui.pages;
|
|||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
import org.openqa.selenium.WebElement;
|
import org.openqa.selenium.WebElement;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class AlarmElements extends OtherPageElements{
|
public class AlarmElements extends OtherPageElements{
|
||||||
public AlarmElements(WebDriver driver) {
|
public AlarmElements(WebDriver driver) {
|
||||||
super(driver);
|
super(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String ASSIGN_BTN = "//mat-icon[contains(text(),'keyboard_arrow_down')]/parent::button";
|
private static final String ASSIGN_BTN = "//mat-icon[contains(text(),'keyboard_arrow_down')]/parent::button";
|
||||||
private static final String USER_ASSIGN_DROPDOWN = "//div[contains(@class,'tb-assignee')]//span[contains(text(),'%s')]";
|
private static final String USER_ASSIGN_DROPDOWN = "//div[@class='user-display-name']/span[contains(text(),'%s')]";
|
||||||
private static final String ASSIGN_USER_DISPLAY_NAME = "//span[text()='%s']/ancestor::mat-row//span[@class='user-display-name']";
|
private static final String ASSIGN_USERS_DISPLAY_NAME = "//div[@class='user-display-name']/span";
|
||||||
|
private static final String ASSIGN_USER_DISPLAY_NAME = "//span[@class='user-display-name'][contains(text(),'%s')]";
|
||||||
|
private static final String SEARCH_FIELD = "//input[@placeholder='Search users']";
|
||||||
|
|
||||||
public WebElement assignBtn() {
|
public WebElement assignBtn() {
|
||||||
return waitUntilElementToBeClickable(ASSIGN_BTN);
|
return waitUntilElementToBeClickable(ASSIGN_BTN);
|
||||||
@ -20,7 +24,15 @@ public class AlarmElements extends OtherPageElements{
|
|||||||
return waitUntilElementToBeClickable(String.format(USER_ASSIGN_DROPDOWN, userEmail));
|
return waitUntilElementToBeClickable(String.format(USER_ASSIGN_DROPDOWN, userEmail));
|
||||||
}
|
}
|
||||||
|
|
||||||
public WebElement assignUserDisplayName(String userEmail) {
|
public WebElement assignedUser(String userEmail) {
|
||||||
return waitUntilElementToBeClickable(String.format(ASSIGN_USER_DISPLAY_NAME, userEmail));
|
return waitUntilElementToBeClickable(String.format(ASSIGN_USER_DISPLAY_NAME, userEmail));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<WebElement> assignUsers() {
|
||||||
|
return waitUntilElementsToBeClickable(ASSIGN_USERS_DISPLAY_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WebElement searchUserField() {
|
||||||
|
return waitUntilElementToBeClickable(SEARCH_FIELD);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,11 @@
|
|||||||
package org.thingsboard.server.msa.ui.pages;
|
package org.thingsboard.server.msa.ui.pages;
|
||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.WebElement;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class AlarmHelper extends AlarmElements {
|
public class AlarmHelper extends AlarmElements {
|
||||||
public AlarmHelper(WebDriver driver) {
|
public AlarmHelper(WebDriver driver) {
|
||||||
@ -11,4 +16,17 @@ public class AlarmHelper extends AlarmElements {
|
|||||||
jsClick(assignBtn());
|
jsClick(assignBtn());
|
||||||
userFromAssignDropDown(user).click();
|
userFromAssignDropDown(user).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> users;
|
||||||
|
|
||||||
|
public void setUsers() {
|
||||||
|
users = assignUsers()
|
||||||
|
.stream()
|
||||||
|
.map(WebElement::getText)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getUsers() {
|
||||||
|
return users;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,8 @@ public class DevicePageElements extends OtherPageElements{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static final String DEVICE = "//table//span[text()='%s']";
|
private static final String DEVICE = "//table//span[text()='%s']";
|
||||||
private static final String DEVICE_DETAILS_ALARMS = "//tb-details-panel//span[text()='Alarms']";
|
private static final String DEVICE_DETAILS_VIEW = "//tb-details-panel";
|
||||||
|
private static final String DEVICE_DETAILS_ALARMS = DEVICE_DETAILS_VIEW + "//span[text()='Alarms']";
|
||||||
|
|
||||||
public WebElement device(String deviceName) {
|
public WebElement device(String deviceName) {
|
||||||
return waitUntilElementToBeClickable(String.format(DEVICE, deviceName));
|
return waitUntilElementToBeClickable(String.format(DEVICE, deviceName));
|
||||||
@ -18,4 +19,8 @@ public class DevicePageElements extends OtherPageElements{
|
|||||||
public WebElement deviceDetailsAlarmsBtn() {
|
public WebElement deviceDetailsAlarmsBtn() {
|
||||||
return waitUntilElementToBeClickable(DEVICE_DETAILS_ALARMS);
|
return waitUntilElementToBeClickable(DEVICE_DETAILS_ALARMS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WebElement deviceDetailsView() {
|
||||||
|
return waitUntilPresenceOfElementLocated(DEVICE_DETAILS_VIEW);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,15 @@ package org.thingsboard.server.msa.ui.pages;
|
|||||||
|
|
||||||
import org.openqa.selenium.WebDriver;
|
import org.openqa.selenium.WebDriver;
|
||||||
|
|
||||||
public class DevicePageHelper extends DevicePageElements{
|
public class DevicePageHelper extends DevicePageElements {
|
||||||
public DevicePageHelper(WebDriver driver) {
|
public DevicePageHelper(WebDriver driver) {
|
||||||
super(driver);
|
super(driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openDeviceAlarms(String deviceName) {
|
public void openDeviceAlarms(String deviceName) {
|
||||||
device(deviceName).click();
|
if (!deviceDetailsView().isDisplayed()) {
|
||||||
|
device(deviceName).click();
|
||||||
|
}
|
||||||
deviceDetailsAlarmsBtn().click();
|
deviceDetailsAlarmsBtn().click();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package org.thingsboard.server.msa.ui.tests;
|
package org.thingsboard.server.msa.ui.tests;
|
||||||
|
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.AfterClass;
|
|
||||||
import org.testng.annotations.AfterMethod;
|
import org.testng.annotations.AfterMethod;
|
||||||
import org.testng.annotations.BeforeClass;
|
import org.testng.annotations.BeforeClass;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
@ -17,6 +16,8 @@ import org.thingsboard.server.msa.ui.pages.SideBarMenuViewHelper;
|
|||||||
import org.thingsboard.server.msa.ui.utils.DataProviderCredential;
|
import org.thingsboard.server.msa.ui.utils.DataProviderCredential;
|
||||||
import org.thingsboard.server.msa.ui.utils.EntityPrototypes;
|
import org.thingsboard.server.msa.ui.utils.EntityPrototypes;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
public class AssignDetailsTab extends AbstractDriverBaseTest {
|
public class AssignDetailsTab extends AbstractDriverBaseTest {
|
||||||
|
|
||||||
AlarmId alarmId;
|
AlarmId alarmId;
|
||||||
@ -54,12 +55,13 @@ public class AssignDetailsTab extends AbstractDriverBaseTest {
|
|||||||
devicePage.openDeviceAlarms(deviceName);
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
alarmPage.assignTo(user);
|
alarmPage.assignTo(user);
|
||||||
|
|
||||||
Assert.assertTrue(alarmPage.assignUserDisplayName(user).isDisplayed());
|
Assert.assertTrue(alarmPage.assignedUser(user).isDisplayed());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void reassignAlarm() {
|
public void reassignAlarm() {
|
||||||
userId = testRestClient.postUser(EntityPrototypes.defaultUser(getCustomerByName("Customer A").getId())).getId();
|
testRestClient.postCustomer(EntityPrototypes.defaultCustomerPrototype("TestCustomer"));
|
||||||
|
userId = testRestClient.postUser(EntityPrototypes.defaultUser(getCustomerByName("TestCustomer").getId())).getId();
|
||||||
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
||||||
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
||||||
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, userId)).getId();
|
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId, userId)).getId();
|
||||||
@ -68,6 +70,41 @@ public class AssignDetailsTab extends AbstractDriverBaseTest {
|
|||||||
devicePage.openDeviceAlarms(deviceName);
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
alarmPage.assignTo("customer@thingsboard.org");
|
alarmPage.assignTo("customer@thingsboard.org");
|
||||||
|
|
||||||
Assert.assertTrue(alarmPage.assignUserDisplayName("customer@thingsboard.org").isDisplayed());
|
Assert.assertTrue(alarmPage.assignedUser("customer@thingsboard.org").isDisplayed());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void searchByEmail() {
|
||||||
|
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
||||||
|
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
||||||
|
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId)).getId();
|
||||||
|
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignBtn().click();
|
||||||
|
alarmPage.searchUserField().sendKeys("customer@thingsboard.org");
|
||||||
|
alarmPage.setUsers();
|
||||||
|
|
||||||
|
assertThat(alarmPage.getUsers()).contains("customer@thingsboard.org");
|
||||||
|
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void searchByName() {
|
||||||
|
String name = "usik";
|
||||||
|
|
||||||
|
userId = testRestClient.postUser(EntityPrototypes.defaultUser(getCustomerByName("Customer A").getId(), name)).getId();
|
||||||
|
deviceName = testRestClient.postDevice("", DevicePrototypes.defaultDevicePrototype("")).getName();
|
||||||
|
deviceId = testRestClient.getDeviceByName(deviceName).getId();
|
||||||
|
alarmId = testRestClient.postAlarm(EntityPrototypes.defaultAlarm(deviceId)).getId();
|
||||||
|
|
||||||
|
sideBarMenuView.goToDevicesPage();
|
||||||
|
devicePage.openDeviceAlarms(deviceName);
|
||||||
|
alarmPage.assignBtn().click();
|
||||||
|
alarmPage.searchUserField().sendKeys(name);
|
||||||
|
alarmPage.setUsers();
|
||||||
|
|
||||||
|
assertThat(alarmPage.getUsers()).contains(name);
|
||||||
|
alarmPage.assignUsers().forEach(u -> assertThat(u.isDisplayed()).isTrue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -129,4 +129,13 @@ public class EntityPrototypes {
|
|||||||
user.setAuthority(Authority.CUSTOMER_USER);
|
user.setAuthority(Authority.CUSTOMER_USER);
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static User defaultUser(CustomerId customerId, String name) {
|
||||||
|
User user = new User();
|
||||||
|
user.setEmail("test@thingsboard.org");
|
||||||
|
user.setFirstName(name);
|
||||||
|
user.setCustomerId(customerId);
|
||||||
|
user.setAuthority(Authority.CUSTOMER_USER);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user