diff --git a/tests/acceptance/features/apiAccountsHashDifficulty/assignRole.feature b/tests/acceptance/features/apiAccountsHashDifficulty/assignRole.feature index e4ec81b78..ec5f651ff 100644 --- a/tests/acceptance/features/apiAccountsHashDifficulty/assignRole.feature +++ b/tests/acceptance/features/apiAccountsHashDifficulty/assignRole.feature @@ -10,10 +10,10 @@ Feature: assign role When user "Alice" tries to get all existing roles Then the HTTP status code should be "" Examples: - | user-role | http-status-code | - | Admin | 201 | - | Space Admin | 201 | - | User | 201 | + | user-role | http-status-code | + | Admin | 201 | + | Space Admin | 201 | + | User | 201 | @issue-5032 Scenario Outline: only admin user can see assignments list @@ -22,10 +22,10 @@ Feature: assign role When user "Alice" tries to get list of assignment Then the HTTP status code should be "" Examples: - | user-role | http-status-code | - | Admin | 201 | - | Space Admin | 401 | - | User | 401 | + | user-role | http-status-code | + | Admin | 201 | + | Space Admin | 401 | + | User | 401 | Scenario Outline: a user cannot change own role @@ -35,13 +35,13 @@ Feature: assign role Then the HTTP status code should be "400" And user "Alice" should have the role "" Examples: - | user-role | desired-role | - | Admin | User | - | Admin | Space Admin | - | Space Admin | Admin | - | Space Admin | Space Admin | - | User | Admin | - | User | Space Admin | + | user-role | desired-role | + | Admin | User | + | Admin | Space Admin | + | Space Admin | Admin | + | Space Admin | Space Admin | + | User | Admin | + | User | Space Admin | Scenario Outline: only admin user can change the role for another user @@ -54,11 +54,11 @@ Feature: assign role Then the HTTP status code should be "" And user "Brian" should have the role "" Examples: - | user-role | desired-role | http-status-code | expected-role | - | Admin | User | 201 | User | - | Admin | Space Admin | 201 | Space Admin | - | Admin | Admin | 201 | Admin | - | Space Admin | Admin | 400 | User | - | Space Admin | Space Admin | 400 | User | - | User | Admin | 400 | User | - | User | Space Admin | 400 | User | + | user-role | desired-role | http-status-code | expected-role | + | Admin | User | 201 | User | + | Admin | Space Admin | 201 | Space Admin | + | Admin | Admin | 201 | Admin | + | Space Admin | Admin | 400 | User | + | Space Admin | Space Admin | 400 | User | + | User | Admin | 400 | User | + | User | Space Admin | 400 | User | diff --git a/tests/acceptance/features/apiAntivirus/antivirus.feature b/tests/acceptance/features/apiAntivirus/antivirus.feature index 3d15227c4..3cbc794da 100644 --- a/tests/acceptance/features/apiAntivirus/antivirus.feature +++ b/tests/acceptance/features/apiAntivirus/antivirus.feature @@ -95,14 +95,14 @@ Feature: antivirus | permissions | change | | expireDate | 2040-01-01T23:59:59+0100 | | password | %public% | - When user "Alice" uploads file "filesForUpload/filesWithVirus/" to "/" using the WebDAV API + When user "Alice" uploads file "filesForUpload/filesWithVirus/" to "/" using the WebDAV API Then the HTTP status code should be "201" And user "Alice" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Alice" file "/uploadFolder/" should not exist Examples: - | dav-path-version | filename | newfilename | + | dav-path-version | file-name | new-file-name | | old | eicar.com | virusFile1.txt | | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | @@ -121,14 +121,14 @@ Feature: antivirus | password | newpasswd | | expireDate | 2040-01-01T23:59:59+0100 | | password | %public% | - When user "Alice" uploads file "filesForUpload/filesWithVirus/" to "/" using the WebDAV API + When user "Alice" uploads file "filesForUpload/filesWithVirus/" to "/" using the WebDAV API Then the HTTP status code should be "201" And user "Alice" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Alice" file "/uploadFolder/" should not exist Examples: - | dav-path-version | filename | newfilename | + | dav-path-version | file-name | new-file-name | | old | eicar.com | virusFile1.txt | | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | @@ -142,15 +142,15 @@ Feature: antivirus And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "uploadFolder" And user "Alice" has shared folder "uploadFolder" with user "Brian" with permissions "all" - When user "Brian" uploads file "filesForUpload/filesWithVirus/" to "/Shares/uploadFolder/" using the WebDAV API + When user "Brian" uploads file "filesForUpload/filesWithVirus/" to "/Shares/uploadFolder/" using the WebDAV API Then the HTTP status code should be "201" And user "Brian" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Brian" file "/Shares/uploadFolder/" should not exist - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Brian" file "/Shares/uploadFolder/" should not exist + And as "Alice" file "/uploadFolder/" should not exist Examples: - | dav-path-version | filename | newfilename | + | dav-path-version | file-name | new-file-name | | old | eicar.com | virusFile1.txt | | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | @@ -162,15 +162,15 @@ Feature: antivirus And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "uploadFolder" And user "Alice" has shared folder "uploadFolder" with user "Brian" with permissions "all" - When user "Brian" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "Shares" using the WebDAV API + When user "Brian" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "Shares" using the WebDAV API Then the HTTP status code should be "201" And user "Brian" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Brian" file "/Shares/uploadFolder/" should not exist - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Brian" file "/Shares/uploadFolder/" should not exist + And as "Alice" file "/uploadFolder/" should not exist Examples: - | filename | newfilename | + | file-name | new-file-name | | eicar.com | virusFile1.txt | | eicar_com.zip | virusFile2.zip | @@ -182,15 +182,15 @@ Feature: antivirus And user "Brian" has been added to group "group1" And user "Alice" has created folder "uploadFolder" And user "Alice" has shared folder "uploadFolder" with group "group1" - When user "Brian" uploads file "filesForUpload/filesWithVirus/" to "/Shares/uploadFolder/" using the WebDAV API + When user "Brian" uploads file "filesForUpload/filesWithVirus/" to "/Shares/uploadFolder/" using the WebDAV API Then the HTTP status code should be "201" And user "Brian" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Brian" file "/Shares/uploadFolder/" should not exist - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Brian" file "/Shares/uploadFolder/" should not exist + And as "Alice" file "/uploadFolder/" should not exist Examples: - | dav-path-version | filename | newfilename | + | dav-path-version | file-name | new-file-name | | old | eicar.com | virusFile1.txt | | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | @@ -204,15 +204,15 @@ Feature: antivirus And user "Brian" has been added to group "group1" And user "Alice" has created folder "uploadFolder" And user "Alice" has shared folder "uploadFolder" with group "group1" - When user "Brian" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "Shares" using the WebDAV API + When user "Brian" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "Shares" using the WebDAV API Then the HTTP status code should be "201" And user "Brian" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | - And as "Brian" file "/Shares/uploadFolder/" should not exist - And as "Alice" file "/uploadFolder/" should not exist + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And as "Brian" file "/Shares/uploadFolder/" should not exist + And as "Alice" file "/uploadFolder/" should not exist Examples: - | filename | newfilename | + | file-name | new-file-name | | eicar.com | virusFile1.txt | | eicar_com.zip | virusFile2.zip | @@ -222,22 +222,22 @@ Feature: antivirus And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Alice" has created a folder "uploadFolder" in space "new-space" - When user "Alice" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "new-space" using the WebDAV API + When user "Alice" uploads a file "filesForUpload/filesWithVirus/" to "/uploadFolder/" in space "new-space" using the WebDAV API Then the HTTP status code should be "201" - And user "Alice" should get a notification for resource "" with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And user "Alice" should get a notification for resource "" with subject "Virus found" and message: + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | And for user "Alice" folder "uploadFolder" of the space "new-space" should not contain these entries: - | | - When user "Alice" uploads a file "filesForUpload/filesWithVirus/" to "/" in space "new-space" using the WebDAV API + | | + When user "Alice" uploads a file "filesForUpload/filesWithVirus/" to "/" in space "new-space" using the WebDAV API Then the HTTP status code should be "201" - And user "Alice" should get a notification for resource "" with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + And user "Alice" should get a notification for resource "" with subject "Virus found" and message: + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | And for user "Alice" the space "new-space" should not contain these entries: - | / | + | / | Examples: - | filename | newfilename | + | file-name | new-file-name | | eicar.com | virusFile1.txt | | eicar_com.zip | virusFile2.zip | @@ -250,17 +250,17 @@ Feature: antivirus And user "Alice" has shared a space "new-space" with settings: | shareWith | Brian | | role | editor | - When user "Brian" uploads a file "/filesForUpload/filesWithVirus/" to "/" in space "new-space" using the WebDAV API + When user "Brian" uploads a file "/filesForUpload/filesWithVirus/" to "/" in space "new-space" using the WebDAV API Then the HTTP status code should be "201" And user "Brian" should get a notification with subject "Virus found" and message: - | message | - | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | + | message | + | Virus found in . Upload not possible. Virus: Win.Test.EICAR_HDB-1 | And for user "Brian" the space "new-space" should not contain these entries: - | / | + | / | And for user "Alice" the space "new-space" should not contain these entries: - | / | + | / | Examples: - | filename | newfilename | + | file-name | new-file-name | | eicar.com | virusFile1.txt | | eicar_com.zip | virusFile2.zip | diff --git a/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature b/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature index 1a40a8990..a6884ada0 100644 --- a/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature +++ b/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature @@ -11,10 +11,10 @@ Feature: delay post-processing of uploaded files @issue-5326 Scenario Outline: user sends GET request to the file while it's still being processed Given user "Alice" has uploaded file with content "uploaded content" to "/file.txt" - When user "Alice" requests "" with "GET" without retrying + When user "Alice" requests "" with "GET" without retrying Then the HTTP status code should be "425" Examples: - | dav_path | + | dav-path | | /remote.php/webdav/file.txt | | /remote.php/dav/files/%username%/file.txt | | /dav/spaces/%spaceid%/file.txt | @@ -22,11 +22,11 @@ Feature: delay post-processing of uploaded files Scenario Outline: user sends PROPFIND request to the file while it's still being processed Given user "Alice" has uploaded file with content "uploaded content" to "/file.txt" - When user "Alice" requests "" with "PROPFIND" without retrying + When user "Alice" requests "" with "PROPFIND" without retrying Then the HTTP status code should be "207" And the value of the item "//d:response/d:propstat/d:status" in the response should be "HTTP/1.1 425 TOO EARLY" Examples: - | dav_path | + | dav-path | | /remote.php/webdav/file.txt | | /remote.php/dav/files/%username%/file.txt | | /dav/spaces/%spaceid%/file.txt | @@ -35,12 +35,12 @@ Feature: delay post-processing of uploaded files Scenario Outline: user sends PROPFIND request to the folder while files in the folder are still being processed Given user "Alice" has created folder "my_data" And user "Alice" has uploaded file with content "uploaded content" to "/my_data/file.txt" - When user "Alice" requests "" with "PROPFIND" without retrying + When user "Alice" requests "" with "PROPFIND" without retrying Then the HTTP status code should be "207" - And as user "Alice" the value of the item "//d:status" of path "/" in the response should be "HTTP/1.1 200 OK" - And as user "Alice" the value of the item "//d:status" of path "/file.txt" in the response should be "HTTP/1.1 425 TOO EARLY" + And as user "Alice" the value of the item "//d:status" of path "/" in the response should be "HTTP/1.1 200 OK" + And as user "Alice" the value of the item "//d:status" of path "/file.txt" in the response should be "HTTP/1.1 425 TOO EARLY" Examples: - | dav_path | + | dav-path | | /remote.php/webdav/my_data | | /remote.php/dav/files/%username%/my_data | | /dav/spaces/%spaceid%/my_data | diff --git a/tests/acceptance/features/apiContract/propfind.feature b/tests/acceptance/features/apiContract/propfind.feature index 1e7bf9661..7c0393890 100644 --- a/tests/acceptance/features/apiContract/propfind.feature +++ b/tests/acceptance/features/apiContract/propfind.feature @@ -31,8 +31,8 @@ Feature: Propfind test Scenario Outline: space member with a different role checks the PROPFIND request of a space Given user "Alice" has uploaded a file inside space "new-space" with content "some content" to "testfile.txt" And user "Alice" has shared a space "new-space" with settings: - | shareWith | Brian | - | role | | + | shareWith | Brian | + | role | | When user "Brian" sends PROPFIND request to space "new-space" with depth "0" using the WebDAV API Then the HTTP status code should be "207" And the following headers should match these regular expressions @@ -41,21 +41,21 @@ Feature: Propfind test | key | value | | oc:fileid | UUIDof:new-space | | oc:name | new-space | - | oc:permissions | | + | oc:permissions | | | oc:privatelink | | | oc:size | 12 | Examples: - | role | oc_permission | - | manager | RDNVCKZP | - | editor | DNVCK | - | viewer | | + | space-role | oc-permission | + | manager | RDNVCKZP | + | editor | DNVCK | + | viewer | | Scenario Outline: space member with a different role checks the PROPFIND request of the folder in the space Given user "Alice" has created a folder "folderMain" in space "new-space" And user "Alice" has shared a space "new-space" with settings: - | shareWith | Brian | - | role | | + | shareWith | Brian | + | role | | When user "Brian" sends PROPFIND request from the space "new-space" to the resource "folderMain" with depth "0" using the WebDAV API Then the HTTP status code should be "207" And the "PROPFIND" response should contain a space "new-space" with these key and value pairs: @@ -63,20 +63,20 @@ Feature: Propfind test | oc:fileid | UUIDof:folderMain | | oc:file-parent | UUIDof:new-space | | oc:name | folderMain | - | oc:permissions | | + | oc:permissions | | | oc:size | 0 | Examples: - | role | oc_permission | - | manager | RDNVCKZP | - | editor | DNVCK | - | viewer | | + | space-role | oc-permission | + | manager | RDNVCKZP | + | editor | DNVCK | + | viewer | | Scenario Outline: space member with a different role checks the PROPFIND request of the sub-folder in the space Given user "Alice" has created a folder "folderMain/subFolder1/subFolder2" in space "new-space" And user "Alice" has shared a space "new-space" with settings: - | shareWith | Brian | - | role | | + | shareWith | Brian | + | role | | When user "Brian" sends PROPFIND request from the space "new-space" to the resource "folderMain/subFolder1/subFolder2" with depth "0" using the WebDAV API Then the HTTP status code should be "207" And the "PROPFIND" response should contain a space "new-space" with these key and value pairs: @@ -84,20 +84,20 @@ Feature: Propfind test | oc:fileid | UUIDof:folderMain/subFolder1/subFolder2 | | oc:file-parent | UUIDof:folderMain/subFolder1 | | oc:name | subFolder2 | - | oc:permissions | | + | oc:permissions | | | oc:size | 0 | Examples: - | role | oc_permission | - | manager | RDNVCKZP | - | editor | DNVCK | - | viewer | | + | space-role | oc-permission | + | manager | RDNVCKZP | + | editor | DNVCK | + | viewer | | Scenario Outline: space member with a different role checks the PROPFIND request of the file in the space Given user "Alice" has uploaded a file inside space "new-space" with content "some content" to "testfile.txt" And user "Alice" has shared a space "new-space" with settings: - | shareWith | Brian | - | role | | + | shareWith | Brian | + | role | | When user "Brian" sends PROPFIND request from the space "new-space" to the resource "testfile.txt" with depth "0" using the WebDAV API Then the HTTP status code should be "207" And the "PROPFIND" response should contain a space "new-space" with these key and value pairs: @@ -105,10 +105,10 @@ Feature: Propfind test | oc:fileid | UUIDof:testfile.txt | | oc:file-parent | UUIDof:new-space | | oc:name | testfile.txt | - | oc:permissions | | + | oc:permissions | | | oc:size | 12 | Examples: - | role | oc_permission | - | manager | RDNVWZP | - | editor | DNVW | - | viewer | | + | space-role | oc-permission | + | manager | RDNVWZP | + | editor | DNVW | + | viewer | | diff --git a/tests/acceptance/features/apiCors/cors.feature b/tests/acceptance/features/apiCors/cors.feature index 607bd2123..acc8dd490 100644 --- a/tests/acceptance/features/apiCors/cors.feature +++ b/tests/acceptance/features/apiCors/cors.feature @@ -11,32 +11,32 @@ Feature: CORS headers @issue-5195 Scenario Outline: CORS headers should be returned when setting CORS domain sending origin header - Given using OCS API version "" + Given using OCS API version "" When user "Alice" sends HTTP method "GET" to OCS API endpoint "" with headers | header | value | | Origin | https://aphno.badal | - Then the OCS status code should be "" - And the HTTP status code should be "" + Then the OCS status code should be "" + And the HTTP status code should be "" And the following headers should be set | header | value | | Access-Control-Expose-Headers | Location | | Access-Control-Allow-Origin | https://aphno.badal | | Access-Control-Allow-Credentials | true | Examples: - | ocs_api_version | endpoint | ocs-code | http-code | - | 1 | /config | 100 | 200 | - | 2 | /config | 200 | 200 | - | 1 | /apps/files_sharing/api/v1/shares | 100 | 200 | - | 2 | /apps/files_sharing/api/v1/shares | 200 | 200 | + | ocs-api-version | endpoint | ocs-status-code | http-status-code | + | 1 | /config | 100 | 200 | + | 2 | /config | 200 | 200 | + | 1 | /apps/files_sharing/api/v1/shares | 100 | 200 | + | 2 | /apps/files_sharing/api/v1/shares | 200 | 200 | Scenario Outline: CORS headers should not be returned when CORS domain does not match origin header - Given using OCS API version "" + Given using OCS API version "" When user "Alice" sends HTTP method "GET" to OCS API endpoint "" with headers | header | value | | Origin | https://mero.badal | - Then the OCS status code should be "" - And the HTTP status code should be "" + Then the OCS status code should be "" + And the HTTP status code should be "" And the following headers should not be set | header | | Access-Control-Allow-Headers | @@ -44,32 +44,32 @@ Feature: CORS headers | Access-Control-Allow-Origin | | Access-Control-Allow-Methods | Examples: - | ocs_api_version | endpoint | ocs-code | http-code | - | 1 | /config | 100 | 200 | - | 2 | /config | 200 | 200 | - | 1 | /apps/files_sharing/api/v1/shares | 100 | 200 | - | 2 | /apps/files_sharing/api/v1/shares | 200 | 200 | + | ocs-api-version | endpoint | ocs-status-code | http-status-code | + | 1 | /config | 100 | 200 | + | 2 | /config | 200 | 200 | + | 1 | /apps/files_sharing/api/v1/shares | 100 | 200 | + | 2 | /apps/files_sharing/api/v1/shares | 200 | 200 | @issue-5194 Scenario Outline: CORS headers should be returned when an preflight request is sent - Given using OCS API version "" + Given using OCS API version "" When user "Alice" sends HTTP method "OPTIONS" to OCS API endpoint "" with headers | header | value | | Origin | https://aphno.badal | | Access-Control-Request-Headers | Origin, Accept, Content-Type, Depth, Authorization, Ocs-Apirequest, If-None-Match, If-Match, Destination, Overwrite, X-Request-Id, X-Requested-With, Tus-Resumable, Tus-Checksum-Algorithm, Upload-Concat, Upload-Length, Upload-Metadata, Upload-Defer-Length, Upload-Expires, Upload-Checksum, Upload-Offset, X-Http-Method-Override, Cache-Control | - | Access-Control-Request-Method | | + | Access-Control-Request-Method | | And the HTTP status code should be "204" And the following headers should be set | header | value | | Access-Control-Allow-Headers | Origin, Accept, Content-Type, Depth, Authorization, Ocs-Apirequest, If-None-Match, If-Match, Destination, Overwrite, X-Request-Id, X-Requested-With, Tus-Resumable, Tus-Checksum-Algorithm, Upload-Concat, Upload-Length, Upload-Metadata, Upload-Defer-Length, Upload-Expires, Upload-Checksum, Upload-Offset, X-Http-Method-Override, Cache-Control | | Access-Control-Allow-Origin | https://aphno.badal | - | Access-Control-Allow-Methods | | + | Access-Control-Allow-Methods | | Examples: - | ocs_api_version | | endpoint | request_method | - | 1 | | /apps/files_sharing/api/v1/shares | GET | - | 2 | | /apps/files_sharing/api/v1/shares | PUT | - | 1 | | /apps/files_sharing/api/v1/shares | DELETE | - | 2 | | /apps/files_sharing/api/v1/shares | POST | + | ocs-api-version | endpoint | request-method | + | 1 | /apps/files_sharing/api/v1/shares | GET | + | 2 | /apps/files_sharing/api/v1/shares | PUT | + | 1 | /apps/files_sharing/api/v1/shares | DELETE | + | 2 | /apps/files_sharing/api/v1/shares | POST | Scenario: CORS headers should be returned when setting CORS domain sending origin header in the Graph api diff --git a/tests/acceptance/features/apiDownloads/spaceDownload.feature b/tests/acceptance/features/apiDownloads/spaceDownload.feature index 3d5590230..afd100be2 100644 --- a/tests/acceptance/features/apiDownloads/spaceDownload.feature +++ b/tests/acceptance/features/apiDownloads/spaceDownload.feature @@ -31,7 +31,7 @@ Feature: Download space Scenario Outline: user downloads a shared space (shared by others) Given user "Alice" has shared a space "Project-space" with settings: | shareWith | Brian | - | role | | + | role | | When user "Brian" downloads the space "Project-space" using the WebDAV API Then the HTTP status code should be "200" And the downloaded "tar" archive should contain these files: @@ -39,18 +39,18 @@ Feature: Download space | file1.txt | some data | | .space/readme.md | space description | Examples: - | role | + | space-role | | manager | | editor | | viewer | Scenario Outline: admin/space-admin tries to download a space that they do not have access to - Given the administrator has assigned the role "" to user "Brian" using the Graph API + Given the administrator has assigned the role "" to user "Brian" using the Graph API When user "Brian" tries to download the space "Project-space" owned by user "Alice" using the WebDAV API Then the HTTP status code should be "404" Examples: - | userRole | + | user-role | | Admin | | Space Admin | diff --git a/tests/acceptance/features/apiGraph/assignRole.feature b/tests/acceptance/features/apiGraph/assignRole.feature index 935df8114..484300e58 100644 --- a/tests/acceptance/features/apiGraph/assignRole.feature +++ b/tests/acceptance/features/apiGraph/assignRole.feature @@ -6,12 +6,12 @@ Feature: assign role Scenario Outline: assign role to the user using graph api Given user "Alice" has been created with default attributes and without skeleton files - And the administrator has assigned the role "" to user "Alice" using the Graph API + And the administrator has assigned the role "" to user "Alice" using the Graph API When the administrator retrieves the assigned role of user "Alice" using the Graph API Then the HTTP status code should be "200" - And the Graph API response should have the role "" + And the Graph API response should have the role "" Examples: - | userRole | + | user-role | | Admin | | Space Admin | | User | @@ -20,26 +20,26 @@ Feature: assign role @issue-5032 Scenario Outline: assign role to the user with graph api and list role with setting api Given user "Alice" has been created with default attributes and without skeleton files - And the administrator has assigned the role "" to user "Alice" using the Graph API + And the administrator has assigned the role "" to user "Alice" using the Graph API When user "Alice" tries to get list of assignment - Then the HTTP status code should be "" - And the setting API response should have the role "" + Then the HTTP status code should be "" + And the setting API response should have the role "" Examples: - | userRole | statusCode | - | Admin | 201 | - | Space Admin | 401 | - | User | 401 | - | User Light | 401 | + | user-role | http-status-code | + | Admin | 201 | + | Space Admin | 401 | + | User | 401 | + | User Light | 401 | Scenario Outline: assign role to the user with setting api and list role with graph api Given user "Alice" has been created with default attributes and without skeleton files - And the administrator has given "Alice" the role "" using the settings api + And the administrator has given "Alice" the role "" using the settings api When the administrator retrieves the assigned role of user "Alice" using the Graph API Then the HTTP status code should be "200" - And the Graph API response should have the role "" + And the Graph API response should have the role "" Examples: - | userRole | + | user-role | | Admin | | Space Admin | | User | diff --git a/tests/acceptance/features/apiGraph/changeRole.feature b/tests/acceptance/features/apiGraph/changeRole.feature index c9b65c3b3..b3c561dde 100644 --- a/tests/acceptance/features/apiGraph/changeRole.feature +++ b/tests/acceptance/features/apiGraph/changeRole.feature @@ -10,51 +10,51 @@ Feature: change role Scenario Outline: admin user changes the role of another user with different roles Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Admin" to user "Alice" using the Graph API - And the administrator has assigned the role "" to user "Brian" using the Graph API - When user "Alice" changes the role of user "Brian" to role "" using the Graph API + And the administrator has assigned the role "" to user "Brian" using the Graph API + When user "Alice" changes the role of user "Brian" to role "" using the Graph API Then the HTTP status code should be "201" - And user "Brian" should have the role "" + And user "Brian" should have the role "" Examples: - | userRole | newRole | - | Admin | Admin | - | Admin | Space Admin | - | Admin | User | - | Admin | User Light | - | Space Admin | Admin | - | Space Admin | Space Admin | - | Space Admin | User | - | Space Admin | User Light | - | User | Admin | - | User | Space Admin | - | User | User | - | User | User Light | - | User Light | Admin | - | User Light | Space Admin | - | User Light | User | - | User Light | User Light | + | user-role | new-user-role | + | Admin | Admin | + | Admin | Space Admin | + | Admin | User | + | Admin | User Light | + | Space Admin | Admin | + | Space Admin | Space Admin | + | Space Admin | User | + | Space Admin | User Light | + | User | Admin | + | User | Space Admin | + | User | User | + | User | User Light | + | User Light | Admin | + | User Light | Space Admin | + | User Light | User | + | User Light | User Light | Scenario Outline: admin user tries to change his/her own role Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API - When user "Alice" tries to change the role of user "Alice" to role "" using the Graph API + When user "Alice" tries to change the role of user "Alice" to role "" using the Graph API Then the HTTP status code should be "403" And user "Alice" should have the role "Admin" Examples: - | newRole | - | Space Admin | - | User | - | User Light | - | Admin | + | new-user-role | + | Space Admin | + | User | + | User Light | + | Admin | Scenario Outline: non-admin cannot change the user role - Given the administrator has assigned the role "" to user "Alice" using the Graph API + Given the administrator has assigned the role "" to user "Alice" using the Graph API And user "Brian" has been created with default attributes and without skeleton files When user "Alice" tries to change the role of user "Alice" to role "Admin" using the Graph API Then the HTTP status code should be "401" And user "Brian" should have the role "User" Examples: - | role | + | user-role | | Space Admin | | User | | User Light | diff --git a/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature b/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature index e223a68f5..5848a286c 100644 --- a/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature +++ b/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature @@ -1,16 +1,16 @@ @env-config Feature: enforce password on public link - As a user - I want to enforce passwords on public links shared with upload, edit, or contribute permission - So that the password is required to access the contents of the link + As a user + I want to enforce passwords on public links shared with upload, edit, or contribute permission + So that the password is required to access the contents of the link - Password requirements. set by default: - | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | true | - | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 8 | - | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 1 | - | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 1 | - | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | - | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 1 | + Password requirements. set by default: + | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | true | + | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 8 | + | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 1 | + | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 1 | + | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | + | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 1 | Scenario Outline: create a public link with edit permission without a password when enforce-password is enabled @@ -24,13 +24,13 @@ Feature: enforce password on public link When user "Alice" creates a public link share using the sharing API with settings | path | /testfile.txt | | permissions | 3 | - Then the HTTP status code should be "" + Then the HTTP status code should be "" And the OCS status code should be "400" And the OCS status message should be "missing required password" Examples: - | ocs-api-version | http-code | - | 1 | 200 | - | 2 | 400 | + | ocs-api-version | http-status-code | + | 1 | 200 | + | 2 | 400 | Scenario Outline: create a public link with viewer permission without a password when enforce-password is enabled @@ -44,10 +44,10 @@ Feature: enforce password on public link When user "Alice" creates a public link share using the sharing API with settings | path | /testfile.txt | | permissions | 1 | - Then the OCS status code should be "" + Then the OCS status code should be "" And the HTTP status code should be "200" Examples: - | ocs-api-version | ocs_status_code | + | ocs-api-version | ocs-status-code | | 1 | 100 | | 2 | 200 | @@ -67,26 +67,26 @@ Feature: enforce password on public link | permissions | 3 | | password | %public% | Then the HTTP status code should be "200" - And the OCS status code should be "" + And the OCS status code should be "" And the OCS status message should be "OK" And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API without a password And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "wrong pass" But the public should be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "%public%" Examples: - | ocs-api-version | ocs-code | - | 1 | 100 | - | 2 | 200 | + | ocs-api-version | ocs-status-code | + | 1 | 100 | + | 2 | 200 | Scenario Outline: create a public link with a password in accordance with the password policy Given the following configs have been set: | config | value | | OCIS_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD | true | - | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | - | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | - | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | - | OCIS_PASSWORD_POLICY_MIN_DIGITS | 2 | - | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | + | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | + | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_DIGITS | 2 | + | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | And user "Alice" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "test file" to "/testfile.txt" And using OCS API version "" @@ -95,20 +95,20 @@ Feature: enforce password on public link | permissions | 3 | | password | 3s:5WW9uE5h=A | Then the HTTP status code should be "200" - And the OCS status code should be "" + And the OCS status code should be "" And the OCS status message should be "OK" And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API without a password And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "wrong pass" But the public should be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "3s:5WW9uE5h=A" Examples: - | ocs-api-version | ocs-code | - | 1 | 100 | - | 2 | 200 | + | ocs-api-version | ocs-status-code | + | 1 | 100 | + | 2 | 200 | Scenario Outline: try to create a public link with a password that does not comply with the password policy Given the following configs have been set: - | config | value | + | config | value | | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | @@ -121,7 +121,7 @@ Feature: enforce password on public link | path | /testfile.txt | | permissions | 3 | | password | Pas1 | - Then the HTTP status code should be "" + Then the HTTP status code should be "" And the OCS status code should be "400" And the OCS status message should be: """ @@ -132,9 +132,9 @@ Feature: enforce password on public link at least 2 special characters are required !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ """ Examples: - | ocs-api-version | http-code | - | 1 | 200 | - | 2 | 400 | + | ocs-api-version | http-status-code | + | 1 | 200 | + | 2 | 400 | Scenario Outline: update a public link with a password in accordance with the password policy @@ -142,11 +142,11 @@ Feature: enforce password on public link | config | value | | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false | | OCIS_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD | true | - | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | - | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | - | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | - | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | - | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | + | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | + | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | + | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | And user "Alice" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "test file" to "/testfile.txt" And using OCS API version "" @@ -157,15 +157,15 @@ Feature: enforce password on public link | permissions | 3 | | password | 6a0Q;A3 +i^m[ | Then the HTTP status code should be "200" - And the OCS status code should be "" + And the OCS status code should be "" And the OCS status message should be "OK" And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API without a password And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "wrong pass" But the public should be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "6a0Q;A3 +i^m[" Examples: - | ocs-api-version | ocs-code | - | 1 | 100 | - | 2 | 200 | + | ocs-api-version | ocs-status-code | + | 1 | 100 | + | 2 | 200 | Scenario Outline: try to update a public link with a password that does not comply with the password policy @@ -173,11 +173,11 @@ Feature: enforce password on public link | config | value | | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false | | OCIS_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD | true | - | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | - | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | - | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | - | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | - | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 13 | + | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 3 | + | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 2 | + | OCIS_PASSWORD_POLICY_MIN_DIGITS | 1 | + | OCIS_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS | 2 | And user "Alice" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "test file" to "/testfile.txt" And using OCS API version "" @@ -187,7 +187,7 @@ Feature: enforce password on public link When user "Alice" updates the last public link share using the sharing API with | permissions | 3 | | password | Pws^ | - Then the HTTP status code should be "" + Then the HTTP status code should be "" And the OCS status code should be "400" And the OCS status message should be: """ @@ -198,9 +198,9 @@ Feature: enforce password on public link at least 2 special characters are required !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ """ Examples: - | ocs-api-version | http-code | - | 1 | 200 | - | 2 | 400 | + | ocs-api-version | http-status-code | + | 1 | 200 | + | 2 | 400 | Scenario Outline: create a public link with a password in accordance with the password policy (valid cases) @@ -219,7 +219,7 @@ Feature: enforce password on public link And the public should not be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "wrong pass" But the public should be able to download file "/textfile.txt" from inside the last public link shared folder using the new public WebDAV API with password "" Examples: - | config | config-value | password | + | config | config-value | password | | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 4 | Ps-1 | | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 14 | Ps1:with space | | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 4 | PS1:test | @@ -260,14 +260,14 @@ Feature: enforce password on public link When user "Alice" updates the last public link share using the sharing API with | permissions | 3 | | password | | - Then the HTTP status code should be "" - And the OCS status code should be "" + Then the HTTP status code should be "" + And the OCS status code should be "" And the OCS status message should be "" Examples: - | password | http-code | ocs-code | message | - | 123 | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | - | password | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | - | ownCloud | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | password | http-status-code | ocs-status-code | message | + | 123 | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | password | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | ownCloud | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | Scenario Outline: create a public link with a password that is listed in the Banned-Password-List @@ -279,11 +279,11 @@ Feature: enforce password on public link | path | /testfile.txt | | permissions | 3 | | password | | - Then the HTTP status code should be "" - And the OCS status code should be "" + Then the HTTP status code should be "" + And the OCS status code should be "" And the OCS status message should be "" Examples: - | password | http-code | ocs-code | message | - | 123 | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | - | password | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | - | ownCloud | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | password | http-status-code | ocs-status-code | message | + | 123 | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | password | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | + | ownCloud | 400 | 400 | Unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety | diff --git a/tests/acceptance/features/apiGraph/getApplications.feature b/tests/acceptance/features/apiGraph/getApplications.feature index bfa6db20b..0728630ec 100644 --- a/tests/acceptance/features/apiGraph/getApplications.feature +++ b/tests/acceptance/features/apiGraph/getApplications.feature @@ -8,7 +8,7 @@ Feature: get applications Scenario Outline: admin user lists all the groups - Given the administrator has assigned the role "" to user "Alice" using the Graph API + Given the administrator has assigned the role "" to user "Alice" using the Graph API When user "Alice" gets all applications using the Graph API Then the HTTP status code should be "200" And the user API response should contain the following application information: @@ -21,7 +21,7 @@ Feature: get applications | User | | User Light | Examples: - | role | + | user-role | | Admin | | Space Admin | | User | diff --git a/tests/acceptance/features/apiGraph/unassignRole.feature b/tests/acceptance/features/apiGraph/unassignRole.feature index f98483538..5be9d5d24 100644 --- a/tests/acceptance/features/apiGraph/unassignRole.feature +++ b/tests/acceptance/features/apiGraph/unassignRole.feature @@ -10,14 +10,14 @@ Feature: unassign user role Scenario Outline: admin user unassigns the role of another user Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Admin" to user "Alice" using the Graph API - And the administrator has assigned the role "" to user "Brian" using the Graph API + And the administrator has assigned the role "" to user "Brian" using the Graph API When user "Alice" unassigns the role of user "Brian" using the Graph API Then the HTTP status code should be "204" And user "Brian" should not have any role assigned When user "Brian" uploads file with content "this step will assign the role to default" to "assign-to-default.txt" using the WebDAV API And user "Brian" should have the role "User" assigned Examples: - | role | + | user-role | | Admin | | Space Admin | | User | diff --git a/tests/acceptance/features/apiGraph/userGDPRExport.feature b/tests/acceptance/features/apiGraph/userGDPRExport.feature index 0be645741..d925a3c28 100644 --- a/tests/acceptance/features/apiGraph/userGDPRExport.feature +++ b/tests/acceptance/features/apiGraph/userGDPRExport.feature @@ -495,28 +495,28 @@ Feature: user GDPR (General Data Protection Regulation) report Scenario Outline: user tries to generate GDPR report of other users Given user "Brian" has been created with default attributes and without skeleton files - And the administrator has assigned the role "" to user "Alice" using the Graph API - And the administrator has assigned the role "" to user "Brian" using the Graph API + And the administrator has assigned the role "" to user "Alice" using the Graph API + And the administrator has assigned the role "" to user "Brian" using the Graph API When user "Alice" tries to export GDPR report of user "Brian" to "/.personal_data_export.json" using Graph API Then the HTTP status code should be "400" Examples: - | userRole | role | - | Space Admin | Space Admin | - | Space Admin | User | - | Space Admin | User Light | - | Space Admin | Admin | - | User | Space Admin | - | User | User | - | User | User Light | - | User | Admin | - | User Light | Space Admin | - | User Light | User | - | User Light | User Light | - | User Light | Admin | - | Admin | Space Admin | - | Admin | User | - | Admin | User Light | - | Admin | Admin | + | user-role | new-user-role | + | Space Admin | Space Admin | + | Space Admin | User | + | Space Admin | User Light | + | Space Admin | Admin | + | User | Space Admin | + | User | User | + | User | User Light | + | User | Admin | + | User Light | Space Admin | + | User Light | User | + | User Light | User Light | + | User Light | Admin | + | Admin | Space Admin | + | Admin | User | + | Admin | User Light | + | Admin | Admin | Scenario: generate a GDPR report and check events when user creates a folder