Merge pull request #5489 from owncloud/remove-core-bug-demonstration-scenarios-master

[full-ci] [tests-only] Removed core bug demonstration scenarios
This commit is contained in:
Prarup Gurung
2023-02-01 17:12:05 +05:45
committed by GitHub
27 changed files with 25 additions and 763 deletions

View File

@@ -536,7 +536,7 @@ Feature: share resources where the sharee receives the share in multiple ways
| path |
| /child1 |
@skipOnOcV10 @issue-39347
Scenario Outline: Share receiver renames the received group share and shares same folder through user share again
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created
@@ -567,7 +567,7 @@ Feature: share resources where the sharee receives the share in multiple ways
| 1 | 100 |
| 2 | 200 |
@skipOnOcV10 @issue-39347
Scenario Outline: Share receiver renames a group share and receives same resource through user share with additional permissions
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created
@@ -596,7 +596,7 @@ Feature: share resources where the sharee receives the share in multiple ways
| 1 |
| 2 |
@skipOnOcV10 @issue-39347
Scenario Outline: Share receiver renames a group share and receives same resource through user share with less permissions
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created

View File

@@ -1,130 +0,0 @@
@api @files_sharing-app-required @notToImplementOnOCIS
Feature: share resources where the sharee receives the share in multiple ways
# These are the bug demonstration scenarios for https://github.com/owncloud/core/issues/39347
# Once the issue is fixed, delete this file and unskip all the respective tests tagged with @issue-39347
Background:
Given the administrator has set the default folder for received shares to "Shares"
And auto-accept shares has been disabled
And these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
Scenario Outline: Share receiver renames the received group share and shares same folder through user share again
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created
And user "Brian" has been added to group "grp"
And user "Alice" has been added to group "grp"
And user "Alice" has created folder "parent"
And user "Alice" has created folder "parent/child"
And user "Alice" has uploaded file with content "Share content" to "parent/child/lorem.txt"
And user "Alice" has created a share with settings
| path | parent |
| shareType | group |
| shareWith | grp |
| permissions | read |
When user "Brian" accepts share "/parent" offered by user "Alice" using the sharing API
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Brian" should be able to rename folder "/Shares/parent" to "/Shares/sharedParent"
And user "Alice" should be able to share folder "parent" with user "Brian" with permissions "read" using the sharing API
And user "Brian" should be able to accept pending share "/parent" offered by user "Alice"
And as "Brian" folder "Shares/parent" should exist
And as "Brian" folder "Shares/sharedParent" should not exist
And as "Brian" file "Shares/sharedParent/child/lorem.txt" should not exist
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |
# Note: after fixing the bug, this scenario is no longer relevant.
# Brian should not get a chance to decline (or accept) the 2nd share of the resource from Alice
Scenario Outline: Share receiver renames the received group share and declines another share of same folder through user share again
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created
And user "Brian" has been added to group "grp"
And user "Alice" has been added to group "grp"
And user "Alice" has created folder "parent"
And user "Alice" has created folder "parent/child"
And user "Alice" has uploaded file with content "Share content" to "parent/child/lorem.txt"
And user "Alice" has created a share with settings
| path | parent |
| shareType | group |
| shareWith | grp |
| permissions | read |
When user "Brian" accepts share "/parent" offered by user "Alice" using the sharing API
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Brian" should be able to rename folder "/Shares/parent" to "/Shares/sharedParent"
And user "Alice" should be able to share folder "parent" with user "Brian" with permissions "read" using the sharing API
And user "Brian" should be able to decline pending share "/parent" offered by user "Alice"
And as "Brian" folder "Shares/parent" should not exist
And as "Brian" folder "Shares/sharedParent" should not exist
And as "Brian" file "Shares/sharedParent/child/lorem.txt" should not exist
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |
Scenario Outline: Share receiver renames a group share and receives same resource through user share with additional permissions
Given using OCS API version "<ocs_api_version>"
And group "grp" has been created
And user "Brian" has been added to group "grp"
And user "Alice" has been added to group "grp"
And user "Alice" has created folder "parent"
And user "Alice" has created folder "parent/child"
And user "Alice" has uploaded file with content "Share content" to "parent/child/lorem.txt"
And user "Alice" has created a share with settings
| path | parent |
| shareType | group |
| shareWith | grp |
| permissions | read |
When user "Brian" accepts share "/parent" offered by user "Alice" using the sharing API
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Brian" should be able to rename folder "/Shares/parent" to "/Shares/sharedParent"
And user "Alice" should be able to share folder "parent" with user "Brian" with permissions "all" using the sharing API
And user "Brian" should be able to accept pending share "/parent" offered by user "Alice"
And as "Brian" folder "Shares/parent" should exist
And as "Brian" folder "Shares/sharedParent" should not exist
And as "Brian" file "Shares/sharedParent/child/lorem.txt" should not exist
And as "Brian" file "Shares/parent/child/lorem.txt" should exist
And user "Brian" should be able to delete file "Shares/parent/child/lorem.txt"
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |
Scenario Outline: Share receiver renames a group share and receives same resource through user share with less permissions
Given using OCS API version "<ocs_api_version> "
And group "grp" has been created
And user "Brian" has been added to group "grp"
And user "Alice" has been added to group "grp"
And user "Alice" has created folder "parent"
And user "Alice" has created folder "parent/child"
And user "Alice" has uploaded file with content "Share content" to "parent/child/lorem.txt"
And user "Alice" has created a share with settings
| path | parent |
| shareType | group |
| shareWith | grp |
| permissions | all |
When user "Brian" accepts share "/parent" offered by user "Alice" using the sharing API
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Brian" should be able to rename folder "/Shares/parent" to "/Shares/sharedParent"
And user "Alice" should be able to share folder "parent" with user "Brian" with permissions "read" using the sharing API
And user "Brian" should be able to accept pending share "/parent" offered by user "Alice"
And as "Brian" folder "Shares/parent" should exist
And as "Brian" folder "Shares/sharedParent" should not exist
And as "Brian" file "Shares/sharedParent/child/lorem.txt" should not exist
And as "Brian" file "Shares/parent/child/lorem.txt" should exist
And user "Brian" should be able to delete file "Shares/parent/child/lorem.txt"
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |

