diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2020-03-24 16:42:52 +0300 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2020-03-24 16:42:52 +0300 |
commit | 4ec370016f8679925ddb87c77bc58467511d21d8 (patch) | |
tree | f5dcfa2a585797698d5d09d2a647b6b7c75100d9 /tests | |
parent | d4f25b01b8d47cc354b0909f32153113e793494d (diff) |
Add acceptance test for restricting user enumeration to groups
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/acceptance/features/bootstrap/SettingsContext.php | 44 | ||||
-rw-r--r-- | tests/acceptance/features/header.feature | 11 |
2 files changed, 55 insertions, 0 deletions
diff --git a/tests/acceptance/features/bootstrap/SettingsContext.php b/tests/acceptance/features/bootstrap/SettingsContext.php index 82b22c43338..5f9a724e771 100644 --- a/tests/acceptance/features/bootstrap/SettingsContext.php +++ b/tests/acceptance/features/bootstrap/SettingsContext.php @@ -49,6 +49,25 @@ class SettingsContext implements Context, ActorAwareInterface { /** * @return Locator */ + public static function restrictUsernameAutocompletionToGroupsCheckbox() { + // forThe()->checkbox("Restrict username...") can not be used here; that + // would return the checkbox itself, but the element that the user + // interacts with is the label. + return Locator::forThe()->xpath("//label[normalize-space() = 'Restrict username autocompletion to users within the same groups']")-> + describedAs("Restrict username autocompletion to groups checkbox in Sharing section in Administration Sharing Settings"); + } + + /** + * @return Locator + */ + public static function restrictUsernameAutocompletionToGroupsCheckboxInput() { + return Locator::forThe()->checkbox("Restrict username autocompletion to users within the same groups")-> + describedAs("Restrict username autocompletion to groups checkbox input in Sharing section in Administration Sharing Settings"); + } + + /** + * @return Locator + */ public static function systemTagsSelectTagButton() { return Locator::forThe()->id("s2id_systemtag")-> describedAs("Select tag button in system tags section in Administration Settings"); @@ -113,6 +132,15 @@ class SettingsContext implements Context, ActorAwareInterface { } /** + * @When I enable restricting username autocompletion to groups + */ + public function iEnableRestrictingUsernameAutocompletionToGroups() { + $this->iSeeThatUsernameAutocompletionIsNotRestrictedToGroups(); + + $this->actor->find(self::restrictUsernameAutocompletionToGroupsCheckbox(), 2)->click(); + } + + /** * @When I create the tag :tag in the settings */ public function iCreateTheTagInTheSettings($tag) { @@ -130,6 +158,22 @@ class SettingsContext implements Context, ActorAwareInterface { } /** + * @Then I see that username autocompletion is restricted to groups + */ + public function iSeeThatUsernameAutocompletionIsRestrictedToGroups() { + PHPUnit_Framework_Assert::assertTrue( + $this->actor->find(self::restrictUsernameAutocompletionToGroupsCheckboxInput(), 10)->isChecked()); + } + + /** + * @Then I see that username autocompletion is not restricted to groups + */ + public function iSeeThatUsernameAutocompletionIsNotRestrictedToGroups() { + PHPUnit_Framework_Assert::assertFalse( + $this->actor->find(self::restrictUsernameAutocompletionToGroupsCheckboxInput(), 10)->isChecked()); + } + + /** * @Then I see that shares are not accepted by default */ public function iSeeThatSharesAreNotAcceptedByDefault() { diff --git a/tests/acceptance/features/header.feature b/tests/acceptance/features/header.feature index 04d5963668d..94b08e8f6d9 100644 --- a/tests/acceptance/features/header.feature +++ b/tests/acceptance/features/header.feature @@ -28,6 +28,17 @@ Feature: header And I see that the contact "user0" in the Contacts menu is shown And I see that the contact "admin" in the Contacts menu is not shown + Scenario: users from other groups are not seen in the contacts menu when autocompletion is restricted within the same group + Given I am logged in as the admin + And I visit the settings page + And I open the "Sharing" section of the "Administration" group + And I enable restricting username autocompletion to groups + And I see that username autocompletion is restricted to groups + When I open the Contacts menu + Then I see that the Contacts menu is shown + And I see that the contact "user0" in the Contacts menu is not shown + And I see that the contact "admin" in the Contacts menu is not shown + Scenario: just added users are seen in the contacts menu Given I am logged in as the admin And I open the User settings |