diff options
Diffstat (limited to 'build/integration/dav_features/carddav.feature')
-rw-r--r-- | build/integration/dav_features/carddav.feature | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/build/integration/dav_features/carddav.feature b/build/integration/dav_features/carddav.feature new file mode 100644 index 00000000000..9c9df6ddd94 --- /dev/null +++ b/build/integration/dav_features/carddav.feature @@ -0,0 +1,79 @@ +Feature: carddav + Scenario: Accessing a not existing addressbook of another user + Given user "user0" exists + When "admin" requests addressbook "user0/MyAddressbook" with statuscode "404" on the endpoint "/remote.php/dav/addressbooks/users/" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "Addressbook with name 'MyAddressbook' could not be found" + + Scenario: Accessing a not shared addressbook of another user + Given user "user0" exists + Given "admin" creates an addressbook named "MyAddressbook" with statuscode "201" + When "user0" requests addressbook "admin/MyAddressbook" with statuscode "404" on the endpoint "/remote.php/dav/addressbooks/users/" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "Addressbook with name 'MyAddressbook' could not be found" + + Scenario: Accessing a not existing addressbook of another user via legacy endpoint + Given user "user0" exists + When "admin" requests addressbook "user0/MyAddressbook" with statuscode "404" on the endpoint "/remote.php/carddav/addressbooks/" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "Addressbook with name 'MyAddressbook' could not be found" + + Scenario: Accessing a not shared addressbook of another user via legacy endpoint + Given user "user0" exists + Given "admin" creates an addressbook named "MyAddressbook" with statuscode "201" + When "user0" requests addressbook "admin/MyAddressbook" with statuscode "404" on the endpoint "/remote.php/carddav/addressbooks/" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "Addressbook with name 'MyAddressbook' could not be found" + + Scenario: Accessing a not existing addressbook of myself + Given user "user0" exists + When "user0" requests addressbook "admin/MyAddressbook" with statuscode "404" on the endpoint "/remote.php/dav/addressbooks/users/" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "Addressbook with name 'MyAddressbook' could not be found" + + Scenario: Creating a new addressbook + When "admin" creates an addressbook named "MyAddressbook" with statuscode "201" + Then "admin" requests addressbook "admin/MyAddressbook" with statuscode "207" on the endpoint "/remote.php/dav/addressbooks/users/" + + Scenario: Accessing ones own contact + Given "admin" creates an addressbook named "MyAddressbook" with statuscode "201" + Given "admin" uploads the contact "bjoern.vcf" to the addressbook "MyAddressbook" + When Downloading the contact "bjoern.vcf" from addressbook "MyAddressbook" as user "admin" + Then The following HTTP headers should be set + |Content-Disposition|attachment; filename*=UTF-8''bjoern.vcf; filename="bjoern.vcf"| + |Content-Type|text/vcard; charset=utf-8| + |Content-Security-Policy|default-src 'none';| + |X-Content-Type-Options |nosniff| + |X-Frame-Options|SAMEORIGIN| + |X-Permitted-Cross-Domain-Policies|none| + |X-Robots-Tag|noindex, nofollow| + |X-XSS-Protection|1; mode=block| + + Scenario: Exporting the picture of ones own contact + Given "admin" creates an addressbook named "MyAddressbook" with statuscode "201" + Given "admin" uploads the contact "bjoern.vcf" to the addressbook "MyAddressbook" + When Exporting the picture of contact "bjoern.vcf" from addressbook "MyAddressbook" as user "admin" + Then The following HTTP headers should be set + |Content-Disposition|attachment; filename=bjoern.vcf.jpg| + |Content-Type|image/jpeg| + |Content-Security-Policy|default-src 'none';| + |X-Content-Type-Options |nosniff| + |X-Frame-Options|SAMEORIGIN| + |X-Permitted-Cross-Domain-Policies|none| + |X-Robots-Tag|noindex, nofollow| + |X-XSS-Protection|1; mode=block| + + Scenario: Create addressbook request for non-existing addressbook of another user + Given user "user0" exists + When "user0" sends a create addressbook request to "admin/MyAddressbook2" on the endpoint "/remote.php/dav/addressbooks/" + Then The CardDAV HTTP status code should be "404" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "File not found: admin in 'addressbooks'" + + Scenario: Create addressbook request for existing addressbook of another user + Given user "user0" exists + When "admin" creates an addressbook named "MyAddressbook2" with statuscode "201" + When "user0" sends a create addressbook request to "admin/MyAddressbook2" on the endpoint "/remote.php/dav/addressbooks/" + Then The CardDAV HTTP status code should be "404" + And The CardDAV exception is "Sabre\DAV\Exception\NotFound" + And The CardDAV error message is "File not found: admin in 'addressbooks'" |