View File

@@ -587,7 +587,7 @@ Feature: create a public link share
| old |
| new |
@issue-37605 @skipOnOcV10
Scenario: Get the mtime of a file inside a folder shared by public link using new webDAV version
Given user "Alice" has created folder "testFolder"
And user "Alice" has created a public link share with settings
@@ -599,7 +599,7 @@ Feature: create a public link share
And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT"
And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT"
@issue-37605 @skipOnOcV10
Scenario: overwriting a file changes its mtime (new public webDAV API)
Given user "Alice" has created folder "testFolder"
When user "Alice" uploads file with content "uploaded content for file name ending with a dot" to "testFolder/file.txt" using the WebDAV API

View File

@@ -1,31 +0,0 @@
@api @files_sharing-app-required @public_link_share-feature-required @notToImplementOnOCIS
Feature: create a public link share
Background:
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has created folder "testFolder"
And user "Alice" has created a public link share with settings
| path | /testFolder |
| permissions | read,update,create,delete |
@issue-37605
Scenario: Get the mtime of a file inside a folder shared by public link using new webDAV version
When the public uploads file "file.txt" to the last public link shared folder with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the new public WebDAV API
Then the HTTP status code should be "201"
And as "Alice" file "testFolder/file.txt" should exist
And as "Alice" the mtime of the file "testFolder/file.txt" should not be "Thu, 08 Aug 2019 04:18:13 GMT"
# And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT"
And the mtime of file "file.txt" in the last shared public link using the WebDAV API should not be "Thu, 08 Aug 2019 04:18:13 GMT"
# And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT"
@issue-37605
Scenario: overwriting a file changes its mtime (new public webDAV API)
Given user "Alice" has uploaded file with content "uploaded content for file name ending with a dot" to "testFolder/file.txt"
When the public uploads file "file.txt" to the last public link shared folder with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the new public WebDAV API
Then the HTTP status code should be "204"
And as "Alice" file "/testFolder/file.txt" should exist
And as "Alice" the mtime of the file "testFolder/file.txt" should not be "Thu, 08 Aug 2019 04:18:13 GMT"
# And as "Alice" the mtime of the file "testFolder/file.txt" should be "Thu, 08 Aug 2019 04:18:13 GMT"
And the mtime of file "file.txt" in the last shared public link using the WebDAV API should not be "Thu, 08 Aug 2019 04:18:13 GMT"
# And the mtime of file "file.txt" in the last shared public link using the WebDAV API should be "Thu, 08 Aug 2019 04:18:13 GMT"

View File

@@ -59,7 +59,7 @@ Feature: copying from public link share
And as "Alice" file "/PARENT/copy1.txt" should exist
And the content of file "/PARENT/copy1.txt" for user "Alice" should be "some data 0"
@skipOnOcV10 @issue-ocis-reva-373 @issue-37683
@issue-ocis-reva-373
Scenario: Copy folder within a public link folder to the same folder name as an already existing file
Given user "Alice" has created folder "/PARENT/testFolder"
And user "Alice" has uploaded file with content "some data" to "/PARENT/testFolder/testfile.txt"
@@ -85,7 +85,7 @@ Feature: copying from public link share
Then the HTTP status code should be "204"
And as "Alice" file "/PARENT/copy1.txt" should not exist
@skipOnOcV10 @issue-ocis-reva-373 @issue-37683
@issue-ocis-reva-373
Scenario: Copy file within a public link folder to a file with name same as an existing folder
Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt"
And user "Alice" has created folder "/PARENT/new-folder"

View File

