diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2020-11-10 22:16:50 +0100 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2020-11-11 01:35:27 +0100 |
commit | b6dec0be998f68c7398de2fbfd7bb666a3f3ac2d (patch) | |
tree | a2496ec545bbb46d6ef4eb17cd48cf4b59c24251 /tests/acceptance | |
parent | 22d949d9d9da89eb2395b1259c44db17d1db5856 (diff) | |
download | nextcloud-server-b6dec0be998f68c7398de2fbfd7bb666a3f3ac2d.tar.gz nextcloud-server-b6dec0be998f68c7398de2fbfd7bb666a3f3ac2d.zip |
Add acceptance tests for reshares by link when resharing is disabled
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-link.feature | 80 | ||||
-rw-r--r-- | tests/acceptance/features/bootstrap/FilesAppSharingContext.php | 31 |
2 files changed, 111 insertions, 0 deletions
diff --git a/tests/acceptance/features/app-files-sharing-link.feature b/tests/acceptance/features/app-files-sharing-link.feature index 38680f110d4..d89c7b4289d 100644 --- a/tests/acceptance/features/app-files-sharing-link.feature +++ b/tests/acceptance/features/app-files-sharing-link.feature @@ -166,3 +166,83 @@ Feature: app-files-sharing-link And I authenticate with password "abcdef" # download starts no page redirection And I see that the current page is the Authenticate page for the direct download shared link I wrote down + + Scenario: sharee can not reshare by link if resharing is disabled in the settings after the share is created + 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 rename "welcome.txt" to "farewell.txt" + And I see that the file list contains a file named "farewell.txt" + And I share "farewell.txt" with "user0" + And I see that the file is shared with "user0" + And I visit the settings page + And I open the "Sharing" section of the "Administration" group + And I disable resharing + And I see that resharing is disabled + When I act as Jane + # 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" + And I see that resharing the file by link is not available + + Scenario: sharee can unshare a reshare by link if resharing is disabled in the settings after the reshare is created + 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 rename "welcome.txt" to "farewell.txt" + And I see that the file list contains a file named "farewell.txt" + And I share "farewell.txt" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + And I share the link for "farewell.txt" + And I write down the shared link + And I act as John + And I visit the settings page + And I open the "Sharing" section of the "Administration" group + And I disable resharing + And I see that resharing is disabled + When I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + 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 unshare the link share + Then I see that resharing the file by link is not available + + Scenario: reshare by link can be accessed if resharing is disabled in the settings after the reshare is created + 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 rename "welcome.txt" to "farewell.txt" + And I see that the file list contains a file named "farewell.txt" + And I share "farewell.txt" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + And I share the link for "farewell.txt" + And I write down the shared link + And I act as John + And I visit the settings page + And I open the "Sharing" section of the "Administration" group + And I disable resharing + And I see that resharing is disabled + When I act as Jim + And I visit the shared link I wrote down + Then I see that the current page is the shared link I wrote down + And I see that the shared file preview shows the text "Welcome to your Nextcloud account!" diff --git a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php index a75c0ddda32..07ebbba1a36 100644 --- a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php +++ b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php @@ -327,6 +327,15 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { } /** + * @return Locator + */ + public static function unshareLinkButton($shareLinkMenuTriggerElement) { + return Locator::forThe()->xpath("//li[contains(concat(' ', normalize-space(@class), ' '), ' action ')]//button[normalize-space() = 'Unshare']")-> + descendantOf(self::shareLinkMenu($shareLinkMenuTriggerElement))-> + describedAs("Unshare link button in the details view in Files app"); + } + + /** * @Given I share the link for :fileName */ public function iShareTheLinkFor($fileName) { @@ -491,6 +500,16 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { } /** + * @When I unshare the link share + */ + public function iUnshareTheLink() { + $this->showShareLinkMenuIfNeeded(); + + $shareLinkMenuTriggerElement = $this->actor->find(self::shareLinkMenuTrigger(), 2); + $this->actor->find(self::unshareLinkButton($shareLinkMenuTriggerElement), 2)->click(); + } + + /** * @Then I see that the file is shared with me by :sharedByName */ public function iSeeThatTheFileIsSharedWithMeBy($sharedByName) { @@ -529,6 +548,18 @@ class FilesAppSharingContext implements Context, ActorAwareInterface { } /** + * @Then I see that resharing the file by link is not available + */ + public function iSeeThatResharingTheFileByLinkIsNotAvailable() { + if (!WaitFor::elementToBeEventuallyNotShown( + $this->actor, + self::shareLinkAddNewButton(), + $timeout = 10 * $this->actor->getFindTimeoutMultiplier())) { + PHPUnit_Framework_Assert::fail("The add new share link button is still shown after $timeout seconds"); + } + } + + /** * @Then I see that :sharedWithName can not be allowed to edit the share */ public function iSeeThatCanNotBeAllowedToEditTheShare($sharedWithName) { |