Skip to content

Commit

Permalink
copy feature files from core
Browse files Browse the repository at this point in the history
  • Loading branch information
saw-jan authored and phil-davis committed Jan 5, 2023
1 parent 35d4cb5 commit c59392b
Show file tree
Hide file tree
Showing 336 changed files with 52,903 additions and 0 deletions.
209 changes: 209 additions & 0 deletions tests/acceptance/features/coreApiAuth/cors.feature

Large diffs are not rendered by default.

85 changes: 85 additions & 0 deletions tests/acceptance/features/coreApiAuth/corsOc10Issue34679.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
@api @notToImplementOnOCIS
Feature: CORS headers current oC10 behavior for issue-34679

Background:
Given user "Alice" has been created with default attributes and without skeleton files

@issue-34679
Scenario Outline: CORS headers should be returned when invalid password is used
Given using OCS API version "<ocs_api_version>"
And user "Alice" has added "https://aphno.badal" to the list of personal CORS domains
When user "Alice" sends HTTP method "GET" to OCS API endpoint "<endpoint>" with headers using password "invalid"
| header | value |
| Origin | https://aphno.badal |
Then the OCS status code should be "<ocs-code>"
And the HTTP status code should be "<http-code>"
And the following headers should not be set
| header |
| Access-Control-Allow-Headers |
| Access-Control-Expose-Headers |
| Access-Control-Allow-Origin |
| Access-Control-Allow-Methods |
#Then the following headers should be set
# | header | value |
# | Access-Control-Allow-Headers | OC-Checksum,OC-Total-Length,OCS-APIREQUEST,X-OC-Mtime,Accept,Authorization,Brief,Content-Length,Content-Range,Content-Type,Date,Depth,Destination,Host,If,If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,Location,Lock-Token,Overwrite,Prefer,Range,Schedule-Reply,Timeout,User-Agent,X-Expected-Entity-Length,Accept-Language,Access-Control-Request-Method,Access-Control-Allow-Origin,ETag,OC-Autorename,OC-CalDav-Import,OC-Chunked,OC-Etag,OC-FileId,OC-LazyOps,OC-Total-File-Length,Origin,X-Request-ID,X-Requested-With |
# | Access-Control-Expose-Headers | Content-Location,DAV,ETag,Link,Lock-Token,OC-ETag,OC-Checksum,OC-FileId,OC-JobStatus-Location,Vary,Webdav-Location,X-Sabre-Status |
# | Access-Control-Allow-Origin | https://aphno.badal |
# | Access-Control-Allow-Methods | GET,OPTIONS,POST,PUT,DELETE,MKCOL,PROPFIND,PATCH,PROPPATCH,REPORT |
Examples:
| ocs_api_version | endpoint | ocs-code | http-code |
| 1 | /privatedata/getattribute | 997 | 401 |
| 2 | /privatedata/getattribute | 997 | 401 |
| 1 | /cloud/apps | 997 | 401 |
| 2 | /cloud/apps | 997 | 401 |
| 1 | /cloud/groups | 997 | 401 |
| 2 | /cloud/groups | 997 | 401 |
| 1 | /cloud/users | 997 | 401 |
| 2 | /cloud/users | 997 | 401 |

@files_external-app-required @notToImplementOnOCIS
Examples:
| ocs_api_version | endpoint | ocs-code | http-code |
| 1 | /apps/files_external/api/v1/mounts | 997 | 401 |
| 2 | /apps/files_external/api/v1/mounts | 997 | 401 |

@files_sharing-app-required
Examples:
| ocs_api_version | endpoint | ocs-code | http-code |
| 1 | /apps/files_sharing/api/v1/remote_shares | 997 | 401 |
| 2 | /apps/files_sharing/api/v1/remote_shares | 997 | 401 |
| 1 | /apps/files_sharing/api/v1/remote_shares/pending | 997 | 401 |
| 2 | /apps/files_sharing/api/v1/remote_shares/pending | 997 | 401 |
| 1 | /apps/files_sharing/api/v1/shares | 997 | 401 |
| 2 | /apps/files_sharing/api/v1/shares | 997 | 401 |

