copy feature files from core
This commit is contained in:
@@ -0,0 +1,342 @@
|
||||
@api
|
||||
Feature: download file
|
||||
As a user
|
||||
I want to be able to download files
|
||||
So that I can work wih local copies of files on my client system
|
||||
|
||||
Background:
|
||||
Given user "Alice" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "Welcome this is just an example file for developers." to "/welcome.txt"
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: download a file
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded content should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@issue-ocis-reva-12
|
||||
Scenario Outline: download a file with range
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=24-50" using the WebDAV API
|
||||
Then the HTTP status code should be "206"
|
||||
And the downloaded content should be "example file for developers"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download a file larger than 4MB (ref: https://github.com/sabre-io/http/pull/119 )
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has uploaded file "/file9000000.txt" ending with "text at end of file" of size 9000000 bytes
|
||||
When user "Alice" downloads file "/file9000000.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the size of the downloaded file should be 9000000 bytes
|
||||
And the downloaded content should end with "text at end of file"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@smokeTest @notToImplementOnOCIS
|
||||
Scenario Outline: Downloading a file should serve security headers
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Disposition | attachment; filename*=UTF-8''welcome.txt; filename="welcome.txt" |
|
||||
| Content-Security-Policy | default-src 'none'; |
|
||||
| X-Content-Type-Options | nosniff |
|
||||
| X-Download-Options | noopen |
|
||||
| X-Frame-Options | SAMEORIGIN |
|
||||
| X-Permitted-Cross-Domain-Policies | none |
|
||||
| X-Robots-Tag | none |
|
||||
| X-XSS-Protection | 0 |
|
||||
And the downloaded content should start with "Welcome"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@notToImplementOnOCIS
|
||||
Scenario Outline: Doing a GET with a web login should work without CSRF token on the new backend
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has logged in to a web-style session
|
||||
When the client sends a "GET" to "/remote.php/dav/files/%username%/welcome.txt" of user "Alice" without requesttoken
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded content should start with "Welcome"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@notToImplementOnOCIS
|
||||
Scenario Outline: Doing a GET with a web login should work with CSRF token on the new backend
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has logged in to a web-style session
|
||||
When the client sends a "GET" to "/remote.php/dav/files/%username%/welcome.txt" of user "Alice" with requesttoken
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded content should start with "Welcome"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: Get the size of a file
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has uploaded file with content "This is a test file" to "test-file.txt"
|
||||
When user "Alice" gets the size of file "test-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the size of the file should be "19"
|
||||
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@issue-ocis-reva-98
|
||||
Scenario Outline: Get the content-length response header of a pdf file
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/simple.pdf" to "/simple.pdf"
|
||||
When user "Alice" downloads file "/simple.pdf" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 9622 |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@issue-ocis-reva-98
|
||||
Scenario Outline: Get the content-length response header of an image file
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/testavatar.png" to "/testavatar.png"
|
||||
When user "Alice" downloads file "/testavatar.png" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 35323 |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Download a file with comma in the filename
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has uploaded file with content "file with comma in filename" to <filename>
|
||||
When user "Alice" downloads file <filename> using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded content should be "file with comma in filename"
|
||||
Examples:
|
||||
| dav_version | filename |
|
||||
| old | "sample,1.txt" |
|
||||
| old | ",,,.txt" |
|
||||
| old | ",,,.," |
|
||||
| new | "sample,1.txt" |
|
||||
| new | ",,,.txt" |
|
||||
| new | ",,,.," |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version | filename |
|
||||
| spaces | "sample,1.txt" |
|
||||
| spaces | ",,,.txt" |
|
||||
| spaces | ",,,.," |
|
||||
|
||||
|
||||
Scenario Outline: download a file with single part ranges
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=0-51" using the WebDAV API
|
||||
Then the HTTP status code should be "206"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 52 |
|
||||
| Content-Range | bytes 0-51/52 |
|
||||
And the downloaded content should be "Welcome this is just an example file for developers."
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download a file with multipart ranges
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=0-6, 40-51" using the WebDAV API
|
||||
Then the HTTP status code should be "206" or "200"
|
||||
And if the HTTP status code was "206" then the following headers should match these regular expressions
|
||||
| Content-Length | /\d+/ |
|
||||
| Content-Type | /^multipart\/byteranges; boundary=[a-zA-Z0-9_.-]*$/ |
|
||||
And if the HTTP status code was "206" then the downloaded content for multipart byterange should be:
|
||||
"""
|
||||
Content-type: text/plain;charset=UTF-8
|
||||
Content-range: bytes 0-6/52
|
||||
|
||||
Welcome
|
||||
|
||||
Content-type: text/plain;charset=UTF-8
|
||||
Content-range: bytes 40-51/52
|
||||
|
||||
developers.
|
||||
"""
|
||||
But if the HTTP status code was "200" then the downloaded content should be "Welcome this is just an example file for developers."
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download a file with last byte range out of bounds
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=0-55" using the WebDAV API
|
||||
Then the HTTP status code should be "206"
|
||||
And the downloaded content should be "Welcome this is just an example file for developers."
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download a range at the end of a file
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=-11" using the WebDAV API
|
||||
Then the HTTP status code should be "206"
|
||||
And the downloaded content should be "developers."
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download a file with range out of bounds
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" with range "bytes=55-60" using the WebDAV API
|
||||
Then the HTTP status code should be "416"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: download hidden files
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has created folder "/FOLDER"
|
||||
And user "Alice" has uploaded the following files with content "hidden file"
|
||||
| path |
|
||||
| .hidden_file |
|
||||
| /FOLDER/.hidden_file |
|
||||
When user "Alice" downloads the following files using the WebDAV API
|
||||
| path |
|
||||
| .hidden_file |
|
||||
| /FOLDER/.hidden_file |
|
||||
Then the HTTP status code of responses on all endpoints should be "200"
|
||||
And the content of the following files for user "Alice" should be "hidden file"
|
||||
| path |
|
||||
| .hidden_file |
|
||||
| /FOLDER/.hidden_file |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@smokeTest @skipOnOcV10
|
||||
Scenario Outline: Downloading a file should serve security headers
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" downloads file "/welcome.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Disposition | attachment; filename*=UTF-8''welcome.txt; filename="welcome.txt" |
|
||||
| Content-Security-Policy | default-src 'none'; |
|
||||
| X-Content-Type-Options | nosniff |
|
||||
| X-Download-Options | noopen |
|
||||
| X-Frame-Options | SAMEORIGIN |
|
||||
| X-Permitted-Cross-Domain-Policies | none |
|
||||
| X-Robots-Tag | none |
|
||||
| X-XSS-Protection | 1; mode=block |
|
||||
And the downloaded content should start with "Welcome"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: download a zero byte size file
|
||||
Given user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt"
|
||||
When user "Alice" downloads file "/zerobyte.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the size of the downloaded file should be 0 bytes
|
||||
@@ -0,0 +1,433 @@
|
||||
@api
|
||||
Feature: list files
|
||||
As a user
|
||||
I want to be able to list my files and folders (resources)
|
||||
So that I can understand my file structure in owncloud
|
||||
|
||||
Background:
|
||||
Given user "Alice" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created the following folders
|
||||
| path |
|
||||
| simple-folder |
|
||||
| simple-folder/simple-folder1 |
|
||||
| simple-folder/simple-empty-folder |
|
||||
| simple-folder/simple-folder1/simple-folder2 |
|
||||
And user "Alice" has uploaded the following files with content "simple-test-content"
|
||||
| path |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in the root folder with depth 0
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" lists the resources in "/" with depth "0" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should not contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/simple-empty-folder |
|
||||
| simple-folder/simple-folder1 |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in the root folder with depth 1
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" lists the resources in "/" with depth "1" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
And the last DAV response for user "Alice" should not contain these nodes
|
||||
| name |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/simple-empty-folder |
|
||||
| simple-folder/simple-folder1 |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindEnabled
|
||||
Scenario Outline: Get the list of resources in the root folder with depth infinity
|
||||
Given using <dav_version> DAV path
|
||||
And the administrator has set depth_infinity_allowed to 1
|
||||
When user "Alice" lists the resources in "/" with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/simple-empty-folder/ |
|
||||
| simple-folder/simple-folder1/ |
|
||||
| simple-folder/simple-folder1/simple-folder2 |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in a folder with depth 0
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" lists the resources in "/simple-folder" with depth "0" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should contain these nodes
|
||||
| name |
|
||||
| simple-folder/ |
|
||||
And the last DAV response for user "Alice" should not contain these nodes
|
||||
| name |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/simple-empty-folder |
|
||||
| simple-folder/simple-folder1 |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in a folder with depth 1
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" lists the resources in "/simple-folder" with depth "1" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should contain these nodes
|
||||
| name |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/simple-empty-folder |
|
||||
| simple-folder/simple-folder1 |
|
||||
And the last DAV response for user "Alice" should not contain these nodes
|
||||
| name |
|
||||
| simple-folder/simple-folder1/simple-folder2 |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindEnabled
|
||||
Scenario Outline: Get the list of resources in a folder with depth infinity
|
||||
Given using <dav_version> DAV path
|
||||
And the administrator has set depth_infinity_allowed to 1
|
||||
When user "Alice" lists the resources in "/simple-folder" with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last DAV response for user "Alice" should contain these nodes
|
||||
| name |
|
||||
| /simple-folder/textfile0.txt |
|
||||
| /simple-folder/welcome.txt |
|
||||
| /simple-folder/simple-folder1/ |
|
||||
| simple-folder/simple-folder1/simple-folder2 |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in a folder shared through public link with depth 0
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has created the following folders
|
||||
| path |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
And user "Alice" has created a public link share of folder "simple-folder"
|
||||
When the public lists the resources in the last created public link with depth "0" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last public link DAV response should not contain these nodes
|
||||
| name |
|
||||
| /textfile0.txt |
|
||||
| /welcome.txt |
|
||||
| /simple-folder1/ |
|
||||
| /simple-folder1/welcome.txt |
|
||||
| /simple-folder1/simple-folder2 |
|
||||
| /simple-folder1/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/welcome.txt |
|
||||
| /simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
@notToImplementOnOCIS @issue-ocis-2079
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
|
||||
Examples:
|
||||
| dav_version |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of resources in a folder shared through public link with depth 1
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has created the following folders
|
||||
| path |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
And user "Alice" has created a public link share of folder "simple-folder"
|
||||
When the public lists the resources in the last created public link with depth "1" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last public link DAV response should contain these nodes
|
||||
| name |
|
||||
| /textfile0.txt |
|
||||
| /welcome.txt |
|
||||
| /simple-folder1/ |
|
||||
And the last public link DAV response should not contain these nodes
|
||||
| name |
|
||||
| /simple-folder1/simple-folder2/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/welcome.txt |
|
||||
| /simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder1/welcome.txt |
|
||||
| /simple-folder1/simple-folder2 |
|
||||
| /simple-folder1/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
@notToImplementOnOCIS @issue-ocis-2079
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
|
||||
Examples:
|
||||
| dav_version |
|
||||
| new |
|
||||
|
||||
@depthInfinityPropfindEnabled
|
||||
Scenario Outline: Get the list of resources in a folder shared through public link with depth infinity
|
||||
Given using <dav_version> DAV path
|
||||
And the administrator has set depth_infinity_allowed to 1
|
||||
And user "Alice" has created the following folders
|
||||
| path |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
And user "Alice" has created a public link share of folder "simple-folder"
|
||||
When the public lists the resources in the last created public link with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the last public link DAV response should contain these nodes
|
||||
| name |
|
||||
| /textfile0.txt |
|
||||
| /welcome.txt |
|
||||
| /simple-folder1/ |
|
||||
| /simple-folder1/welcome.txt |
|
||||
| /simple-folder1/simple-folder2 |
|
||||
| /simple-folder1/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/textfile0.txt |
|
||||
| /simple-folder1/simple-folder2/welcome.txt |
|
||||
| /simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
@notToImplementOnOCIS @issue-ocis-2079
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
|
||||
Examples:
|
||||
| dav_version |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of files in the trashbin with depth 0
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has deleted the following resources
|
||||
| path |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
When user "Alice" lists the resources in the trashbin with depth "0" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the trashbin DAV response should not contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: Get the list of files in the trashbin with depth 1
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has deleted the following resources
|
||||
| path |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
When user "Alice" lists the resources in the trashbin with depth "1" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the trashbin DAV response should contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
And the trashbin DAV response should not contain these nodes
|
||||
| name |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindEnabled
|
||||
Scenario Outline: Get the list of files in the trashbin with depth infinity
|
||||
Given using <dav_version> DAV path
|
||||
And the administrator has set depth_infinity_allowed to 1
|
||||
And user "Alice" has deleted the following resources
|
||||
| path |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
When user "Alice" lists the resources in the trashbin with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the trashbin DAV response should contain these nodes
|
||||
| name |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
| simple-folder/textfile0.txt |
|
||||
| simple-folder/welcome.txt |
|
||||
| simple-folder/simple-folder1/textfile0.txt |
|
||||
| simple-folder/simple-folder1/welcome.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/textfile0.txt |
|
||||
| simple-folder/simple-folder1/simple-folder2/welcome.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindDisabled
|
||||
Scenario Outline: Get the list of resources in the root folder with depth infinity when depth infinity is not allowed
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" lists the resources in "/" with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "412"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindDisabled
|
||||
Scenario Outline: Get the list of resources in a folder shared through public link with depth infinity when depth infinity is not allowed
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has created the following folders
|
||||
| path |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3 |
|
||||
| /simple-folder/simple-folder1/simple-folder2/simple-folder3/simple-folder4 |
|
||||
And user "Alice" has created a public link share of folder "simple-folder"
|
||||
When the public lists the resources in the last created public link with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "412"
|
||||
@notToImplementOnOCIS @issue-ocis-2079
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
|
||||
Examples:
|
||||
| dav_version |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@depthInfinityPropfindDisabled
|
||||
Scenario Outline: Get the list of files in the trashbin with depth infinity when depth infinity is not allowed
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has deleted the following resources
|
||||
| path |
|
||||
| textfile0.txt |
|
||||
| welcome.txt |
|
||||
| simple-folder/ |
|
||||
When user "Alice" lists the resources in the trashbin with depth "infinity" using the WebDAV API
|
||||
Then the HTTP status code should be "412"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
@@ -0,0 +1,50 @@
|
||||
@api
|
||||
Feature: PROPFIND
|
||||
|
||||
@issue-ocis-751
|
||||
Scenario Outline: PROPFIND to "/remote.php/dav/(files|spaces)"
|
||||
Given user "Alice" has been created with default attributes and without skeleton files
|
||||
When user "Alice" requests "<dav_path>" with "PROPFIND" using basic auth
|
||||
Then the HTTP status code should be "405"
|
||||
Examples:
|
||||
| dav_path |
|
||||
| /remote.php/dav/files |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_path |
|
||||
| /remote.php/dav/spaces |
|
||||
|
||||
|
||||
Scenario Outline: PROPFIND to "/remote.php/dav/(files|spaces)" with depth header
|
||||
Given user "Alice" has been created with default attributes and without skeleton files
|
||||
And the administrator has set depth_infinity_allowed to <depth_infinity_allowed>
|
||||
When user "Alice" requests "<dav_path>" with "PROPFIND" using basic auth and with headers
|
||||
| header | value |
|
||||
| depth | <depth> |
|
||||
Then the HTTP status code should be "<http_status>"
|
||||
@notToImplementOnOCIS @depthInfinityPropfindEnabled
|
||||
Examples:
|
||||
| dav_path | depth_infinity_allowed | depth | http_status |
|
||||
| /remote.php/dav/files/alice | 1 | 0 | 207 |
|
||||
| /remote.php/dav/files/alice | 1 | infinity | 207 |
|
||||
@notToImplementOnOCIS @depthInfinityPropfindDisabled
|
||||
Examples:
|
||||
| dav_path | depth_infinity_allowed | depth | http_status |
|
||||
| /remote.php/dav/files/alice | 0 | 0 | 207 |
|
||||
| /remote.php/dav/files/alice | 0 | infinity | 412 |
|
||||
@skipOnOcV10 @depthInfinityPropfindEnabled
|
||||
Examples:
|
||||
| dav_path | depth_infinity_allowed | depth | http_status |
|
||||
| /remote.php/dav/files/alice | 1 | 0 | 207 |
|
||||
| /remote.php/dav/files/alice | 1 | infinity | 207 |
|
||||
@skipOnOcV10 @personalSpace @depthInfinityPropfindDisabled
|
||||
Examples:
|
||||
| dav_path | depth_infinity_allowed | depth | http_status |
|
||||
| /remote.php/dav/spaces/%spaceid% | 0 | 0 | 207 |
|
||||
| /remote.php/dav/spaces/%spaceid% | 0 | infinity | 207 |
|
||||
@skipOnOcV10 @personalSpace @depthInfinityPropfindEnabled
|
||||
Examples:
|
||||
| dav_path | depth_infinity_allowed | depth | http_status |
|
||||
| /remote.php/dav/spaces/%spaceid% | 1 | 0 | 207 |
|
||||
| /remote.php/dav/spaces/%spaceid% | 1 | infinity | 207 |
|
||||
@@ -0,0 +1,41 @@
|
||||
@api
|
||||
Feature: refuse access
|
||||
As an administrator
|
||||
I want to refuse access to unauthenticated and disabled users
|
||||
So that I can secure the system
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: Unauthenticated call
|
||||
# cannot perform with spaces WebDAV due to the absence of user
|
||||
Given using <dav_version> DAV path
|
||||
When an unauthenticated client connects to the DAV endpoint using the WebDAV API
|
||||
Then the HTTP status code should be "401"
|
||||
And there should be no duplicate headers
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| WWW-Authenticate | Basic realm="%productname%", charset="UTF-8" |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: A disabled user cannot use webdav
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "textfile0.txt"
|
||||
And user "Alice" has been disabled
|
||||
When user "Alice" downloads file "/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "401"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
@@ -0,0 +1,337 @@
|
||||
@api @issue-ocis-reva-39
|
||||
Feature: Search
|
||||
As a user
|
||||
I would like to be able to search for files
|
||||
So that I can find needed files quickly
|
||||
|
||||
Background:
|
||||
Given user "Alice" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "/just-a-folder"
|
||||
And user "Alice" has created folder "/फनी näme"
|
||||
And user "Alice" has created folder "/upload folder"
|
||||
And user "Alice" has created folder "/upload😀 😁"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/upload.txt"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/a-image.png"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/just-a-folder/upload.txt"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/just-a-folder/lolol.txt"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/just-a-folder/a-image.png"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/just-a-folder/uploadÜठिF.txt"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/फनी näme/upload.txt"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/फनी näme/a-image.png"
|
||||
And user "Alice" has uploaded file with content "does-not-matter" to "/upload😀 😁/upload😀 😁.txt"
|
||||
And user "Alice" has uploaded file with content "file with comma in filename" to "/upload😀 😁/upload,1.txt"
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: search for entry by pattern
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result of user "Alice" should contain these entries:
|
||||
| /upload.txt |
|
||||
| /just-a-folder/upload.txt |
|
||||
| /upload folder |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
| /फनी näme/upload.txt |
|
||||
| /upload😀 😁 |
|
||||
| /upload😀 😁/upload😀 😁.txt |
|
||||
| /upload😀 😁/upload,1.txt |
|
||||
But the search result of user "Alice" should not contain these entries:
|
||||
| /a-image.png |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: search for entries by only some letters from the middle of the entry name
|
||||
Given using <dav_version> DAV path
|
||||
And user "Alice" has created folder "FOLDER"
|
||||
When user "Alice" searches for "ol" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result should contain "4" entries
|
||||
And the search result of user "Alice" should contain these entries:
|
||||
| /just-a-folder |
|
||||
| /upload folder |
|
||||
| /FOLDER |
|
||||
| /just-a-folder/lolol.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: search for files by extension
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "png" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result of user "Alice" should contain these entries:
|
||||
| /a-image.png |
|
||||
| /just-a-folder/a-image.png |
|
||||
| /फनी näme/a-image.png |
|
||||
But the search result of user "Alice" should not contain these entries:
|
||||
| /upload.txt |
|
||||
| /just-a-folder/upload.txt |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: search with empty field
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "" using the WebDAV API
|
||||
Then the HTTP status code should be "400"
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: limit returned search entries
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" and limits the results to "3" items using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result of user "Alice" should contain any "3" of these entries:
|
||||
| /just-a-folder/upload.txt |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
| /upload folder |
|
||||
| /upload.txt |
|
||||
| /फनी näme/upload.txt |
|
||||
| /upload😀 😁 |
|
||||
| /upload😀 😁/upload😀 😁.txt |
|
||||
| /upload😀 😁/upload,1.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: limit returned search entries to only 1 entry
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" and limits the results to "1" items using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result of user "Alice" should contain any "1" of these entries:
|
||||
| /just-a-folder/upload.txt |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
| /upload folder |
|
||||
| /upload.txt |
|
||||
| /फनी näme/upload.txt |
|
||||
| /upload😀 😁 |
|
||||
| /upload😀 😁/upload😀 😁.txt |
|
||||
| /upload😀 😁/upload,1.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: limit returned search entries to more entires than there are
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" and limits the results to "100" items using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result should contain "8" entries
|
||||
And the search result of user "Alice" should contain these entries:
|
||||
| /upload.txt |
|
||||
| /just-a-folder/upload.txt |
|
||||
| /upload folder |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
| /फनी näme/upload.txt |
|
||||
| /upload😀 😁 |
|
||||
| /upload😀 😁/upload😀 😁.txt |
|
||||
| /upload😀 😁/upload,1.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@issue-ocis-4712
|
||||
Scenario Outline: report extra properties in search entries for a file
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" using the WebDAV API requesting these properties:
|
||||
| oc:fileid |
|
||||
| oc:permissions |
|
||||
| a:getlastmodified |
|
||||
| a:getetag |
|
||||
| a:getcontenttype |
|
||||
| oc:size |
|
||||
| oc:owner-id |
|
||||
| oc:owner-display-name |
|
||||
Then the HTTP status code should be "207"
|
||||
And file "/upload.txt" in the search result of user "Alice" should contain these properties:
|
||||
| name | value |
|
||||
| {http://owncloud.org/ns}fileid | \d* |
|
||||
| {http://owncloud.org/ns}permissions | ^(RDNVW\|RMDNVW)$ |
|
||||
| {DAV:}getlastmodified | ^[MTWFS][uedhfriatno]{2},\s(\d){2}\s[JFMAJSOND][anebrpyulgctov]{2}\s\d{4}\s\d{2}:\d{2}:\d{2} GMT$ |
|
||||
| {DAV:}getetag | ^\"[a-f0-9:\.]{1,32}\"$ |
|
||||
| {DAV:}getcontenttype | text\/plain |
|
||||
| {http://owncloud.org/ns}size | 15 |
|
||||
| {http://owncloud.org/ns}owner-id | %username% |
|
||||
| {http://owncloud.org/ns}owner-display-name | %displayname% |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
@issue-ocis-4712
|
||||
Scenario Outline: report extra properties in search entries for a folder
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "upload" using the WebDAV API requesting these properties:
|
||||
| oc:fileid |
|
||||
| oc:permissions |
|
||||
| a:getlastmodified |
|
||||
| a:getetag |
|
||||
| a:getcontenttype |
|
||||
| oc:size |
|
||||
| oc:owner-id |
|
||||
| oc:owner-display-name |
|
||||
Then the HTTP status code should be "207"
|
||||
And folder "/upload folder" in the search result of user "Alice" should contain these properties:
|
||||
| name | value |
|
||||
| {http://owncloud.org/ns}fileid | \d* |
|
||||
| {http://owncloud.org/ns}permissions | ^(RDNVCK\|RMDNVCK)$ |
|
||||
| {DAV:}getlastmodified | ^[MTWFS][uedhfriatno]{2},\s(\d){2}\s[JFMAJSOND][anebrpyulgctov]{2}\s\d{4}\s\d{2}:\d{2}:\d{2} GMT$ |
|
||||
| {DAV:}getetag | ^\"[a-f0-9:\.]{1,32}\"$ |
|
||||
| {http://owncloud.org/ns}size | 0 |
|
||||
| {http://owncloud.org/ns}owner-id | %username% |
|
||||
| {http://owncloud.org/ns}owner-display-name | %displayname% |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: search for entry with emoji by pattern
|
||||
Given using <dav_version> DAV path
|
||||
When user "Alice" searches for "😀 😁" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result of user "Alice" should contain these entries:
|
||||
| /upload😀 😁 |
|
||||
| /upload😀 😁/upload😀 😁.txt |
|
||||
But the search result of user "Alice" should not contain these entries:
|
||||
| /a-image.png |
|
||||
| /upload.txt |
|
||||
| /just-a-folder/upload.txt |
|
||||
| /upload folder |
|
||||
| /just-a-folder/uploadÜठिF.txt |
|
||||
| /फनी näme/upload.txt |
|
||||
Examples:
|
||||
| dav_version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnOcV10 @personalSpace
|
||||
Examples:
|
||||
| dav_version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: search for entry by tags using REPORT method
|
||||
Given user "Alice" has created a "normal" tag with name "JustARegularTag1"
|
||||
And user "Alice" has created a "normal" tag with name "JustARegularTag2"
|
||||
And user "Alice" has added tag "JustARegularTag1" to folder "फनी näme"
|
||||
And user "Alice" has added tag "JustARegularTag1" to file "upload.txt"
|
||||
And user "Alice" has added tag "JustARegularTag2" to file "upload.txt"
|
||||
When user "Alice" searches for resources tagged with tag "JustARegularTag1" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Alice" should contain these entries:
|
||||
| फनी näme |
|
||||
| upload.txt |
|
||||
When user "Alice" searches for resources tagged with tag "JustARegularTag2" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Alice" should contain these entries:
|
||||
| upload.txt |
|
||||
|
||||
|
||||
Scenario: share a tagged resource to another internal user and sharee searches for tag using REPORT method
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created a "normal" tag with name "JustARegularTag1"
|
||||
And user "Alice" has created a "normal" tag with name "JustARegularTag2"
|
||||
And user "Alice" has added tag "JustARegularTag1" to folder "फनी näme"
|
||||
And user "Alice" has added tag "JustARegularTag1" to file "upload.txt"
|
||||
And user "Alice" has added tag "JustARegularTag2" to file "upload.txt"
|
||||
And user "Alice" has shared file "फनी näme" with user "Brian"
|
||||
And user "Alice" has shared file "upload.txt" with user "Brian"
|
||||
When user "Brian" searches for resources tagged with tag "JustARegularTag1" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Brian" should contain these entries:
|
||||
| फनी näme |
|
||||
| upload.txt |
|
||||
When user "Brian" searches for resources tagged with tag "JustARegularTag2" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Brian" should contain these entries:
|
||||
| upload.txt |
|
||||
When user "Brian" searches for resources tagged with all of the following tags using the webDAV API
|
||||
| JustARegularTag1 |
|
||||
| JustARegularTag2 |
|
||||
Then the HTTP status code should be "207"
|
||||
And as user "Brian" the response should contain file "upload.txt"
|
||||
And as user "Brian" the response should not contain file "फनी näme"
|
||||
|
||||
|
||||
Scenario: search for entries across various folders by tags using REPORT method
|
||||
Given user "Alice" has created folder "/just-a-folder/inner-folder"
|
||||
And user "Alice" has uploaded file with content "inner file" to "/just-a-folder/inner-folder/upload.txt"
|
||||
And user "Alice" has created a "normal" tag with name "JustARegularTag1"
|
||||
And user "Alice" has created a "normal" tag with name "JustARegularTag2"
|
||||
And user "Alice" has added tag "JustARegularTag1" to folder "/just-a-folder/upload.txt"
|
||||
And user "Alice" has added tag "JustARegularTag1" to file "/फनी näme/upload.txt"
|
||||
And user "Alice" has added tag "JustARegularTag1" to file "/just-a-folder/inner-folder/upload.txt"
|
||||
And user "Alice" has added tag "JustARegularTag2" to file "/upload😀 😁/upload,1.txt"
|
||||
And user "Alice" has added tag "JustARegularTag2" to file "/upload.txt"
|
||||
When user "Alice" searches for resources tagged with tag "JustARegularTag1" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Alice" should contain these entries:
|
||||
| upload.txt |
|
||||
| upload.txt |
|
||||
| upload.txt |
|
||||
When user "Alice" searches for resources tagged with tag "JustARegularTag2" using the webDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the search result by tags for user "Alice" should contain these entries:
|
||||
| upload,1.txt |
|
||||
| upload.txt |
|
||||
Reference in New Issue
Block a user