]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add integration tests for deleting federated shares
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Fri, 22 Jan 2021 13:34:02 +0000 (14:34 +0100)
committerVincent Petry <vincent@nextcloud.com>
Fri, 5 Nov 2021 08:48:49 +0000 (09:48 +0100)
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
build/integration/features/bootstrap/FederationContext.php
build/integration/federation_features/federated.feature

index 2754cf668e61fa91225cf1385e947f533ef31181..d859afc610fa68c288ce3d6b45ffd74b9faa6633 100644 (file)
@@ -39,6 +39,9 @@ class FederationContext implements Context, SnippetAcceptingContext {
        use AppConfiguration;
        use CommandLine;
 
+       /** @var string */
+       private $lastAcceptedRemoteShareId;
+
        /**
         * @BeforeScenario
         */
@@ -109,6 +112,17 @@ class FederationContext implements Context, SnippetAcceptingContext {
                $this->theHTTPStatusCodeShouldBe('200');
                $this->theOCSStatusCodeShouldBe('100');
                $this->usingServer($previous);
+
+               $this->lastAcceptedRemoteShareId = $share_id;
+       }
+
+       /**
+        * @When /^user "([^"]*)" deletes last accepted remote share$/
+        * @param string $user
+        */
+       public function deleteLastAcceptedRemoteShare($user) {
+               $this->asAn($user);
+               $this->sendingToWith('DELETE', "/apps/files_sharing/api/v1/remote_shares/" . $this->lastAcceptedRemoteShareId, null);
        }
 
        protected function resetAppConfigs() {
index 17ec6b4b43e22400664d6621ac06f93abfcbd3bb..46794e02ff8a27b15e1c9c67f326d2dd41ba651a 100644 (file)
@@ -278,13 +278,93 @@ Feature: federated
 
 
 
+       Scenario: Delete federated share with another server
+               Given Using server "LOCAL"
+               And user "user0" exists
+               Given Using server "REMOTE"
+               And user "user1" exists
+               # Rename file so it has a unique name in the target server (as the target
+               # server may have its own /textfile0.txt" file)
+               And User "user1" copies file "/textfile0.txt" to "/remote-share.txt"
+               And User "user1" from server "REMOTE" shares "/remote-share.txt" with user "user0" from server "LOCAL"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 1 shares
+               And Using server "LOCAL"
+               And User "user0" from server "LOCAL" accepts last pending share
+               And as "user0" the file "/remote-share.txt" exists
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 1 shares
+               And Using server "REMOTE"
+               When As an "user1"
+               And Deleting last share
+               Then the OCS status code should be "100"
+               And the HTTP status code should be "200"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 0 shares
+               And Using server "LOCAL"
+               And as "user0" the file "/remote-share.txt" does not exist
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 0 shares
 
+       Scenario: Delete federated share from another server
+               Given Using server "LOCAL"
+               And user "user0" exists
+               Given Using server "REMOTE"
+               And user "user1" exists
+               # Rename file so it has a unique name in the target server (as the target
+               # server may have its own /textfile0.txt" file)
+               And User "user1" copies file "/textfile0.txt" to "/remote-share.txt"
+               And User "user1" from server "REMOTE" shares "/remote-share.txt" with user "user0" from server "LOCAL"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 1 shares
+               And Using server "LOCAL"
+               And User "user0" from server "LOCAL" accepts last pending share
+               And as "user0" the file "/remote-share.txt" exists
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 1 shares
+               When user "user0" deletes last accepted remote share
+               Then the OCS status code should be "100"
+               And the HTTP status code should be "200"
+               And as "user0" the file "/remote-share.txt" does not exist
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 0 shares
+               And Using server "REMOTE"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 0 shares
 
-
-
-
-
-
-
-
-
+       Scenario: Delete federated share file from another server
+               Given Using server "LOCAL"
+               And user "user0" exists
+               Given Using server "REMOTE"
+               And user "user1" exists
+               # Rename file so it has a unique name in the target server (as the target
+               # server may have its own /textfile0.txt" file)
+               And User "user1" copies file "/textfile0.txt" to "/remote-share.txt"
+               And User "user1" from server "REMOTE" shares "/remote-share.txt" with user "user0" from server "LOCAL"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 1 shares
+               And Using server "LOCAL"
+               And User "user0" from server "LOCAL" accepts last pending share
+               And as "user0" the file "/remote-share.txt" exists
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 1 shares
+               When User "user0" deletes file "/remote-share.txt"
+               Then the HTTP status code should be "204"
+               And as "user0" the file "/remote-share.txt" does not exist
+               And As an "user0"
+               And sending "GET" to "/apps/files_sharing/api/v1/remote_shares"
+               And the list of returned shares has 0 shares
+               And Using server "REMOTE"
+               And As an "user1"
+               And sending "GET" to "/apps/files_sharing/api/v1/shares"
+               And the list of returned shares has 0 shares