@@ -1,37 +0,0 @@
@api @files_sharing-app-required @public_link_share-feature-required @issue-ocis-reva-310 @notToImplementOnOCIS
Feature: copying from public link share
Background:
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has created folder "/PARENT"
@issue-ocis-reva-373 @issue-37683 @skipOnLDAP @issue-user_ldap-702
Scenario: Copy folder within a public link folder to the same folder name as an already existing file
Given user "Alice" has created folder "/PARENT/testFolder"
And user "Alice" has uploaded file with content "some data" to "/PARENT/testFolder/testfile.txt"
And user "Alice" has uploaded file with content "some data 1" to "/PARENT/copy1.txt"
And user "Alice" has created a public link share with settings
| path | /PARENT |
| permissions | read,update,create,delete |
When the public copies folder "/testFolder" to "/copy1.txt" using the new public WebDAV API
Then the HTTP status code should be "204"
And as "Alice" folder "/PARENT/testFolder" should exist
And as "Alice" folder "/PARENT/copy1.txt" should exist
And as "Alice" file "/PARENT/copy1.txt/testfile.txt" should exist
And the content of file "/PARENT/copy1.txt/testfile.txt" for user "Alice" should be "some data"
And the content of file "/PARENT/testFolder/testfile.txt" for user "Alice" should be "some data"
@issue-ocis-reva-373 @issue-37683
Scenario: Copy file within a public link folder to a file with name same as an existing folder
Given user "Alice" has uploaded file with content "some data" to "/PARENT/testfile.txt"
And user "Alice" has created folder "/PARENT/new-folder"
And user "Alice" has uploaded file with content "some data 1" to "/PARENT/new-folder/testfile1.txt"
And user "Alice" has created a public link share with settings
| path | /PARENT |
| permissions | read,update,create,delete |
When the public copies file "/testfile.txt" to "/new-folder" using the new public WebDAV API
Then the HTTP status code should be "204"
And as "Alice" file "/PARENT/testfile.txt" should exist
And as "Alice" file "/PARENT/new-folder" should exist
And the content of file "/PARENT/testfile.txt" for user "Alice" should be "some data"
And the content of file "/PARENT/new-folder" for user "Alice" should be "some data"

View File

@@ -5,7 +5,7 @@ Feature: update a public link share
Given using OCS API version "1"
And user "Alice" has been created with default attributes and without skeleton files
@issue-37653 @skipOnOcV10
Scenario Outline: API responds with a full set of parameters when owner changes the expireDate of a public share
Given using OCS API version "<ocs_api_version>"
And user "Alice" has created folder "FOLDER"
@@ -78,50 +78,6 @@ Feature: update a public link share
| 1 | 100 |
| 2 | 200 |
@notToImplementOnOCIS @issue-39820
Scenario Outline: API responds with a full set of parameters when owner renames the folder with a public link (bug demonstration)
Given using OCS API version "<ocs_api_version>"
And using <dav-path> DAV path
And user "Alice" has created folder "FOLDER"
And user "Alice" has created a public link share with settings
| path | FOLDER |
And user "Alice" has moved folder "/FOLDER" to "/RENAMED_FOLDER"
When user "Alice" gets the info of the last public link share using the sharing API
Then the OCS status code should be "<ocs_status_code>"
And the HTTP status code should be "200"
And the fields of the last response to user "Alice" should include
| id | A_STRING |
| share_type | public_link |
| uid_owner | %username% |
| displayname_owner | %displayname% |
| permissions | read |
| stime | A_NUMBER |
| parent | |
| expiration | |
| token | A_STRING |
| uid_file_owner | %username% |
| displayname_file_owner | %displayname% |
| additional_info_owner | |
| additional_info_file_owner | |
| item_type | folder |
| item_source | A_STRING |
| path | /RENAMED_FOLDER |
| mimetype | httpd/unix-directory |
| storage_id | A_STRING |
| storage | A_STRING |
| file_source | A_STRING |
# uncomment the following line and remove the next one after the issue has been fixed
# | file_target | /RENAMED_FOLDER |
| file_target | /FOLDER |
| mail_send | 0 |
| name | |
Examples:
| dav-path | ocs_api_version | ocs_status_code |
| old | 1 | 100 |
| old | 2 | 200 |
| new | 1 | 100 |
| new | 2 | 200 |
Scenario Outline: Creating a new public link share with password and adding an expiration date using public API
Given using OCS API version "<ocs_api_version>"
@@ -521,49 +477,6 @@ Feature: update a public link share
| spaces | 1 | 100 |
| spaces | 2 | 200 |
@notToImplementOnOCIS @issue-39820
Scenario Outline: API responds with a full set of parameters when owner renames the file with a public link (bug demonstration)
Given using OCS API version "<ocs_api_version>"
And using <dav-path> DAV path
And user "Alice" has uploaded file with content "some content" to "/lorem.txt"
And user "Alice" has created a public link share with settings
| path | lorem.txt |
And user "Alice" has moved file "/lorem.txt" to "/new-lorem.txt"
When user "Alice" gets the info of the last public link share using the sharing API
Then the OCS status code should be "<ocs_status_code>"
And the HTTP status code should be "200"
And the fields of the last response to user "Alice" should include
| id | A_STRING |
| share_type | public_link |
| uid_owner | %username% |
| displayname_owner | %displayname% |
| permissions | read |
| stime | A_NUMBER |
| parent | |
| expiration | |
| token | A_STRING |
| uid_file_owner | %username% |
| displayname_file_owner | %displayname% |
| additional_info_owner | |
| additional_info_file_owner | |
| item_type | file |
| item_source | A_STRING |
| path | /new-lorem.txt |
| mimetype | text/plain |
| storage_id | A_STRING |
| storage | A_STRING |
| file_source | A_STRING |
# uncomment the following line and remove the next one after the issue has been fixed
# | file_target | /new-lorem.txt |
| file_target | /lorem.txt |
| mail_send | 0 |
| name | |
Examples:
| dav-path | ocs_api_version | ocs_status_code |
| old | 1 | 100 |
| old | 2 | 200 |
| new | 1 | 100 |
| new | 2 | 200 |
@skipOnOcV10
Scenario Outline: API responds with a full set of parameters when owner renames the file with a public link in ocis

View File

