mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
bug5239: new integration test, testing WildcardPermission creation
This commit is contained in:
1 parent
03f7794c35
commit
73baf7e758
5 files changed
+105
No files matched your search
+5
@@ -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);
|
||||
}
|
||||
}
|
||||
+54
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
+42
@@ -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();
|
||||
}
|
||||
}
|
||||
+3
@@ -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());
|
||||
|
||||
+1
@@ -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());
|
||||
|
||||
Reference in new issue
Block a user