bug5239: new integration test, testing WildcardPermission creation

This commit is contained in:
Dennis Aulenbacher committed 2020-08-12 01:44:23 +02:00
1 parent 03f7794c35
commit 73baf7e758
5 files changed
+105

No files matched your search

@@ -70,4 +70,9 @@ public class UserManagementPanelPO extends PageArea {
table.selectEntry(findUser);
}
}
public WildcardPermissionPanelPO getUserPermissionsPO() {
final WebElement userRoles = findElementBySeleniumId(this.driver, "WildcardPermissionPanel");
return new WildcardPermissionPanelPO(this.driver, userRoles);
}
}
@@ -0,0 +1,54 @@
package com.sap.sailing.selenium.pages.adminconsole.usermanagement;
import org.openqa.selenium.ElementNotSelectableException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import com.sap.sailing.selenium.core.BySeleniumId;
import com.sap.sailing.selenium.core.FindBy;
import com.sap.sailing.selenium.pages.PageArea;
import com.sap.sailing.selenium.pages.gwt.CellTablePO;
import com.sap.sailing.selenium.pages.gwt.DataEntryPO;
import com.sap.sailing.selenium.pages.gwt.GenericCellTablePO;
import com.sap.sailing.selenium.pages.gwt.SuggestBoxPO;
public class WildcardPermissionPanelPO extends PageArea {
private static final String TABLE_PERMISSION_COLUMN = "Permission";
@FindBy(how = BySeleniumId.class, using = "addPermissionButton")
private WebElement addRoleButton;
@FindBy(how = BySeleniumId.class, using = "suggestPermission")
private WebElement roleNameInput;
@FindBy(how = BySeleniumId.class, using = "WildcardPermissionWithSecurityDTOTable")
private WebElement roleTable;
public WildcardPermissionPanelPO(WebDriver driver, WebElement element) {
super(driver, element);
}
private CellTablePO<DataEntryPO> getUserTable() {
return new GenericCellTablePO<>(this.driver, this.roleTable, DataEntryPO.class);
}
public DataEntryPO findPermission(final String permissionName) {
final CellTablePO<DataEntryPO> table = getUserTable();
for (DataEntryPO entry : table.getEntries()) {
final String name = entry.getColumnContent(TABLE_PERMISSION_COLUMN);
if (permissionName.equals(name)) {
return entry;
}
}
return null;
}
public void enterNewPermissionValue(String permissionName) {
SuggestBoxPO.create(driver, roleNameInput).appendText(permissionName);
}
public void clickAddButtonOrThrow() {
if (!addRoleButton.isEnabled()) {
throw new ElementNotSelectableException("Add Button was disabled");
} else {
addRoleButton.click();
}
}
}
@@ -0,0 +1,42 @@
package com.sap.sailing.selenium.test.adminconsole.usermanagement;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage;
import com.sap.sailing.selenium.pages.adminconsole.usermanagement.UserManagementPanelPO;
import com.sap.sailing.selenium.pages.adminconsole.usermanagement.WildcardPermissionPanelPO;
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
public class TestPermissionCreation extends AbstractSeleniumTest {
private static final String TEST_USER_NAME = "admin";
private static final String TEST_PERMISSION = "USER:READ";
@Override
@Before
public void setUp() {
clearState(getContextRoot());
super.setUp();
}
@Test
public void testOpenCreateBoatDialog() {
final UserManagementPanelPO userManagementPanel = goToUserManagementPanel();
assertNotNull(userManagementPanel.findUser(TEST_USER_NAME));
userManagementPanel.selectUser(TEST_USER_NAME);
final WildcardPermissionPanelPO wildcardPermissionPanelPO = userManagementPanel.getUserPermissionsPO();
assertNull(wildcardPermissionPanelPO.findPermission(TEST_PERMISSION));
wildcardPermissionPanelPO.enterNewPermissionValue(TEST_PERMISSION);
wildcardPermissionPanelPO.clickAddButtonOrThrow();
userManagementPanel.selectUser(TEST_USER_NAME);
assertNotNull(wildcardPermissionPanelPO.findPermission(TEST_PERMISSION));
}
private UserManagementPanelPO goToUserManagementPanel() {
final AdminConsolePage adminConsole = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
return adminConsole.goToUserManagement();
}
}
@@ -56,6 +56,7 @@ public class WildcardPermissionPanel extends HorizontalPanel
Function<SuggestOracle, SuggestBox> suggestBoxConstructor) {
// create multi to single selection adapter
final SingleSelectionModel<UserDTO> multiToSingleSelectionModelAdapter = new SingleSelectionModel<>();
this.ensureDebugId(this.getClass().getSimpleName());
userSelectionModel.addSelectionChangeHandler(event -> {
multiToSingleSelectionModelAdapter.clear();
if (userSelectionModel.getSelectedSet().size() != 1) {
@@ -78,6 +79,7 @@ public class WildcardPermissionPanel extends HorizontalPanel
}
}
suggestPermission = suggestBoxConstructor.apply(oracle);
suggestPermission.ensureDebugId("suggestPermission");
roleAndPermissionResources.css().ensureInjected();
suggestPermission.addStyleName(roleAndPermissionResources.css().enterPermissionSuggest());
suggestPermission.getElement().setPropertyString("placeholder", stringMessages.enterPermissionName());
@@ -110,6 +112,7 @@ public class WildcardPermissionPanel extends HorizontalPanel
}
suggestPermission.setText("");
});
addPermissionButton.ensureDebugId("addPermissionButton");
final Command addPermissionButtonUpdater = () -> addPermissionButton
.setEnabled(!suggestPermission.getValue().isEmpty());
suggestPermission.addKeyUpHandler(event -> addPermissionButtonUpdater.execute());
@@ -129,6 +129,7 @@ public class WildcardPermissionWithSecurityDTOTableWrapper extends
.setUpdatePermissionFilterForCheckbox(permission -> userService.hasPermission(permission, DefaultActions.UPDATE));
mainPanel.insert(filterField, 0);
// setup table
table.ensureDebugId("WildcardPermissionWithSecurityDTOTable");
table.addColumnSortHandler(userColumnListHandler);
table.addColumn(userGroupWithSecurityDTONameColumn, stringMessages.permission());
table.addColumn(userActionColumn, stringMessages.actions());