@@ -1,47 +0,0 @@
@api @files_sharing-app-required @public_link_share-feature-required @notToImplementOnOCIS
Feature: update a public link share
Background:
Given using OCS API version "1"
And user "Alice" has been created with default attributes and without skeleton files
@issue-37653
Scenario Outline: API responds with a full set of parameters when owner changes the expireDate of a public share
Given using OCS API version "<ocs_api_version>"
And user "Alice" has created folder "FOLDER"
And user "Alice" has created a public link share with settings
| path | FOLDER |
When user "Alice" updates the last public link share using the sharing API with
| expireDate | 2040-01-01T23:59:59+0100 |
Then the OCS status code should be "<ocs_status_code>"
And the OCS status message should be ""
#And the OCS status message should be "Ok"
And the HTTP status code should be "200"
And the fields of the last response to user "Alice" should include
| id | A_STRING |
| share_type | public_link |
| uid_owner | %username% |
| displayname_owner | %displayname% |
| permissions | read |
| stime | A_NUMBER |
| parent | |
| expiration | A_STRING |
| token | A_STRING |
| uid_file_owner | %username% |
| displayname_file_owner | %displayname% |
| additional_info_owner | |
| additional_info_file_owner | |
| item_type | folder |
| item_source | A_STRING |
| path | /FOLDER |
| mimetype | httpd/unix-directory |
| storage_id | A_STRING |
| storage | A_NUMBER |
| file_source | A_STRING |
| file_target | /FOLDER |
| mail_send | 0 |
| name | |
Examples:
| ocs_api_version | ocs_status_code |
| 1 | 100 |
| 2 | 200 |

View File

@@ -348,7 +348,7 @@ Feature: resharing a resource with an expiration date
| 1 | no | 100 |
| 2 | no | 200 |
@skipOnOcV10 @issue-37013
Scenario Outline: reshare extends the received expiry date up to the default by default
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "<default-expire-date>"
@@ -383,7 +383,7 @@ Feature: resharing a resource with an expiration date
| 1 | no | no | 100 |
| 2 | no | no | 200 |
@skipOnOcV10 @issue-37013
Scenario Outline: reshare cannot extend the received expiry date further into the future
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "<default-expire-date>"
@@ -415,7 +415,7 @@ Feature: resharing a resource with an expiration date
| 1 | no |
| 2 | no |
@skipOnOcV10 @issue-37013
Scenario Outline: reshare cannot extend the received expiry date past the default when the default is enforced
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "yes"

View File

@@ -1,110 +0,0 @@
@api @files_sharing-app-required @issue-ocis-1250 @notToImplementOnOCIS
Feature: resharing a resource with an expiration date
Background:
Given the administrator has set the default folder for received shares to "Shares"
And auto-accept shares has been disabled
And these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/textfile0.txt"
@issue-37013
Scenario Outline: reshare extends the received expiry date up to the default by default
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "<default-expire-date>"
And parameter "shareapi_enforce_expire_date_user_share" of app "core" has been set to "<enforce-expire-date>"
And parameter "shareapi_expire_after_n_days_user_share" of app "core" has been set to "30"
And user "Carol" has been created with default attributes and without skeleton files
And user "Alice" has created a share with settings
| path | textfile0.txt |
| shareType | user |
| permissions | all |
| shareWith | Brian |
| expireDate | +20 days |
And user "Brian" has accepted share "/textfile0.txt" offered by user "Alice"
When user "Brian" creates a share using the sharing API with settings
| path | /Shares/textfile0.txt |
| shareType | user |
| permissions | change |
| shareWith | Carol |
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Carol" should be able to accept pending share "/textfile0.txt" offered by user "Brian"
And the information of the last share of user "Alice" should include
| expiration | +20 days |
And the response when user "Carol" gets the info of the last share should include
| expiration | <actual-expire-date> |
Examples:
| ocs_api_version | default-expire-date | enforce-expire-date | actual-expire-date | ocs_status_code |
| 1 | yes | yes | +30 days | 100 |
| 2 | yes | yes | +30 days | 200 |
| 1 | yes | no | | 100 |
| 2 | yes | no | | 200 |
| 1 | no | no | | 100 |
| 2 | no | no | | 200 |
@issue-37013
Scenario Outline: reshare can extend the received expiry date further into the future
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "<default-expire-date>"
And parameter "shareapi_enforce_expire_date_user_share" of app "core" has been set to "no"
And parameter "shareapi_expire_after_n_days_user_share" of app "core" has been set to "30"
And user "Carol" has been created with default attributes and without skeleton files
And user "Alice" has created a share with settings
| path | textfile0.txt |
| shareType | user |
| permissions | all |
| shareWith | Brian |
| expireDate | +20 days |
And user "Brian" has accepted share "/textfile0.txt" offered by user "Alice"
When user "Brian" creates a share using the sharing API with settings
| path | /Shares/textfile0.txt |
| shareType | user |
| permissions | change |
| shareWith | Carol |
| expireDate | +40 days |
Then the HTTP status code should be "200"
And the OCS status code should be "<ocs_status_code>"
And user "Carol" should be able to accept pending share "/textfile0.txt" offered by user "Brian"
And the information of the last share of user "Alice" should include
| expiration | +20 days |
And the response when user "Carol" gets the info of the last share should include
| expiration | +40 days |
Examples:
| ocs_api_version | default-expire-date | ocs_status_code |
| 1 | yes | 100 |
| 2 | yes | 200 |
| 1 | no | 100 |
| 2 | no | 200 |
@issue-37013
Scenario Outline: reshare cannot extend the received expiry date past the default when the default is enforced
Given using OCS API version "<ocs_api_version>"
And parameter "shareapi_default_expire_date_user_share" of app "core" has been set to "yes"
And parameter "shareapi_enforce_expire_date_user_share" of app "core" has been set to "yes"
And parameter "shareapi_expire_after_n_days_user_share" of app "core" has been set to "30"
And user "Carol" has been created with default attributes and without skeleton files
And user "Alice" has created a share with settings
| path | textfile0.txt |
| shareType | user |
| permissions | all |
| shareWith | Brian |
| expireDate | +20 days |
And user "Brian" has accepted share "/textfile0.txt" offered by user "Alice"
When user "Brian" creates a share using the sharing API with settings
| path | /Shares/textfile0.txt |
| shareType | user |
| permissions | change |
| shareWith | Carol |
| expireDate | +40 days |
Then the HTTP status code should be "<http_status_code>"
And the OCS status code should be "404"
And the sharing API should report to user "Carol" that no shares are in the pending state
And the information of the last share of user "Alice" should include
| expiration | +20 days |
Examples:
| ocs_api_version | http_status_code |
| 1 | 200 |
| 2 | 404 |

