diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 4fc671a5c..9b0141652 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -320,6 +320,7 @@ default: - SpacesContext: - WebDavLockingContext: - PublicWebDavContext: + - SharingNgContext: apiSharingNg: paths: diff --git a/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md b/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md index fe2186cf6..03a957d81 100644 --- a/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md @@ -137,27 +137,27 @@ The expected failures in this file are from features in the owncloud/ocis repo. - [apiLocks/lockFiles.feature:349](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L349) - [apiLocks/lockFiles.feature:350](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L350) - [apiLocks/lockFiles.feature:351](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L351) -- [apiLocks/unlockFiles.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L60) -- [apiLocks/unlockFiles.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L61) - [apiLocks/unlockFiles.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L62) -- [apiLocks/unlockFiles.feature:151](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L151) -- [apiLocks/unlockFiles.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L152) -- [apiLocks/unlockFiles.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L153) -- [apiLocks/unlockFiles.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L154) -- [apiLocks/unlockFiles.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L155) -- [apiLocks/unlockFiles.feature:156](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L156) +- [apiLocks/unlockFiles.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L63) +- [apiLocks/unlockFiles.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L64) +- [apiLocks/unlockFiles.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L168) +- [apiLocks/unlockFiles.feature:169](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L169) +- [apiLocks/unlockFiles.feature:170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L170) +- [apiLocks/unlockFiles.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L171) +- [apiLocks/unlockFiles.feature:172](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L172) - [apiLocks/unlockFiles.feature:173](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L173) -- [apiLocks/unlockFiles.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L174) -- [apiLocks/unlockFiles.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L175) -- [apiLocks/unlockFiles.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L176) -- [apiLocks/unlockFiles.feature:177](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L177) -- [apiLocks/unlockFiles.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L178) - [apiLocks/unlockFiles.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L195) - [apiLocks/unlockFiles.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L196) - [apiLocks/unlockFiles.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L197) - [apiLocks/unlockFiles.feature:198](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L198) - [apiLocks/unlockFiles.feature:199](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L199) - [apiLocks/unlockFiles.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L200) +- [apiLocks/unlockFiles.feature:223](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L223) +- [apiLocks/unlockFiles.feature:224](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L224) +- [apiLocks/unlockFiles.feature:225](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L225) +- [apiLocks/unlockFiles.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L226) +- [apiLocks/unlockFiles.feature:227](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L227) +- [apiLocks/unlockFiles.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L228) #### [Trying to upload to a locked file gives 500](https://github.com/owncloud/ocis/issues/7638) @@ -167,12 +167,12 @@ The expected failures in this file are from features in the owncloud/ocis repo. - [apiLocks/lockFiles.feature:302](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L302) - [apiLocks/lockFiles.feature:303](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L303) - [apiLocks/lockFiles.feature:304](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L304) -- [apiLocks/unlockFiles.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L85) -- [apiLocks/unlockFiles.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L86) - [apiLocks/unlockFiles.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L87) - [apiLocks/unlockFiles.feature:88](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L88) - [apiLocks/unlockFiles.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L89) - [apiLocks/unlockFiles.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L90) +- [apiLocks/unlockFiles.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L91) +- [apiLocks/unlockFiles.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L92) - [apiLocks/lockFiles.feature:388](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L388) - [apiLocks/lockFiles.feature:389](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L389) - [apiLocks/lockFiles.feature:390](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L390) @@ -197,27 +197,27 @@ The expected failures in this file are from features in the owncloud/ocis repo. ### [Anonymous users can unlock a file shared to them through a public link if they get the lock token](https://github.com/owncloud/ocis/issues/7761) -- [apiLocks/unlockFiles.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L40) -- [apiLocks/unlockFiles.feature:41](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L41) - [apiLocks/unlockFiles.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L42) - [apiLocks/unlockFiles.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L43) - [apiLocks/unlockFiles.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L44) - [apiLocks/unlockFiles.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L45) +- [apiLocks/unlockFiles.feature:46](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L46) +- [apiLocks/unlockFiles.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L47) ### [Trying to unlock a shared file with sharer's lock token gives 500](https://github.com/owncloud/ocis/issues/7767) -- [apiLocks/unlockFiles.feature:107](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L107) -- [apiLocks/unlockFiles.feature:108](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L108) -- [apiLocks/unlockFiles.feature:109](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L109) -- [apiLocks/unlockFiles.feature:110](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L110) -- [apiLocks/unlockFiles.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L111) -- [apiLocks/unlockFiles.feature:112](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L112) -- [apiLocks/unlockFiles.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L129) -- [apiLocks/unlockFiles.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L130) -- [apiLocks/unlockFiles.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L131) -- [apiLocks/unlockFiles.feature:132](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L132) -- [apiLocks/unlockFiles.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L133) -- [apiLocks/unlockFiles.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L134) +- [apiLocks/unlockFiles.feature:114](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L114) +- [apiLocks/unlockFiles.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L115) +- [apiLocks/unlockFiles.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L116) +- [apiLocks/unlockFiles.feature:117](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L117) +- [apiLocks/unlockFiles.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L118) +- [apiLocks/unlockFiles.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L119) +- [apiLocks/unlockFiles.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L141) +- [apiLocks/unlockFiles.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L142) +- [apiLocks/unlockFiles.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L143) +- [apiLocks/unlockFiles.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L144) +- [apiLocks/unlockFiles.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L145) +- [apiLocks/unlockFiles.feature:146](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L146) ### [Anonymous user trying lock a file shared to them through a public link gives 405](https://github.com/owncloud/ocis/issues/7790) diff --git a/tests/acceptance/features/apiLocks/unlockFiles.feature b/tests/acceptance/features/apiLocks/unlockFiles.feature index 41d047159..2982caf8a 100644 --- a/tests/acceptance/features/apiLocks/unlockFiles.feature +++ b/tests/acceptance/features/apiLocks/unlockFiles.feature @@ -24,12 +24,14 @@ Feature: unlock locked items @issue-7761 Scenario Outline: public tries to unlock a file in a share that was locked by the file owner Given using DAV path + And using SharingNG And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" - And user "Alice" has created a public link share with settings - | path | PARENT | - | permissions | change | - | password | %public% | + And user "Alice" has created the following link share: + | resource | PARENT | + | space | Personal | + | permissionsRole | edit | + | password | %public% | And user "Alice" has locked file "PARENT/parent.txt" setting the following properties | lockscope | | When the public unlocks file "/parent.txt" with the last created lock of file "PARENT/parent.txt" of user "Alice" using the WebDAV API @@ -95,7 +97,12 @@ Feature: unlock locked items And using DAV path And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" - And user "Alice" has shared file "PARENT/parent.txt" with user "Brian" + And user "Alice" has sent the following share invitation: + | resource | PARENT/parent.txt | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | File Editor | And user "Alice" has locked file "PARENT/parent.txt" setting the following properties | lockscope | | When user "Brian" unlocks file "Shares/parent.txt" with the last created lock of file "PARENT/parent.txt" of user "Alice" using the WebDAV API @@ -119,7 +126,12 @@ Feature: unlock locked items And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" And user "Alice" has locked file "PARENT/parent.txt" setting the following properties | lockscope | | - And user "Alice" has shared folder "PARENT" with user "Brian" + And user "Alice" has sent the following share invitation: + | resource | PARENT | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | Editor | When user "Brian" unlocks file "Shares/PARENT/parent.txt" with the last created lock of file "PARENT/parent.txt" of user "Alice" using the WebDAV API Then the HTTP status code should be "403" And 1 locks should be reported for file "PARENT/parent.txt" of user "Alice" by the WebDAV API @@ -139,7 +151,12 @@ Feature: unlock locked items And using DAV path And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" - And user "Alice" has shared file "PARENT/parent.txt" with user "Brian" + And user "Alice" has sent the following share invitation: + | resource | PARENT/parent.txt | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | File Editor | And user "Brian" has locked file "Shares/parent.txt" setting the following properties | lockscope | | When user "Brian" unlocks the last created lock of file "Shares/parent.txt" using the WebDAV API @@ -161,7 +178,12 @@ Feature: unlock locked items And using DAV path And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" - And user "Alice" has shared file "PARENT/parent.txt" with user "Brian" + And user "Alice" has sent the following share invitation: + | resource | PARENT/parent.txt | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | File Editor | And user "Brian" has locked file "Shares/parent.txt" setting the following properties | lockscope | | When user "Alice" unlocks file "PARENT/parent.txt" with the last created lock of file "Shares/parent.txt" of user "Brian" using the WebDAV API @@ -183,6 +205,12 @@ Feature: unlock locked items And using DAV path And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/parent.txt" + And user "Alice" has sent the following share invitation: + | resource | PARENT | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | Editor | And user "Alice" has shared folder "PARENT" with user "Brian" And user "Brian" has locked file "Shares/PARENT/parent.txt" setting the following properties | lockscope | | @@ -256,10 +284,12 @@ Feature: unlock locked items And using spaces DAV path And user "Alice" has uploaded a file inside space "Alice Hansen" with content "some content" to "textfile.txt" And we save it into "FILEID" - And user "Alice" has created a share inside of space "Alice Hansen" with settings: - | path | textfile.txt | - | shareWith | Brian | - | role | editor | + And user "Alice" has sent the following share invitation: + | resource | textfile.txt | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | File Editor | And user "Brian" has locked file "textfile.txt" using file-id path "" setting the following properties | lockscope | exclusive | | timeout | Second-3600 | @@ -278,12 +308,14 @@ Feature: unlock locked items Scenario Outline: unlock a file as an anonymous user Given using DAV path + And using SharingNG And user "Alice" has created folder "PARENT" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "PARENT/textfile0.txt" - And user "Alice" has created a public link share with settings - | path | PARENT | - | permissions | change | - | password | %public% | + And user "Alice" has created the following link share: + | resource | PARENT | + | space | Personal | + | permissionsRole | edit | + | password | %public% | And the public has locked "textfile0.txt" in the last public link shared folder setting the following properties | lockscope | | When the public unlocks file "textfile0.txt" using the WebDAV API diff --git a/tests/acceptance/features/bootstrap/WebDavLockingContext.php b/tests/acceptance/features/bootstrap/WebDavLockingContext.php index 376c27cd3..ea3363f52 100644 --- a/tests/acceptance/features/bootstrap/WebDavLockingContext.php +++ b/tests/acceptance/features/bootstrap/WebDavLockingContext.php @@ -351,8 +351,9 @@ class WebDavLockingContext implements Context { string $file, TableNode $properties ) { + $token = ($this->featureContext->isUsingSharingNG()) ? $this->featureContext->shareNgGetLastCreatedLinkShareToken() : $this->featureContext->getLastCreatedPublicShareToken(); $response = $this->lockFile( - $this->featureContext->getLastCreatedPublicShareToken(), + $token, $file, $properties, null, @@ -671,9 +672,9 @@ class WebDavLockingContext implements Context { string $lockOwner, string $itemToUseLockOf ) { - $user = $this->featureContext->getLastCreatedPublicShareToken(); + $token = ($this->featureContext->isUsingSharingNG()) ? $this->featureContext->shareNgGetLastCreatedLinkShareToken() : $this->featureContext->getLastCreatedPublicShareToken(); $response = $this->unlockItemWithLastLockOfUserAndItemUsingWebDavAPI( - $user, + $token, $itemToUnlock, $lockOwner, $itemToUseLockOf, @@ -690,11 +691,11 @@ class WebDavLockingContext implements Context { * @return void */ public function unlockItemAsPublicUsingWebDavAPI(string $itemToUnlock) { - $user = $this->featureContext->getLastCreatedPublicShareToken(); + $token = ($this->featureContext->isUsingSharingNG()) ? $this->featureContext->shareNgGetLastCreatedLinkShareToken() : $this->featureContext->getLastCreatedPublicShareToken(); $response = $this->unlockItemWithLastLockOfUserAndItemUsingWebDavAPI( - $user, + $token, $itemToUnlock, - $user, + $token, $itemToUnlock, true );