From: Daniel Calviño Sánchez Date: Thu, 11 Jun 2020 21:16:34 +0000 (+0200) Subject: Add acceptance test for sharing a folder without create permission X-Git-Tag: v20.0.0beta1~364^2~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=33222d67ea758d9592aa6adaa51e84ccc0b0c0fa;p=nextcloud-server.git Add acceptance test for sharing a folder without create permission Signed-off-by: Daniel Calviño Sánchez --- 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 @@ -135,6 +135,20 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { return self::permissionCheckboxInputFor($sharedWithName, 'Allow editing'); } + /** + * @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 */ @@ -397,6 +411,17 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { $this->actor->find(self::canEditCheckbox($shareWithName), 2)->click(); } + /** + * @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 */ @@ -464,6 +489,36 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { $this->actor->find(self::canEditCheckboxInput($sharedWithName), 10)->isChecked()); } + /** + * @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 */