View File

@@ -99,7 +99,7 @@ Feature: files and folders exist in the trashbin after being deleted
| dav-path |
| spaces |
@skipOnOcV10 @issue-23151
# This scenario deletes many files as close together in time as the test can run.
# On a very slow system, the file deletes might all happen in different seconds.
# But on "reasonable" systems, some of the files will be deleted in the same second,

View File

@@ -1,43 +0,0 @@
@api @files_trashbin-app-required @issue-ocis-reva-52 @notToImplementOnOCIS
Feature: files and folders exist in the trashbin after being deleted
As a user
I want deleted files and folders to be available in the trashbin
So that I can recover data easily
Background:
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has uploaded file with content "to delete" to "/textfile0.txt"
# This scenario deletes many files as close together in time as the test can run.
# On a very slow system, the file deletes might all happen in different seconds.
# But on "reasonable" systems, some of the files will be deleted in the same second,
# thus testing the required behavior.
# Note: skipOnDbOracle because Oracle is slow and so "close together in time" does not really happen
@issue-23151 @skipOnDbOracle
Scenario Outline: trashbin can store two files with the same name but different origins when the files are deleted close together in time
Given using <dav-path> DAV path
And user "Alice" has created folder "/folderA"
And user "Alice" has created folder "/folderB"
And user "Alice" has created folder "/folderC"
And user "Alice" has created folder "/folderD"
And user "Alice" has copied file "/textfile0.txt" to "/folderA/textfile0.txt"
And user "Alice" has copied file "/textfile0.txt" to "/folderB/textfile0.txt"
And user "Alice" has copied file "/textfile0.txt" to "/folderC/textfile0.txt"
And user "Alice" has copied file "/textfile0.txt" to "/folderD/textfile0.txt"
When user "Alice" deletes these files without delays using the WebDAV API
| /textfile0.txt |
| /folderA/textfile0.txt |
| /folderB/textfile0.txt |
| /folderC/textfile0.txt |
| /folderD/textfile0.txt |
Then the HTTP status code of responses on all endpoints should be "204"
# When issue-23151 is fixed, uncomment these lines. They should pass reliably.
# These files may or may not exist in the trashbin
# Then as "Alice" the folder with original path "/folderA/textfile0.txt" should not exist in the trashbin
# And as "Alice" the folder with original path "/folderB/textfile0.txt" should not exist in the trashbin
# And as "Alice" the folder with original path "/folderC/textfile0.txt" should not exist in the trashbin
# And as "Alice" the folder with original path "/folderD/textfile0.txt" should not exist in the trashbin
And as "Alice" the folder with original path "/textfile0.txt" should exist in the trashbin
Examples:
| dav-path |
| new |

View File

@@ -92,7 +92,7 @@ Feature: Restore deleted files/folders
| old | /textfile0.txt | PARENT/textfile0.txt |
| new | /textfile0.txt | PARENT/textfile0.txt |
@skipOnOcV10 @issue-35974
Scenario Outline: restoring a file to an already existing path overrides the file
Given user "Alice" has uploaded file with content "file to delete" to "/.hiddenfile0.txt"
And using <dav-path> DAV path

View File

@@ -1,34 +0,0 @@
@api @files_trashbin-app-required @issue-ocis-reva-52 @notToImplementOnOCIS
Feature: Restore deleted files/folders
As a user
I would like to restore files/folders
So that I can recover accidentally deleted files/folders in ownCloud
@issue-35974
Scenario Outline: restoring a file to an already existing path overrides the file
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has uploaded file with content "file to delete" to "/textfile0.txt"
And user "Alice" has uploaded file with content "file to delete" to "/.hiddenfile0.txt"
And using <dav-path> DAV path
And user "Alice" has created folder "/PARENT"
And user "Alice" has uploaded file with content "PARENT file content" to <upload-path>
And user "Alice" has deleted file <delete-path>
When user "Alice" restores the file with original path <delete-path> to <upload-path> using the trashbin API
Then the HTTP status code should be "204"
# Sometimes <upload-path> is found in the trashbin. Should it? Or not?
# That seems to be what happens when the restore-overwrite happens properly,
# The original <upload-path> seems to be "deleted" and so goes to the trashbin
#And as "Alice" the file with original path <upload-path> should not exist in the trashbin
And as "Alice" file <upload-path> should exist
# sometimes the restore from trashbin does overwrite the existing file, but sometimes it does not. That is also surprising.
# the current observed behavior is that if the original <upload-path> ended up in the trashbin,
# then the new <upload-path> has the "file to delete" content.
# otherwise <upload-path> has its old content
And the content of file <upload-path> for user "Alice" if the file is also in the trashbin should be "file to delete" otherwise "PARENT file content"
#And the content of file <upload-path> for user "Alice" should be "file to delete"
Examples:
| dav-path | upload-path | delete-path |
| old | "/PARENT/textfile0.txt" | "/textfile0.txt" |
| new | "/PARENT/textfile0.txt" | "/textfile0.txt" |
| old | "/PARENT/.hiddenfile0.txt" | ".hiddenfile0.txt" |
| new | "/PARENT/.hiddenfile0.txt" | ".hiddenfile0.txt" |

