]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add acceptance test for accepting an incoming share 20060/head
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Fri, 20 Mar 2020 18:51:09 +0000 (19:51 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Fri, 20 Mar 2020 20:24:56 +0000 (20:24 +0000)
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
tests/acceptance/features/app-files-sharing.feature
tests/acceptance/features/bootstrap/SettingsContext.php

index 401384816e8530f12000b4fcdf408ff6cd151194..e3b0ec30cf80308fa36c133218019a1bb6997b01 100644 (file)
@@ -20,6 +20,33 @@ Feature: app-files-sharing
     And I see that the "Sharing" tab in the details view is eventually loaded
     And I see that the file is shared with me by "admin"
 
+  Scenario: share a file with another user that needs to accept shares
+    Given I act as John
+    And I am logged in as the admin
+    And I act as Jane
+    And I am logged in
+    And I visit the settings page
+    And I open the "Sharing" section
+    And I disable accepting the shares by default
+    And I see that shares are not accepted by default
+    And I act as John
+    And I rename "welcome.txt" to "farewell.txt"
+    And I see that the file list contains a file named "farewell.txt"
+    When I share "farewell.txt" with "user0"
+    And I see that the file is shared with "user0"
+    And I act as Jane
+    And I open the Files app
+    And I see that the file list does not contain a file named "farewell.txt"
+    And I accept the share for "/farewell.txt" in the notifications
+    # The Files app is open again to reload the file list
+    And I open the Files app
+    Then I see that the file list contains a file named "farewell.txt"
+    And I open the details view for "farewell.txt"
+    And I see that the details view is open
+    And I open the "Sharing" tab in the details view
+    And I see that the "Sharing" tab in the details view is eventually loaded
+    And I see that the file is shared with me by "admin"
+
   Scenario: share a file with another user who already has a file with that name
     Given I act as John
     And I am logged in as the admin
index edbb6a94d1529538698660493350ee0a8900957c..82b22c433383f376db9f3e685fecca2e72293a03 100644 (file)
@@ -27,6 +27,25 @@ class SettingsContext implements Context, ActorAwareInterface {
 
        use ActorAware;
 
+       /**
+        * @return Locator
+        */
+       public static function acceptSharesByDefaultCheckbox() {
+               // forThe()->checkbox("Accept user...") 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() = 'Accept user and group shares by default']")->
+                               describedAs("Accept shares by default checkbox in Sharing section in Personal Sharing Settings");
+       }
+
+       /**
+        * @return Locator
+        */
+       public static function acceptSharesByDefaultCheckboxInput() {
+               return Locator::forThe()->checkbox("Accept user and group shares by default")->
+                               describedAs("Accept shares by default checkbox input in Sharing section in Personal Sharing Settings");
+       }
+
        /**
         * @return Locator
         */
@@ -84,6 +103,15 @@ class SettingsContext implements Context, ActorAwareInterface {
                                describedAs("Reset button in system tags section in Administration Settings");
        }
 
+       /**
+        * @When I disable accepting the shares by default
+        */
+       public function iDisableAcceptingTheSharesByDefault() {
+               $this->iSeeThatSharesAreAcceptedByDefault();
+
+               $this->actor->find(self::acceptSharesByDefaultCheckbox(), 2)->click();
+       }
+
        /**
         * @When I create the tag :tag in the settings
         */
@@ -93,6 +121,22 @@ class SettingsContext implements Context, ActorAwareInterface {
                $this->actor->find(self::systemTagsCreateOrUpdateButton())->click();
        }
 
+       /**
+        * @Then I see that shares are accepted by default
+        */
+       public function iSeeThatSharesAreAcceptedByDefault() {
+               PHPUnit_Framework_Assert::assertTrue(
+                               $this->actor->find(self::acceptSharesByDefaultCheckboxInput(), 10)->isChecked());
+       }
+
+       /**
+        * @Then I see that shares are not accepted by default
+        */
+       public function iSeeThatSharesAreNotAcceptedByDefault() {
+               PHPUnit_Framework_Assert::assertFalse(
+                               $this->actor->find(self::acceptSharesByDefaultCheckboxInput(), 10)->isChecked());
+       }
+
        /**
         * @Then I see that the button to select tags is shown
         */