diff --git a/tests/acceptance/bootstrap/WebDav.php b/tests/acceptance/bootstrap/WebDav.php index 225cf218d8..ed5d496260 100644 --- a/tests/acceptance/bootstrap/WebDav.php +++ b/tests/acceptance/bootstrap/WebDav.php @@ -1573,32 +1573,34 @@ trait WebDav { // /some-folder%20with%20spaces/sub-folder // So we need both $elementToRequest and $expectedElement $expectedElement = $this->encodePath($elementToRequest); + $responseXmlObject = $this->listFolderAndReturnResponseXml( $user, $elementToRequest, "1" ); - // TODO: make it work for folder entries - // Doesn't work for folder entries - // as the folder entry has trailing '/' in d:href $webdavPath = "/" . $this->getFullDavFilesPath($user) . $expectedElement; + // return xmlobject that matches the x-path pattern. $element = $responseXmlObject->xpath( - "//d:response/d:href[text() = \"$webdavPath\"]" + "//d:response/d:href" ); - if ($expectedToBeListed - && (!isset($element[0]) || urldecode($element[0]->__toString()) !== urldecode($webdavPath)) - ) { - Assert::fail( - "$webdavPath is not in propfind answer but should be" - ); - } elseif (!$expectedToBeListed && isset($element[0]) + if (!$expectedToBeListed && isset($element[0]) ) { Assert::fail( "$webdavPath is in propfind answer but should not be" ); + }; + if ($expectedToBeListed) { + $elementSanitized = rtrim($element[0]->__toString(), '/'); + if (!isset($element[0]) || urldecode($elementSanitized) !== urldecode($webdavPath)) { + Assert::fail( + "$webdavPath is not in propfind answer but should be" + ); + } } + } } } diff --git a/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature b/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature index 7c59b9c19d..fc96044721 100644 --- a/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature +++ b/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature @@ -21,8 +21,8 @@ Feature: resources shared with the same name are received with unique names Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should see the following elements - | Shares/foo/ | - | /Shares/foo (1)/ | + | Shares/foo | + | /Shares/foo (1) | @smokeTest @issue-2131 Scenario: unique target names for incoming shares when auto-accepting is disabled @@ -34,5 +34,5 @@ Feature: resources shared with the same name are received with unique names Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should see the following elements - | Shares/foo/ | - | /Shares/foo (1)/ | + | Shares/foo | + | /Shares/foo (1) | diff --git a/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature b/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature index f569f3e212..8b844df040 100644 --- a/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature +++ b/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature @@ -58,9 +58,9 @@ Feature: share resources where the sharee receives the share in multiple ways Then the OCS status code should be "" And the HTTP status code should be "200" And user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | - | /Shares/CHILD/ | + | /Shares/CHILD | | /Shares/CHILD/child.txt | Examples: | ocs-api-version | ocs-status-code | diff --git a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature index 9cb96f9f47..26e1a72768 100644 --- a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature +++ b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature @@ -215,10 +215,10 @@ Feature: sharing And user "Alice" has uploaded file with content "file in parent folder" to "/PARENT/parent.txt" When user "Alice" shares folder "/PARENT" with group "grp1" using the sharing API And user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | And user "Carol" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | @smokeTest @skipOnReva # reva doesn't have a pre-created admin user @@ -230,7 +230,7 @@ Feature: sharing And admin has created folder "/PARENT" When user "admin" shares folder "/PARENT" with group "grp1" using the sharing API Then user "Alice" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | @smokeTest Scenario: user included in multiple groups, shares a folder with a group @@ -247,7 +247,7 @@ Feature: sharing When user "Alice" shares folder "/PARENT" with group "grp1" using the sharing API Then user "Brian" should have sync enabled for share "PARENT" And user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | Scenario: sharing again an own file while belonging to a group @@ -426,10 +426,10 @@ Feature: sharing Then the OCS status code should be "" And the HTTP status code should be "200" And user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | And user "Carol" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | Examples: | ocs-api-version | ocs-status-code | diff --git a/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature b/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature index a11a60d1f8..18c67571b0 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature @@ -36,11 +36,11 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | But user "Brian" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the pending state @@ -48,11 +48,11 @@ Feature: accept/decline shares coming from internal users | /PARENT/ | | /textfile0.txt | And user "Carol" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | But user "Carol" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Carol" that these shares are in the pending state @@ -68,11 +68,11 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | But user "Brian" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the pending state @@ -120,10 +120,10 @@ Feature: accept/decline shares coming from internal users | share_with_displayname | %displayname% | | mail_send | 0 | And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the accepted state @@ -145,7 +145,7 @@ Feature: accept/decline shares coming from internal users Then the OCS status code should be "100" And the HTTP status code should be "200" And user "Brian" should see the following elements - | /Shares/shared/ | + | /Shares/shared | And the sharing API should report to user "Brian" that these shares are in the accepted state | path | | /Shares/shared/ | @@ -170,11 +170,11 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | But user "Brian" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the declined state @@ -204,7 +204,7 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the declined state @@ -253,7 +253,7 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Carol" that these shares are in the pending state @@ -261,7 +261,7 @@ Feature: accept/decline shares coming from internal users | /PARENT/ | | /textfile0.txt | But user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | | /Shares/textfile0.txt | And the sharing API should report to user "Brian" that these shares are in the accepted state @@ -293,8 +293,8 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should see the following elements - | /Shares/shared/Brian/ | - | /Shares/shared (1)/Alice/ | + | /Shares/shared/Brian | + | /Shares/shared (1)/Alice | And the sharing API should report to user "Carol" that these shares are in the accepted state | path | | /Shares/shared/ | @@ -384,11 +384,11 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | - | /Shares/PARENT/ | + | /FOLDER | + | /PARENT | + | /Shares/PARENT | | /Shares/PARENT/abc.txt | - | /Shares/FOLDER/ | + | /Shares/FOLDER | | /Shares/FOLDER/abc.txt | And user "Brian" should not see the following elements | /FOLDER/abc.txt | @@ -413,20 +413,20 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /FOLDER/ | - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/FOLDER/ | + | /FOLDER | + | /PARENT | + | /Shares/PARENT | + | /Shares/FOLDER | | /Shares/PARENT/abc.txt | | /Shares/FOLDER/abc.txt | And user "Brian" should not see the following elements | /FOLDER/abc.txt | | /PARENT/abc.txt | And user "Carol" should see the following elements - | /FOLDER/ | - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/FOLDER/ | + | /FOLDER | + | /PARENT | + | /Shares/PARENT | + | /Shares/FOLDER | | /Shares/PARENT/abc.txt | | /Shares/FOLDER/abc.txt | And user "Carol" should not see the following elements @@ -472,19 +472,19 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /PARENT/ | + | /PARENT | | /textfile0.txt | But user "Brian" should not see the following elements | /Shares/textfile0.txt | - | /Shares/PARENT/ | + | /Shares/PARENT | When user "Brian" accepts share "/textfile0.txt" offered by user "Alice" using the sharing API And user "Brian" accepts share "/PARENT" offered by user "Alice" using the sharing API Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /PARENT/ | + | /PARENT | | /textfile0.txt | - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/textfile0.txt | @@ -526,10 +526,10 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "David" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/abc.txt | And user "David" should not see the following elements - | /PARENT (2)/ | + | /PARENT (2) | And the content of file "/Shares/PARENT/abc.txt" for user "David" should be "uploaded content" @issue-1123 @issue-2540 @@ -600,9 +600,9 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/PaRent/ | + | /PARENT | + | /Shares/PARENT | + | /Shares/PaRent | | /Shares/PARENT.txt | And the content of file "/Shares/PARENT/parent.txt" for user "Brian" should be "subfile, from alice to grp2" And the content of file "/Shares/PaRent/parent.txt" for user "Brian" should be "subfile, from alice to grp2" @@ -620,10 +620,10 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Brian" should see the following elements - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/PARENT (1)/ | - | /Shares/PaRent/ | + | /PARENT | + | /Shares/PARENT | + | /Shares/PARENT (1) | + | /Shares/PaRent | | /Shares/PARENT.txt | | /Shares/PARENT (1).txt | | /Shares/parent.txt | @@ -664,9 +664,9 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should see the following elements - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/PaRent/ | + | /PARENT | + | /Shares/PARENT | + | /Shares/PaRent | | /Shares/PARENT.txt | And the content of file "/Shares/PARENT/parent.txt" for user "Carol" should be "subfile, from alice to grp1" And the content of file "/Shares/PARENT.txt" for user "Carol" should be "from alice to grp1" @@ -683,10 +683,10 @@ Feature: accept/decline shares coming from internal users Then the OCS status code of responses on all endpoints should be "100" And the HTTP status code of responses on all endpoints should be "200" And user "Carol" should see the following elements - | /PARENT/ | - | /Shares/PARENT/ | - | /Shares/PARENT (1)/ | - | /Shares/PaRent/ | + | /PARENT | + | /Shares/PARENT | + | /Shares/PARENT (1) | + | /Shares/PaRent | | /Shares/PARENT.txt | | /Shares/PARENT (1).txt | | /Shares/parent.txt | diff --git a/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature b/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature index 0915ffd09b..6eec4fe5e7 100644 --- a/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature +++ b/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature @@ -154,10 +154,10 @@ Feature: sharing When the administrator removes user "Carol" from group "group0" using the provisioning API Then the HTTP status code should be "204" And user "Brian" should see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | But user "Carol" should not see the following elements - | /Shares/PARENT/ | + | /Shares/PARENT | | /Shares/PARENT/parent.txt | @smokeTest @issue-1226 @issue-1270 @issue-1271 @issue-1231 diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature index 5bbb2b9f37..ecce479b05 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature @@ -188,7 +188,7 @@ Feature: using trashbin together with sharing | ETag | /^"[a-f0-9:\.]{1,32}"$/ | And as "Brian" the file with original path "/Shares/renamed_shared/shared_file.txt" should not exist in the trashbin And user "Brian" should see the following elements - | /Shares/renamed_shared/ | + | /Shares/renamed_shared | | /Shares/renamed_shared/shared_file.txt | And the content of file "/Shares/renamed_shared/shared_file.txt" for user "Brian" should be "file to delete" Examples: diff --git a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature index bb361a0f62..5ef9e1c11e 100644 --- a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature +++ b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature @@ -24,8 +24,8 @@ Feature: restore deleted files/folders And as "Alice" the file with original path "/textfile0.txt" should not exist in the trashbin And the content of file "/textfile0.txt" for user "Alice" should be "file to delete" And user "Alice" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /PARENT/parent.txt | | /textfile0.txt | | /textfile1.txt | @@ -416,8 +416,8 @@ Feature: restore deleted files/folders Then the HTTP status code should be "409" And as "Alice" the file with original path "/parent_folder/sub/parent.txt" should exist in the trashbin And user "Alice" should not see the following elements - | /parent_folder/ | - | /parent_folder/sub/ | + | /parent_folder | + | /parent_folder/sub | | /parent_folder/sub/parent.txt | Examples: | dav-path-version | @@ -440,8 +440,8 @@ Feature: restore deleted files/folders And as "Alice" the file with original path "/parent_folder/sub/parent.txt" should not exist in the trashbin And the content of file "/parent_folder/sub/parent.txt" for user "Alice" should be "parent text" And user "Alice" should see the following elements - | /parent_folder/ | - | /parent_folder/sub/ | + | /parent_folder | + | /parent_folder/sub | | /parent_folder/sub/parent.txt | Examples: | dav-path-version | @@ -459,8 +459,8 @@ Feature: restore deleted files/folders Then the HTTP status code should be "400" And as "Alice" the file with original path "/parent_folder/sub/parent.txt" should exist in the trashbin And user "Alice" should not see the following elements - | /parent_folder/ | - | /parent_folder/sub/ | + | /parent_folder | + | /parent_folder/sub | | /parent_folder/sub/parent.txt | Examples: | dav-path-version | diff --git a/tests/acceptance/features/coreApiWebdavDelete/deleteFolderContents.feature b/tests/acceptance/features/coreApiWebdavDelete/deleteFolderContents.feature index 35d9e8b519..577979745d 100644 --- a/tests/acceptance/features/coreApiWebdavDelete/deleteFolderContents.feature +++ b/tests/acceptance/features/coreApiWebdavDelete/deleteFolderContents.feature @@ -19,12 +19,12 @@ Feature: delete folder contents When user "Alice" deletes everything from folder "/FOLDER/" using the WebDAV API Then the HTTP status code should be "204" And user "Alice" should see the following elements - | /FOLDER/ | - | /PARENT/ | + | /FOLDER | + | /PARENT | | /textfile0.txt | | /textfile1.txt | And user "Alice" should not see the following elements - | /FOLDER/SUBFOLDER/ | + | /FOLDER/SUBFOLDER | | /FOLDER/fileToDelete.txt | | /FOLDER/SUBFOLDER/testfile0.txt | Examples: diff --git a/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature b/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature index 7c2236ee9a..612bd70f6e 100644 --- a/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature +++ b/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature @@ -28,7 +28,7 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "\" using the WebDAV API Then the HTTP status code should be "400" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | Examples: | dav-path-version | | old | @@ -42,7 +42,7 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "\testshare" using the WebDAV API Then the HTTP status code should be "400" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | Examples: | dav-path-version | | old | @@ -56,7 +56,7 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "/hola\hola" using the WebDAV API Then the HTTP status code should be "400" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | Examples: | dav-path-version | | old | @@ -71,9 +71,9 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "/an-other-folder/testshare" using the WebDAV API Then the HTTP status code should be "201" And user "Alice" should not see the following elements - | /testshare/ | + | /testshare | And user "Alice" should see the following elements - | /an-other-folder/testshare/ | + | /an-other-folder/testshare | Examples: | dav-path-version | | old | @@ -87,7 +87,7 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "/not-existing/testshare" using the WebDAV API Then the HTTP status code should be "409" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | Examples: | dav-path-version | | old | @@ -258,7 +258,7 @@ Feature: move (rename) folder When user "Alice" moves folder "/testshare" to "/.htaccess" using the WebDAV API Then the HTTP status code should be "201" And user "Alice" should see the following elements - | /.htaccess/ | + | /.htaccess | Examples: | dav-path-version | | old | diff --git a/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature b/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature index e4f4022952..3021edc550 100644 --- a/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature +++ b/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature @@ -668,7 +668,7 @@ Feature: copy file When user "Alice" copies folder "/testshare" to "/not-existing/testshare" using the WebDAV API Then the HTTP status code should be "409" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | Examples: | dav-path-version | | old | @@ -978,9 +978,9 @@ Feature: copy file When user "Alice" copies folder "/testshare" to "/an-other-folder/testshare" using the WebDAV API Then the HTTP status code should be "201" And user "Alice" should see the following elements - | /testshare/ | + | /testshare | And user "Alice" should see the following elements - | /an-other-folder/testshare/ | + | /an-other-folder/testshare | Examples: | dav-path-version | | old |