View File

@@ -66,7 +66,7 @@ Feature: there can be only one exclusive lock on a resource
| new | shared |
| new | exclusive |
@skipOnOcV10 @issue-34358 @notToImplementOnOCIS
@notToImplementOnOCIS
Scenario Outline: if a child resource is exclusively locked a parent resource cannot be locked again
Given using <dav-path> DAV path
And user "Alice" has created folder "PARENT"

View File

@@ -1,22 +0,0 @@
@api @notToImplementOnOCIS @issue-ocis-reva-172
Feature: there can be only one exclusive lock on a resource
@issue-34358
Scenario Outline: if a child resource is exclusively locked a parent resource cannot be locked again
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has created folder "PARENT"
And user "Alice" has created folder "PARENT/CHILD"
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/CHILD/child.txt"
And using <dav-path> DAV path
And user "Alice" has locked folder "PARENT/CHILD" setting the following properties
| lockscope | exclusive |
When user "Alice" locks folder "PARENT" using the WebDAV API setting the following properties
| lockscope | <lock-scope> |
Then the HTTP status code should be "200"
And 2 locks should be reported for file "PARENT/CHILD/child.txt" of user "Alice" by the WebDAV API
Examples:
| dav-path | lock-scope |
| old | shared |
| old | exclusive |
| new | shared |
| new | exclusive |

View File

@@ -63,7 +63,7 @@ Feature: actions on a locked item are possible if the token is sent with the req
| new | shared |
| new | exclusive |
@skipOnOcV10 @issue-34338 @files_sharing-app-required @notToImplementOnOCIS
@files_sharing-app-required @notToImplementOnOCIS
Scenario Outline: share receiver cannot rename a file in a folder locked by the owner even when sending the locktoken
Given using <dav-path> DAV path
And user "Alice" has created folder "PARENT"
@@ -101,7 +101,7 @@ Feature: actions on a locked item are possible if the token is sent with the req
| shared | new | 423 |
| exclusive | new | 423 |
@skipOnOcV10 @issue-34360 @files_sharing-app-required
@files_sharing-app-required
Scenario Outline: two users having both a shared lock can use the resource
Given using <dav-path> DAV path
And user "Brian" has been created with default attributes and without skeleton files

View File

@@ -1,25 +0,0 @@
@api @notToImplementOnOCIS @issue-ocis-reva-172
Feature: actions on a locked item are possible if the token is sent with the request
@issue-34338 @files_sharing-app-required
Scenario Outline: share receiver cannot rename a file in a folder locked by the owner even when sending the locktoken
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And using <dav-path> DAV path
And user "Alice" has created folder "PARENT"
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt"
And user "Alice" has shared folder "PARENT" with user "Brian"
And user "Alice" has locked folder "PARENT" setting the following properties
| lockscope | <lock-scope> |
When user "Brian" moves file "PARENT/parent.txt" to "PARENT/renamed-file.txt" sending the locktoken of file "PARENT" of user "Alice" using the WebDAV API
Then the HTTP status code should be "201"
And as "Alice" file "/PARENT/parent.txt" should not exist
But as "Alice" file "/PARENT/renamed-file.txt" should exist
Examples:
| dav-path | lock-scope |
| old | shared |
| old | exclusive |
| new | shared |
| new | exclusive |

View File

@@ -1,29 +0,0 @@
@api @notToImplementOnOCIS @issue-ocis-reva-172
Feature: actions on a locked item are possible if the token is sent with the request
@issue-34360 @files_sharing-app-required
Scenario Outline: two users having both a shared lock can use the resource
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And using <dav-path> DAV path
And user "Alice" has uploaded file with content "ownCloud test text file 0" to "textfile0.txt"
And user "Brian" has uploaded file with content "ownCloud test text file 0" to "textfile0.txt"
And user "Alice" has shared file "textfile0.txt" with user "Brian"
And user "Alice" has locked file "textfile0.txt" setting the following properties
| lockscope | shared |
And user "Brian" has locked file "textfile0 (2).txt" setting the following properties
| lockscope | shared |
When user "Alice" uploads file with content "from user 0" to "textfile0.txt" sending the locktoken of file "textfile0.txt" using the WebDAV API
Then the HTTP status code should be "423"
And the content of file "textfile0.txt" for user "Alice" should be "ownCloud test text file 0"
And the content of file "textfile0 (2).txt" for user "Brian" should be "ownCloud test text file 0"
When user "Brian" uploads file with content "from user 1" to "textfile0 (2).txt" sending the locktoken of file "textfile0 (2).txt" using the WebDAV API
Then the HTTP status code should be "423"
And the content of file "textfile0.txt" for user "Alice" should be "ownCloud test text file 0"
And the content of file "textfile0 (2).txt" for user "Brian" should be "ownCloud test text file 0"
Examples:
| dav-path |
| old |
| new |

