aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2020-11-10 22:16:50 +0100
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2020-11-11 13:30:04 +0100
commit505e1b279f260e2dab6c3fb2b32e022123b96d59 (patch)
treedbc21993f25a342eb5cd75e816f71919667ebff4
parenta05bcfc4ca3c0782dedcf044c466cd8a745a1b92 (diff)
downloadnextcloud-server-505e1b279f260e2dab6c3fb2b32e022123b96d59.tar.gz
nextcloud-server-505e1b279f260e2dab6c3fb2b32e022123b96d59.zip
Add acceptance tests for reshares by link when resharing is disabled
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
-rw-r--r--tests/acceptance/features/app-files-sharing-link.feature80
-rw-r--r--tests/acceptance/features/bootstrap/FilesAppSharingContext.php30
2 files changed, 110 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 c630fbfe16f..784b4bbae11 100644
--- a/tests/acceptance/features/bootstrap/FilesAppSharingContext.php
+++ b/tests/acceptance/features/bootstrap/FilesAppSharingContext.php
@@ -311,6 +311,15 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
}
/**
+ * @return Locator
+ */
+ public static function unshareLinkButton() {
+ return Locator::forThe()->xpath("//li//button[normalize-space() = 'Unshare']")->
+ descendantOf(self::shareLinkMenu())->
+ describedAs("Unshare link button in the details view in Files app");
+ }
+
+ /**
* @Given I share the link for :fileName
*/
public function iShareTheLinkFor($fileName) {
@@ -452,6 +461,15 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
}
/**
+ * @When I unshare the link share
+ */
+ public function iUnshareTheLink() {
+ $this->showShareLinkMenuIfNeeded();
+
+ $this->actor->find(self::unshareLinkButton(), 2)->click();
+ }
+
+ /**
* @Then I see that the file is shared with me by :sharedByName
*/
public function iSeeThatTheFileIsSharedWithMeBy($sharedByName) {
@@ -490,6 +508,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) {