]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add acceptance test for restricting user enumeration to groups 20139/head
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Tue, 24 Mar 2020 13:42:52 +0000 (14:42 +0100)
committerDaniel Calviño Sánchez <danxuliu@gmail.com>
Tue, 24 Mar 2020 13:42:52 +0000 (14:42 +0100)
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
tests/acceptance/features/bootstrap/SettingsContext.php
tests/acceptance/features/header.feature

index 82b22c433383f376db9f3e685fecca2e72293a03..5f9a724e771da8a382bdc9a0cbf2914e790e3fb2 100644 (file)
@@ -46,6 +46,25 @@ class SettingsContext implements Context, ActorAwareInterface {
                                describedAs("Accept shares by default checkbox input in Sharing section in Personal Sharing Settings");
        }
 
+       /**
+        * @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
         */
@@ -112,6 +131,15 @@ class SettingsContext implements Context, ActorAwareInterface {
                $this->actor->find(self::acceptSharesByDefaultCheckbox(), 2)->click();
        }
 
+       /**
+        * @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
         */
@@ -129,6 +157,22 @@ class SettingsContext implements Context, ActorAwareInterface {
                                $this->actor->find(self::acceptSharesByDefaultCheckboxInput(), 10)->isChecked());
        }
 
+       /**
+        * @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
         */
index 04d5963668dea9c204985a8f11a5ddbc35404a14..94b08e8f6d94bfd9d1ac8d3396636b5142762124 100644 (file)
@@ -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