@issue-34679
Scenario Outline: CORS headers should be returned when invalid password is used (admin only endpoints)
Given using OCS API version "<ocs_api_version>"
And the administrator has added "https://aphno.badal" to the list of personal CORS domains
And user "another-admin" has been created with default attributes and without skeleton files
And user "another-admin" has been added to group "admin"
When user "another-admin" sends HTTP method "GET" to OCS API endpoint "<endpoint>" with headers using password "invalid"
| header | value |
| Origin | https://aphno.badal |
Then the OCS status code should be "<ocs-code>"
And the HTTP status code should be "<http-code>"
And the following headers should not be set
| header |
| Access-Control-Allow-Headers |
| Access-Control-Expose-Headers |
| Access-Control-Allow-Origin |
| Access-Control-Allow-Methods |
#Then the following headers should be set
# | header | value |
# | Access-Control-Allow-Headers | OC-Checksum,OC-Total-Length,OCS-APIREQUEST,X-OC-Mtime,Accept,Authorization,Brief,Content-Length,Content-Range,Content-Type,Date,Depth,Destination,Host,If,If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,Location,Lock-Token,Overwrite,Prefer,Range,Schedule-Reply,Timeout,User-Agent,X-Expected-Entity-Length,Accept-Language,Access-Control-Request-Method,Access-Control-Allow-Origin,ETag,OC-Autorename,OC-CalDav-Import,OC-Chunked,OC-Etag,OC-FileId,OC-LazyOps,OC-Total-File-Length,Origin,X-Request-ID,X-Requested-With |
# | Access-Control-Expose-Headers | Content-Location,DAV,ETag,Link,Lock-Token,OC-ETag,OC-Checksum,OC-FileId,OC-JobStatus-Location,Vary,Webdav-Location,X-Sabre-Status |
# | Access-Control-Allow-Origin | https://aphno.badal |
# | Access-Control-Allow-Methods | GET,OPTIONS,POST,PUT,DELETE,MKCOL,PROPFIND,PATCH,PROPPATCH,REPORT |
Examples:
| ocs_api_version | endpoint | ocs-code | http-code |
| 1 | /cloud/apps | 997 | 401 |
| 2 | /cloud/apps | 997 | 401 |
| 1 | /cloud/groups | 997 | 401 |
| 2 | /cloud/groups | 997 | 401 |
| 1 | /cloud/users | 997 | 401 |
| 2 | /cloud/users | 997 | 401 |
40 changes: 40 additions & 0 deletions tests/acceptance/features/coreApiAuth/filesAppAuth.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@api @notToImplementOnOCIS @issue-ocis-reva-28
Feature: auth

Background:
Given user "Alice" has been created with default attributes and without skeleton files

@smokeTest
Scenario: access files app anonymously
When a user requests "/index.php/apps/files" with "GET" and no authentication
Then the HTTP status code should be "401"

@smokeTest
Scenario: access files app with basic auth
When user "Alice" requests "/index.php/apps/files" with "GET" using basic auth
Then the HTTP status code should be "200"

@smokeTest
Scenario: access files app with basic token auth
Given a new client token for "Alice" has been generated
When user "Alice" requests "/index.php/apps/files" with "GET" using basic token auth
Then the HTTP status code should be "200"

@smokeTest
Scenario: access files app with a client token
Given a new client token for "Alice" has been generated
When the user requests "/index.php/apps/files" with "GET" using the generated client token
Then the HTTP status code should be "200"

@smokeTest
Scenario: access files app with browser session
Given a new browser session for "Alice" has been started
When the user requests "/index.php/apps/files" with "GET" using the browser session
Then the HTTP status code should be "200"

@smokeTest
Scenario: access files app with an app password
Given a new browser session for "Alice" has been started
And the user has generated a new app password named "my-client"
When the user requests "/index.php/apps/files" with "GET" using the generated app password
Then the HTTP status code should be "200"
61 changes: 61 additions & 0 deletions tests/acceptance/features/coreApiAuth/tokenAuth.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@api @notToImplementOnOCIS @issue-ocis-reva-28 @issue-ocis-reva-37
Feature: tokenAuth

Background:
Given using OCS API version "1"
And user "Alice" has been created with default attributes and without skeleton files
And token auth has been enforced


Scenario: creating a user with basic auth should be blocked when token auth is enforced
Given user "brand-new-user" has been deleted
When the administrator sends a user creation request for user "brand-new-user" password "%alt1%" using the provisioning API
Then the OCS status code should be "997"
And the HTTP status code should be "401"


Scenario: moving a file should be blocked when token auth is enforced
Given using new DAV path
When user "Alice" moves file "/textfile0.txt" to "/renamed_textfile0.txt" using the WebDAV API
Then the HTTP status code should be "401"

@smokeTest
Scenario: can access files app with an app password when token auth is enforced
Given a new browser session for "Alice" has been started
And the user has generated a new app password named "my-client"
When the user requests "/index.php/apps/files" with "GET" using the generated app password
Then the HTTP status code should be "200"


Scenario: cannot access files app with an app password that is deleted when token auth is enforced
Given a new browser session for "Alice" has been started
And the user has generated a new app password named "my-client"
And the user has deleted the app password named "my-client"
When the user requests "/index.php/apps/files" with "GET" using the generated app password
Then the HTTP status code should be "401"


Scenario: Access files app with when there are multiple tokens generated
Given a new browser session for "Alice" has been started
And the user has generated a new app password named "my-client"
And the user has generated a new app password named "my-new-client"
When the user requests "/index.php/apps/files" with "GET" using app password named "my-client"
Then the HTTP status code should be "200"
When the user requests "/index.php/apps/files" with "GET" using app password named "my-new-client"
Then the HTTP status code should be "200"

@smokeTest
Scenario: cannot access files app with basic auth when token auth is enforced
When user "Alice" requests "/index.php/apps/files" with "GET" using basic auth
Then the HTTP status code should be "401"


