summaryrefslogtreecommitdiffstats
path: root/tests/acceptance
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2020-06-11 23:16:34 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2020-06-11 23:17:33 +0200
commit33222d67ea758d9592aa6adaa51e84ccc0b0c0fa (patch)
treecc51e94e1563b1f2df94aff1d9fce5279f933c9c /tests/acceptance
parent573bf4d667ed09254655cf634716de954dc1112a (diff)
downloadnextcloud-server-33222d67ea758d9592aa6adaa51e84ccc0b0c0fa.tar.gz
nextcloud-server-33222d67ea758d9592aa6adaa51e84ccc0b0c0fa.zip
Add acceptance test for sharing a folder without create permission
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'tests/acceptance')
-rw-r--r--tests/acceptance/features/app-files-sharing.feature20
-rw-r--r--tests/acceptance/features/bootstrap/FilesAppSharingContext.php55
2 files changed, 75 insertions, 0 deletions
diff --git a/tests/acceptance/features/app-files-sharing.feature b/tests/acceptance/features/app-files-sharing.feature
index 45604470be1..19a3af51713 100644
--- a/tests/acceptance/features/app-files-sharing.feature
+++ b/tests/acceptance/features/app-files-sharing.feature
@@ -314,3 +314,23 @@ Feature: app-files-sharing
Then I see that the file is shared with "user1"
And I see that "user1" can not edit the share
And I see that "user1" can not be allowed to edit the share
+
+ Scenario: sharee can not reshare a folder with create permission if the sharer disables it
+ 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 act as John
+ And I create a new folder named "Shared folder"
+ And I see that the file list contains a file named "Shared folder"
+ And I share "Shared folder" with "user0"
+ And I see that the file is shared with "user0"
+ And I set the share with "user0" as not creatable
+ And I see that "user0" can not create in the share
+ When I act as Jane
+ # The Files app is open again to reload the file list
+ And I open the Files app
+ And I share "Shared folder" with "user1"
+ Then I see that the file is shared with "user1"
+ And I see that "user1" can not create in the share
+ And I see that "user1" can not be allowed to create in the share
diff --git a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php
index 3f047e9f624..80d21a0faf9 100644
--- a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php
+++ b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php
@@ -138,6 +138,20 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
/**
* @return Locator
*/
+ public static function canCreateCheckbox($sharedWithName) {
+ return self::permissionCheckboxFor($sharedWithName, 'Allow creating');
+ }
+
+ /**
+ * @return Locator
+ */
+ public static function canCreateCheckboxInput($sharedWithName) {
+ return self::permissionCheckboxInputFor($sharedWithName, 'Allow creating');
+ }
+
+ /**
+ * @return Locator
+ */
public static function canReshareCheckbox($sharedWithName) {
return self::permissionCheckboxFor($sharedWithName, 'Allow resharing');
}
@@ -398,6 +412,17 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
}
/**
+ * @When I set the share with :shareWithName as not creatable
+ */
+ public function iSetTheShareWithAsNotCreatable($shareWithName) {
+ $this->showShareWithMenuIfNeeded($shareWithName);
+
+ $this->iSeeThatCanCreateInTheShare($shareWithName);
+
+ $this->actor->find(self::canCreateCheckbox($shareWithName), 2)->click();
+ }
+
+ /**
* @When I set the share with :shareWithName as not reshareable
*/
public function iSetTheShareWithAsNotReshareable($shareWithName) {
@@ -465,6 +490,36 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
}
/**
+ * @Then I see that :sharedWithName can not be allowed to create in the share
+ */
+ public function iSeeThatCanNotBeAllowedToCreateInTheShare($sharedWithName) {
+ $this->showShareWithMenuIfNeeded($sharedWithName);
+
+ PHPUnit_Framework_Assert::assertEquals(
+ $this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->getWrappedElement()->getAttribute("disabled"), "disabled");
+ }
+
+ /**
+ * @Then I see that :sharedWithName can create in the share
+ */
+ public function iSeeThatCanCreateInTheShare($sharedWithName) {
+ $this->showShareWithMenuIfNeeded($sharedWithName);
+
+ PHPUnit_Framework_Assert::assertTrue(
+ $this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->isChecked());
+ }
+
+ /**
+ * @Then I see that :sharedWithName can not create in the share
+ */
+ public function iSeeThatCanNotCreateInTheShare($sharedWithName) {
+ $this->showShareWithMenuIfNeeded($sharedWithName);
+
+ PHPUnit_Framework_Assert::assertFalse(
+ $this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->isChecked());
+ }
+
+ /**
* @Then I see that :sharedWithName can reshare the share
*/
public function iSeeThatCanReshareTheShare($sharedWithName) {