Browse Source

Merge pull request #15125 from nextcloud/tests/noid/folder-share-update-integration

Add integration tests for updating folder shares
Roeland Jago Douma 5 years ago
parent
commit
f5d0f746f9

+ 17 - 0
build/integration/features/bootstrap/Sharing.php

@@ -42,6 +42,9 @@ trait Sharing {
 	/** @var SimpleXMLElement */
 	private $lastShareData = null;
 
+	/** @var SimpleXMLElement[] */
+	private $storedShareData = [];
+
 	/** @var int */
 	private $savedShareId = null;
 
@@ -85,6 +88,20 @@ trait Sharing {
 		$this->lastShareData = simplexml_load_string($this->response->getBody());
 	}
 
+	/**
+	 * @When /^save the last share data as "([^"]*)"$/
+	 */
+	public function saveLastShareData($name) {
+		$this->storedShareData[$name] = $this->lastShareData;
+	}
+
+	/**
+	 * @When /^restore the last share data from "([^"]*)"$/
+	 */
+	public function restoreLastShareData($name) {
+		 $this->lastShareData = $this->storedShareData[$name];
+	}
+
 	/**
 	 * @When /^creating a share with$/
 	 * @param \Behat\Gherkin\Node\TableNode|null $body

+ 32 - 0
build/integration/features/sharing-v1-part3.feature

@@ -393,3 +393,35 @@ Feature: sharing
     When User "user1" moved file "/textfile0.txt" to "/shared/shared_file.txt"
     Then as "user1" the file "/shared/shared_file.txt" exists
     And as "user0" the file "/shared/shared_file.txt" exists
+
+  Scenario: Link shares inside of group shares keep their original data when the root share is updated
+    Given As an "admin"
+    And user "user0" exists
+    And user "user1" exists
+    And group "group1" exists
+    And user "user1" belongs to group "group1"
+    And As an "user0"
+    And user "user0" created a folder "/share"
+    And folder "/share" of user "user0" is shared with group "group1"
+    And user "user0" created a folder "/share/subfolder"
+    And As an "user1"
+    And save the last share data as "original"
+    And as "user1" creating a share with
+      | path | /share/subfolder |
+      | shareType | 3 |
+      | permissions | 31 |
+    And save the last share data as "link"
+    And As an "user0"
+    And restore the last share data from "original"
+    When Updating last share with
+      | permissions | 23 |
+      | expireDate | +3 days |
+    And restore the last share data from "link"
+    And Getting info of last share
+    And Share fields of last share match with
+      | id | A_NUMBER |
+      | item_source | A_NUMBER |
+      | share_type | 3 |
+      | permissions | 23 |
+      | file_target | /subfolder |
+      | expireDate  |            |