Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add acceptance tests for sharing files and folders with another user #12632

18 changes: 18 additions & 0 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,20 @@ pipeline:
when:
matrix:
TESTS-ACCEPTANCE: app-files
acceptance-app-files-sharing:
image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files-sharing --selenium-server selenium:4444 allow-git-repository-modifications features/app-files-sharing.feature
when:
matrix:
TESTS-ACCEPTANCE: app-files-sharing
acceptance-app-files-sharing-link:
image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files-sharing-link --selenium-server selenium:4444 allow-git-repository-modifications features/app-files-sharing-link.feature
when:
matrix:
TESTS-ACCEPTANCE: app-files-sharing-link
acceptance-app-files-tags:
image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
commands:
Expand Down Expand Up @@ -957,6 +971,10 @@ matrix:
TESTS-ACCEPTANCE: app-comments
- TESTS: acceptance
TESTS-ACCEPTANCE: app-files
- TESTS: acceptance
TESTS-ACCEPTANCE: app-files-sharing
- TESTS: acceptance
TESTS-ACCEPTANCE: app-files-sharing-link
- TESTS: acceptance
TESTS-ACCEPTANCE: app-files-tags
- TESTS: acceptance
Expand Down
9 changes: 7 additions & 2 deletions tests/acceptance/config/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ default:
- FeatureContext
- FileListContext
- FilesAppContext
- FilesSharingAppContext
- FilesAppSharingContext
- LoginPageContext
- NotificationContext
- PublicShareContext
- SettingsContext
- SettingsMenuContext
- ThemingAppContext
Expand All @@ -42,9 +43,10 @@ default:
- FeatureContext
- FileListContext
- FilesAppContext
- FilesSharingAppContext
- FilesAppSharingContext
- LoginPageContext
- NotificationContext
- PublicShareContext
- SettingsContext
- SettingsMenuContext
- ThemingAppContext
Expand All @@ -63,6 +65,9 @@ default:
Jane:
selenium2:
wd_host: %selenium.server%
Jim:
selenium2:
wd_host: %selenium.server%
Rubeus:
# Rubeus uses a browser that has CSS grid support.
selenium2:
Expand Down
149 changes: 149 additions & 0 deletions tests/acceptance/features/app-files-sharing-link.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
Feature: app-files-sharing-link

Scenario: open the menu in a public shared link
Given I act as John
And I am logged in
And I share the link for "welcome.txt"
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
And I open the Share menu
Then I see that the Share menu is shown

Scenario: hide download in a public shared link
Given I act as John
And I am logged in
And I share the link for "welcome.txt"
And I set the download of the shared link as hidden
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
Then I see that the download button is not shown
And I see that the Share menu button is not shown

Scenario: show download again in a public shared link
Given I act as John
And I am logged in
And I share the link for "welcome.txt"
And I set the download of the shared link as hidden
And I set the download of the shared link as shown
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
Then I see that the download button is shown
And I open the Share menu
And I see that the Share menu is shown

Scenario: creation is not possible by default in a public shared folder
Given I act as John
And I am logged in
And I create a new folder named "Shared folder"
# To share the link the "Share" inline action has to be clicked but, as the
# details view is opened automatically when the folder is created, clicking
# on the inline action could fail if it is covered by the details view due
# to its opening animation. Instead of ensuring that the animations of the
# contents and the details view have both finished it is easier to close the
# details view and wait until it is closed before continuing.
And I close the details view
And I see that the details view is closed
And I share the link for "Shared folder"
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
And I see that the file list is eventually loaded
Then I see that it is not possible to create new files

Scenario: create folder in a public editable shared folder
Given I act as John
And I am logged in
And I create a new folder named "Editable shared folder"
# To share the link the "Share" inline action has to be clicked but, as the
# details view is opened automatically when the folder is created, clicking
# on the inline action could fail if it is covered by the details view due
# to its opening animation. Instead of ensuring that the animations of the
# contents and the details view have both finished it is easier to close the
# details view and wait until it is closed before continuing.
And I close the details view
And I see that the details view is closed
And I share the link for "Editable shared folder"
And I set the shared link as editable
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
And I create a new folder named "Subfolder"
Then I see that the file list contains a file named "Subfolder"

Scenario: owner sees folder created in the public page of an editable shared folder
Given I act as John
And I am logged in
And I create a new folder named "Editable shared folder"
# To share the link the "Share" inline action has to be clicked but, as the
# details view is opened automatically when the folder is created, clicking
# on the inline action could fail if it is covered by the details view due
# to its opening animation. Instead of ensuring that the animations of the
# contents and the details view have both finished it is easier to close the
# details view and wait until it is closed before continuing.
And I close the details view
And I see that the details view is closed
And I share the link for "Editable shared folder"
And I set the shared link as editable
And I write down the shared link
And I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the shared link I wrote down
And I create a new folder named "Subfolder"
And I see that the file list contains a file named "Subfolder"
When I act as John
And I enter in the folder named "Editable shared folder"
Then I see that the file list contains a file named "Subfolder"

Scenario: set a password to a shared link
Given I am logged in
And I share the link for "welcome.txt"
When I protect the shared link with the password "abcdef"
Then I see that the working icon for password protect is shown
And I see that the working icon for password protect is eventually not shown
And I see that the link share is password protected
# As Talk is not enabled in the acceptance tests of the server the checkbox
# is never shown.
And I see that the checkbox to protect the password of the link share by Talk is not shown

Scenario: access a shared link protected by password with a valid password
Given I act as John
And I am logged in
And I share the link for "welcome.txt" protected by the password "abcdef"
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I see that the current page is the Authenticate page for the shared link I wrote down
And I authenticate with password "abcdef"
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!"

Scenario: access a shared link protected by password with an invalid password
Given I act as John
And I am logged in
And I share the link for "welcome.txt" protected by the password "abcdef"
And I write down the shared link
When I act as Jane
And I visit the shared link I wrote down
And I authenticate with password "fedcba"
Then I see that the current page is the Authenticate page for the shared link I wrote down
And I see that a wrong password for the shared file message is shown

Scenario: access a direct download shared link protected by password with a valid password
Given I act as John
And I am logged in
And I share the link for "welcome.txt" protected by the password "abcdef"
And I write down the shared link
When I act as Jane
And I visit the direct download shared link I wrote down
And I see that the current page is the Authenticate page for the direct download shared link I wrote down
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
Loading