Scenario: using WebDAV with basic auth should be blocked when token auth is enforced
When user "Alice" requests "/remote.php/webdav" with "PROPFIND" using basic auth
Then the HTTP status code should be "401"

@files_sharing-app-required
Scenario: using OCS with basic auth should be blocked when token auth is enforced
When user "Alice" requests "/ocs/v1.php/apps/files_sharing/api/v1/remote_shares" with "GET" using basic auth
Then the OCS status code should be "997"
And the HTTP status code should be "401"
40 changes: 40 additions & 0 deletions tests/acceptance/features/coreApiAuth/webDavAuth.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@api
Feature: auth

Background:
Given user "Alice" has been created with default attributes and without skeleton files

@smokeTest
Scenario: using WebDAV anonymously
When a user requests "/remote.php/webdav" with "PROPFIND" and no authentication
Then the HTTP status code should be "401"

@smokeTest @skipOnOcV10 @personalSpace
Scenario: using spaces WebDAV anonymously
When user "Alice" requests "/dav/spaces/%spaceid%" with "PROPFIND" and no authentication
Then the HTTP status code should be "401"

@smokeTest
Scenario Outline: using WebDAV with basic auth
When user "Alice" requests "<dav_path>" with "PROPFIND" using basic auth
Then the HTTP status code should be "207"
Examples:
| dav_path |
| /remote.php/webdav |

@skipOnOcV10 @personalSpace
Examples:
| dav_path |
| /dav/spaces/%spaceid% |

@smokeTest @notToImplementOnOCIS @issue-ocis-reva-28
Scenario: using WebDAV with token auth
Given a new client token for "Alice" has been generated
When user "Alice" requests "/remote.php/webdav" with "PROPFIND" using basic token auth
Then the HTTP status code should be "207"

@smokeTest @notToImplementOnOCIS
Scenario: using WebDAV with browser session
Given a new browser session for "Alice" has been started
When the user requests "/remote.php/webdav" with "PROPFIND" using the browser session
Then the HTTP status code should be "207"
30 changes: 30 additions & 0 deletions tests/acceptance/features/coreApiAuthOcs/ocsDELETEAuth.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
@api @files_sharing-app-required
Feature: auth

Background:
Given user "another-admin" has been created with default attributes and without skeleton files

@smokeTest @issue-ocis-reva-30 @issue-ocis-reva-65 @skipOnBruteForceProtection @issue-brute_force_protection-112 @skipOnOcV10 @issue-32068
Scenario: send DELETE requests to OCS endpoints as admin with wrong password
Given user "another-admin" has been added to group "admin"
When user "another-admin" requests these endpoints with "DELETE" using password "invalid" about user "Alice"
| endpoint |
| /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123 |
| /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/shares/123 |
| /ocs/v1.php/apps/files_sharing/api/v1/shares/pending/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123 |
| /ocs/v1.php/cloud/apps/testing |
| /ocs/v2.php/cloud/apps/testing |
| /ocs/v1.php/cloud/groups/group1 |
| /ocs/v2.php/cloud/groups/group1 |
| /ocs/v1.php/cloud/users/%username% |
| /ocs/v2.php/cloud/users/%username% |
| /ocs/v1.php/cloud/users/%username%/groups |
| /ocs/v2.php/cloud/users/%username%/groups |
| /ocs/v1.php/cloud/users/%username%/subadmins |
| /ocs/v2.php/cloud/users/%username%/subadmins |
Then the HTTP status code of responses on all endpoints should be "401"
And the OCS status code of responses on all endpoints should be "401"
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@api @files_sharing-app-required @notToImplementOnOCIS
Feature: current oC10 behavior for issue-32068

@smokeTest @issue-32068 @issue-ocis-reva-30 @issue-ocis-reva-65 @skipOnBruteForceProtection @issue-brute_force_protection-112
Scenario: send DELETE requests to OCS endpoints as admin with wrong password
Given user "another-admin" has been created with default attributes and without skeleton files
And user "another-admin" has been added to group "admin"
When user "another-admin" requests these endpoints with "DELETE" using password "invalid" about user "Alice"
| endpoint |
| /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending/123 |
| /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/shares/123 |
| /ocs/v1.php/apps/files_sharing/api/v1/shares/pending/123 |
| /ocs/v2.php/apps/files_sharing/api/v1/shares/pending/123 |
| /ocs/v1.php/cloud/apps/testing |
| /ocs/v2.php/cloud/apps/testing |
| /ocs/v1.php/cloud/groups/group1 |
| /ocs/v2.php/cloud/groups/group1 |
| /ocs/v1.php/cloud/users/%username% |
| /ocs/v2.php/cloud/users/%username% |
| /ocs/v1.php/cloud/users/%username%/groups |
| /ocs/v2.php/cloud/users/%username%/groups |
| /ocs/v1.php/cloud/users/%username%/subadmins |
| /ocs/v2.php/cloud/users/%username%/subadmins |
Then the HTTP status code of responses on all endpoints should be "401"
And the OCS status code of responses on all endpoints should be "997"
#And the OCS status code of responses on all endpoints should be "401"
Loading

0 comments on commit c59392b

Please sign in to comment.