View File

@@ -64,7 +64,7 @@ Feature: UNLOCK locked items
| new | shared |
| new | exclusive |
@skipOnOcV10 @issue-34302 @files_sharing-app-required
@files_sharing-app-required
Scenario Outline: as public unlocking a file in a share that was locked by the file owner is not possible. To unlock use the owners locktoken
Given user "Alice" has created folder "PARENT"
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt"

View File

@@ -1,19 +0,0 @@
@api @notToImplementOnOCIS @issue-ocis-reva-172
Feature: UNLOCK locked items
@issue-34302 @files_sharing-app-required
Scenario Outline: as public unlocking a file in a share that was locked by the file owner is not possible. To unlock use the owners locktoken
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has created folder "PARENT"
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt"
And user "Alice" has created a public link share of folder "PARENT" with change permission
And user "Alice" has locked file "PARENT/parent.txt" setting the following properties
| lockscope | <lock-scope> |
When the public unlocks file "/parent.txt" with the last created lock of file "PARENT/parent.txt" of user "Alice" using the WebDAV API
Then the HTTP status code should be "405"
#Then the HTTP status code should be "403"
And 1 locks should be reported for file "PARENT/parent.txt" of user "Alice" by the WebDAV API
Examples:
| lock-scope |
| shared |
| exclusive |

View File

@@ -9,20 +9,20 @@ Feature: users cannot upload a file to a blacklisted name using old chunking
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
@skipOnOcV10 @issue-36645 @notToImplementOnOCIS
@notToImplementOnOCIS
Scenario: Upload a file to a filename that is banned by default using old chunking
When user "Alice" uploads file "filesForUpload/textfile.txt" to "/.htaccess" in 3 chunks using the WebDAV API
Then the HTTP status code should be "403"
And as "Alice" file ".htaccess" should not exist
@skipOnOcV10 @issue-36645
Scenario: Upload a file to a banned filename using old chunking
Given the administrator has updated system config key "blacklisted_files" with value '["blacklisted-file.txt",".htaccess"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "blacklisted-file.txt" in 3 chunks using the WebDAV API
Then the HTTP status code should be "403"
And as "Alice" file "blacklisted-file.txt" should not exist
@skipOnOcV10 @issue-36645
Scenario Outline: upload a file to a filename that matches blacklisted_files_regex using old chunking
# Note: we have to write JSON for the value, and to get a backslash in the double-quotes we have to escape it
# The actual regular expressions end up being .*\.ext$ and ^bannedfilename\..+

View File

@@ -1,39 +0,0 @@
@notToImplementOnOCIS @api @issue-ocis-reva-15
Feature: users cannot upload a file to a blacklisted name using old chunking
As an administrator
I want to be able to prevent users from uploading files to specified file names
So that I can prevent unwanted file names existing in the cloud storage
Background:
Given using OCS API version "1"
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
@issue-36645
Scenario: Upload a file to a filename that is banned by default using old chunking
When user "Alice" uploads file "filesForUpload/textfile.txt" to "/.htaccess" in 3 chunks using the WebDAV API
Then the HTTP status code should be "507"
# Then the HTTP status code should be "403"
And as "Alice" file ".htaccess" should not exist
@issue-36645
Scenario: Upload a file to a banned filename using old chunking
Given the administrator has updated system config key "blacklisted_files" with value '["blacklisted-file.txt",".htaccess"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "blacklisted-file.txt" in 3 chunks using the WebDAV API
Then the HTTP status code should be "507"
# Then the HTTP status code should be "403"
And as "Alice" file "blacklisted-file.txt" should not exist
@issue-36645
Scenario Outline: upload a file to a filename that matches blacklisted_files_regex using old chunking
# Note: we have to write JSON for the value, and to get a backslash in the double-quotes we have to escape it
# The actual regular expressions end up being .*\.ext$ and ^bannedfilename\..+
Given the administrator has updated system config key "blacklisted_files_regex" with value '[".*\\.ext$","^bannedfilename\\..+","containsbannedstring"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "<filename>" in 3 chunks using the WebDAV API
Then the HTTP status code should be "<http-status>"
And as "Alice" file "<filename>" should not exist
Examples:
| filename | http-status | comment |
| filename.ext | 507 | issue-36645 |
| bannedfilename.txt | 403 | ok |
| this-ContainsBannedString.txt | 403 | ok |

View File

@@ -9,14 +9,14 @@ Feature: users cannot upload a file to or into an excluded directory using old c
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
@skipOnOcV10 @issue-36645
Scenario: Upload a file to an excluded directory name using old chunking
Given the administrator has updated system config key "excluded_directories" with value '[".github"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "/.github" in 3 chunks using the WebDAV API
Then the HTTP status code should be "403"
And as "Alice" file ".github" should not exist
@skipOnOcV10 @issue-36645
Scenario: Upload a file to an excluded directory name inside a parent directory using old chunking
Given user "Alice" has created folder "FOLDER"
And the administrator has updated system config key "excluded_directories" with value '[".github"]' and type "json"
@@ -25,7 +25,7 @@ Feature: users cannot upload a file to or into an excluded directory using old c
And as "Alice" folder "/FOLDER" should exist
But as "Alice" file "/FOLDER/.github" should not exist
@skipOnOcV10 @issue-36645
Scenario Outline: upload a file to a filename that matches excluded_directories_regex using old chunking
# Note: we have to write JSON for the value, and to get a backslash in the double-quotes we have to escape it
# The actual regular expressions end up being endswith\.bad$ and ^\.git

View File

@@ -1,42 +0,0 @@
@notToImplementOnOCIS @api @issue-ocis-reva-15
Feature: users cannot upload a file to or into an excluded directory using old chunking
As an administrator
I want to be able to exclude directories (folders) from being processed. Any attempt to upload a file to one of those names should be refused.
So that I can have directories on my cloud server storage that are not available for syncing.
Background:
Given using OCS API version "1"
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
@issue-36645
Scenario: Upload a file to an excluded directory name using old chunking
Given the administrator has updated system config key "excluded_directories" with value '[".github"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "/.github" in 3 chunks using the WebDAV API
Then the HTTP status code should be "507"
# Then the HTTP status code should be "403"
And as "Alice" file ".github" should not exist
@issue-36645
Scenario: Upload a file to an excluded directory name inside a parent directory using old chunking
Given user "Alice" has created folder "FOLDER"
And the administrator has updated system config key "excluded_directories" with value '[".github"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "/FOLDER/.github" in 3 chunks using the WebDAV API
Then the HTTP status code should be "507"
# Then the HTTP status code should be "403"
And as "Alice" folder "/FOLDER" should exist
But as "Alice" file "/FOLDER/.github" should not exist
@issue-36645
Scenario Outline: upload a file to a filename that matches excluded_directories_regex using old chunking
# Note: we have to write JSON for the value, and to get a backslash in the double-quotes we have to escape it
# The actual regular expressions end up being endswith\.bad$ and ^\.git
Given the administrator has updated system config key "excluded_directories_regex" with value '["endswith\\.bad$","^\\.git","containsvirusinthename"]' and type "json"
When user "Alice" uploads file "filesForUpload/textfile.txt" to "<filename>" in 3 chunks using the WebDAV API
Then the HTTP status code should be "<http-status>"
And as "Alice" file "<filename>" should not exist
Examples:
| filename | http-status | comment |
| thisendswith.bad | 507 | issue-36645 |
| .github | 403 | ok |
| this-containsvirusinthename.txt | 403 | ok |

View File

@@ -8,7 +8,7 @@ Feature: upload file using old chunking
Given using OCS API version "1"
And user "Alice" has been created with default attributes and without skeleton files
@skipOnOcV10 @issue-36115
Scenario Outline: Upload chunked file asc
Given using <dav_version> DAV path
When user "Alice" uploads the following "3" chunks to "/myChunkedFile.txt" with old chunking and using the WebDAV API
@@ -162,7 +162,7 @@ Feature: upload file using old chunking
| spaces | @a#8a=b?c=d |
| spaces | ?abc=oc # |
@skipOnOcV10 @issue-36115
Scenario Outline: Upload chunked file with old chunking with lengthy filenames
Given using <dav_version> DAV path
Given the owncloud log level has been set to debug

View File

@@ -1,43 +0,0 @@
@notToImplementOnOCIS @api @issue-ocis-reva-17
Feature: upload file using old chunking
As a user
I want to be able to upload "large" files in chunks
So that the upload can be completed in less elapsed time
@issue-36115
Scenario: Upload chunked file asc
Given using OCS API version "1"
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
When user "Alice" uploads the following "3" chunks to "/myChunkedFile.txt" with old chunking and using the WebDAV API
| number | content |
| 1 | AAAAA |
| 2 | BBBBB |
| 3 | CCCCC |
Then the HTTP status code should be "201"
And the following headers should match these regular expressions for user "Alice"
| ETag | /^[a-f0-9:\.]{1,32}$/ |
# | ETag | /^"[a-f0-9:\.]{1,32}"$/ |
And as "Alice" file "/myChunkedFile.txt" should exist
And the content of file "/myChunkedFile.txt" for user "Alice" should be "AAAAABBBBBCCCCC"
Scenario: Upload chunked file with old chunking with lengthy filenames
Given using OCS API version "1"
And using old DAV path
And user "Alice" has been created with default attributes and without skeleton files
And the owncloud log level has been set to debug
And the owncloud log has been cleared
When user "Alice" uploads the following chunks to "ि-file--ि-file--ि-file--ि-file--ि-file--ि-file--12345678910.txt" with old chunking and using the WebDAV API
| number | content |
| 1 | AAAAAAAAAAAAAAAAAAAAAAAAA |
| 2 | BBBBBBBBBBBBBBBBBBBBBBBBB |
| 3 | CCCCCCCCCCCCCCCCCCCCCCCCC |
Then the HTTP status code should be "201"
And the following headers should match these regular expressions for user "Alice"
| ETag | /^[a-f0-9:\.]{1,32}$/ |
And as "Alice" file "ि-file--ि-file--ि-file--ि-file--ि-file--ि-file--12345678910.txt" should exist
And the content of file "ि-file--ि-file--ि-file--ि-file--ि-file--ि-file--12345678910.txt" for user "Alice" should be "AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCC"
And the log file should not contain any log-entries containing these attributes:
| app |
| dav |