From 421baee5538fc55bb36e5e7f73e77ef9ebfc14a4 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 16:55:54 +0545 Subject: [PATCH 01/10] Run with latest core master commit id --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 5633cf82a5..3a5e29cb61 100644 --- a/.drone.star +++ b/.drone.star @@ -1,7 +1,7 @@ def main(ctx): before = [ testing(ctx), - apiTests(ctx, 'master', '7f1c384e8027b17f89427a1dd430ab273c15c7ef'), + apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa'), ] stages = [ From 6a4daa7b83447a15fcd8415257c3378ee76c3b4b Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 17:00:47 +0545 Subject: [PATCH 02/10] Use expected-failures.txt in core acceptance tests --- .drone.star | 5 +++-- tests/acceptance/expected-failures.txt | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 tests/acceptance/expected-failures.txt diff --git a/.drone.star b/.drone.star index 3a5e29cb61..2b4f1dd620 100644 --- a/.drone.star +++ b/.drone.star @@ -92,7 +92,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): ] }, { - 'name': 'acceptance-tests', + 'name': 'core-acceptance-tests', 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -102,7 +102,8 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', - 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton' + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [ 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt new file mode 100644 index 0000000000..2fc4ebdf82 --- /dev/null +++ b/tests/acceptance/expected-failures.txt @@ -0,0 +1 @@ +# this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail From 7c2fc3e2df08247890cfe751503e81f1a2ababf3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 17:22:27 +0545 Subject: [PATCH 03/10] Run all core acceptance tests that are not specifically tagged about OCIS --- .drone.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 2b4f1dd620..75b1075a79 100644 --- a/.drone.star +++ b/.drone.star @@ -97,7 +97,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@skipOnOcis&&~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@skipOnOcis-OC-Storage', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', From d21b66308b811d6e445490dc811924271419c18a Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 27 Jul 2020 19:32:06 +0545 Subject: [PATCH 04/10] Add expected failure scenarios --- tests/acceptance/expected-failures.txt | 635 +++++++++++++++++++++++++ 1 file changed, 635 insertions(+) diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index 2fc4ebdf82..db1ce210f6 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -1 +1,636 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +apiMain/checksums.feature:24 +apiMain/checksums.feature:25 +apiMain/checksums.feature:35 +apiMain/checksums.feature:36 +apiMain/checksums.feature:60 +apiMain/checksums.feature:61 +apiMain/checksums.feature:64 +apiMain/checksums.feature:72 +apiMain/checksums.feature:81 +apiMain/checksums.feature:113 +apiMain/checksums.feature:114 +apiMain/checksums.feature:117 +apiMain/checksums.feature:124 +apiMain/checksums.feature:144 +apiMain/checksums.feature:154 +apiMain/checksums.feature:163 +apiMain/checksums.feature:172 +apiMain/checksums.feature:183 +apiMain/checksums.feature:199 +apiMain/checksums.feature:217 +apiMain/checksums.feature:242 +apiMain/checksums.feature:243 +apiMain/checksums.feature:277 +apiMain/checksums.feature:278 +apiMain/checksums.feature:310 +apiMain/checksums.feature:331 +apiMain/checksums.feature:332 +apiMain/checksums.feature:347 +apiMain/checksums.feature:348 +apiMain/checksums.feature:360 +apiMain/checksums.feature:361 +apiMain/checksums.feature:364 +apiMain/checksums.feature:376 +apiMain/main.feature:5 +apiMain/quota.feature:9 +apiMain/quota.feature:16 +apiMain/quota.feature:23 +apiMain/quota.feature:30 +apiMain/quota.feature:41 +apiMain/quota.feature:54 +apiMain/quota.feature:68 +apiMain/quota.feature:82 +apiMain/quota.feature:99 +apiMain/quota.feature:112 +apiMain/status.feature:5 +apiAuthOcs/ocsDELETEAuth.feature:9 +apiAuthOcs/ocsGETAuth.feature:10 +apiAuthOcs/ocsGETAuth.feature:33 +apiAuthOcs/ocsGETAuth.feature:82 +apiAuthOcs/ocsGETAuth.feature:171 +apiAuthOcs/ocsGETAuth.feature:234 +apiAuthOcs/ocsGETAuth.feature:252 +apiAuthOcs/ocsPOSTAuth.feature:10 +apiAuthOcs/ocsPUTAuth.feature:10 +apiAuthWebDav/webDavDELETEAuth.feature:36 +apiAuthWebDav/webDavLOCKAuth.feature:38 +apiAuthWebDav/webDavMKCOLAuth.feature:37 +apiAuthWebDav/webDavMOVEAuth.feature:37 +apiAuthWebDav/webDavPOSTAuth.feature:38 +apiAuthWebDav/webDavPROPFINDAuth.feature:37 +apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +apiAuthWebDav/webDavPUTAuth.feature:38 +apiCapabilities/capabilitiesWithNormalUser.feature:52 +apiFavorites/favorites.feature:239 +apiFavorites/favorites.feature:240 +apiSharees/sharees.feature:32 +apiSharees/sharees.feature:33 +apiSharees/sharees.feature:53 +apiSharees/sharees.feature:54 +apiSharees/sharees.feature:74 +apiSharees/sharees.feature:75 +apiSharees/sharees.feature:98 +apiSharees/sharees.feature:99 +apiSharees/sharees.feature:118 +apiSharees/sharees.feature:119 +apiSharees/sharees.feature:137 +apiSharees/sharees.feature:138 +apiSharees/sharees.feature:157 +apiSharees/sharees.feature:158 +apiSharees/sharees.feature:177 +apiSharees/sharees.feature:178 +apiSharees/sharees.feature:198 +apiSharees/sharees.feature:199 +apiSharees/sharees.feature:217 +apiSharees/sharees.feature:218 +apiSharees/sharees.feature:237 +apiSharees/sharees.feature:238 +apiSharees/sharees.feature:257 +apiSharees/sharees.feature:258 +apiSharees/sharees.feature:277 +apiSharees/sharees.feature:278 +apiSharees/sharees.feature:297 +apiSharees/sharees.feature:298 +apiSharees/sharees.feature:317 +apiSharees/sharees.feature:318 +apiSharees/sharees.feature:336 +apiSharees/sharees.feature:337 +apiSharees/sharees.feature:355 +apiSharees/sharees.feature:356 +apiSharees/sharees.feature:374 +apiSharees/sharees.feature:375 +apiSharees/sharees.feature:393 +apiSharees/sharees.feature:394 +apiSharees/sharees.feature:412 +apiSharees/sharees.feature:413 +apiSharees/sharees.feature:430 +apiSharees/sharees.feature:431 +apiSharees/sharees.feature:450 +apiSharees/sharees.feature:451 +apiSharees/sharees.feature:475 +apiSharees/sharees.feature:476 +apiSharees/sharees.feature:495 +apiSharees/sharees.feature:496 +apiSharees/sharees.feature:515 +apiSharees/sharees.feature:516 +apiSharees/sharees.feature:537 +apiSharees/sharees.feature:538 +apiShareManagementBasic/createShare.feature:247 +apiShareManagementBasic/createShare.feature:248 +apiShareManagementBasic/createShare.feature:272 +apiShareManagementBasic/createShare.feature:273 +apiShareManagementBasic/createShare.feature:468 +apiShareManagementBasic/createShare.feature:528 +apiShareManagementBasic/createShare.feature:529 +apiShareManagementBasic/deleteShare.feature:36 +apiShareManagementBasic/deleteShare.feature:37 +apiShareOperations/accessToShare.feature:48 +apiShareOperations/accessToShare.feature:49 +apiShareOperations/accessToShare.feature:78 +apiShareOperations/accessToShare.feature:79 +apiShareOperations/gettingShares.feature:21 +apiShareOperations/gettingShares.feature:22 +apiShareOperations/gettingShares.feature:34 +apiShareOperations/gettingShares.feature:35 +apiShareOperations/gettingShares.feature:124 +apiShareOperations/gettingShares.feature:125 +apiShareOperations/gettingShares.feature:168 +apiShareOperations/gettingShares.feature:169 +apiShareOperations/gettingShares.feature:187 +apiShareOperations/gettingShares.feature:219 +apiShareOperations/gettingShares.feature:220 +apiShareOperations/getWebDAVSharePermissions.feature:21 +apiShareOperations/getWebDAVSharePermissions.feature:22 +apiShareOperations/getWebDAVSharePermissions.feature:148 +apiShareOperations/getWebDAVSharePermissions.feature:149 +apiSharePublicLink1/accessToPublicLinkShare.feature:10 +apiSharePublicLink1/accessToPublicLinkShare.feature:20 +apiSharePublicLink1/accessToPublicLinkShare.feature:30 +apiSharePublicLink1/accessToPublicLinkShare.feature:43 +apiSharePublicLink1/changingPublicLinkShare.feature:22 +apiSharePublicLink1/changingPublicLinkShare.feature:23 +apiSharePublicLink1/changingPublicLinkShare.feature:37 +apiSharePublicLink1/changingPublicLinkShare.feature:41 +apiSharePublicLink1/changingPublicLinkShare.feature:52 +apiSharePublicLink1/changingPublicLinkShare.feature:63 +apiSharePublicLink1/changingPublicLinkShare.feature:85 +apiSharePublicLink1/changingPublicLinkShare.feature:96 +apiSharePublicLink1/changingPublicLinkShare.feature:107 +apiSharePublicLink1/changingPublicLinkShare.feature:151 +apiSharePublicLink1/changingPublicLinkShare.feature:197 +apiSharePublicLink1/changingPublicLinkShare.feature:244 +apiSharePublicLink1/changingPublicLinkShare.feature:267 +apiSharePublicLink1/changingPublicLinkShare.feature:278 +apiSharePublicLink1/changingPublicLinkShare.feature:289 +apiSharePublicLink1/changingPublicLinkShare.feature:300 +apiSharePublicLink1/createPublicLinkShare.feature:34 +apiSharePublicLink1/createPublicLinkShare.feature:35 +apiSharePublicLink1/createPublicLinkShare.feature:63 +apiSharePublicLink1/createPublicLinkShare.feature:64 +apiSharePublicLink1/createPublicLinkShare.feature:95 +apiSharePublicLink1/createPublicLinkShare.feature:96 +apiSharePublicLink1/createPublicLinkShare.feature:127 +apiSharePublicLink1/createPublicLinkShare.feature:128 +apiSharePublicLink1/createPublicLinkShare.feature:155 +apiSharePublicLink1/createPublicLinkShare.feature:156 +apiSharePublicLink1/createPublicLinkShare.feature:183 +apiSharePublicLink1/createPublicLinkShare.feature:184 +apiSharePublicLink1/createPublicLinkShare.feature:214 +apiSharePublicLink1/createPublicLinkShare.feature:215 +apiSharePublicLink1/createPublicLinkShare.feature:245 +apiSharePublicLink1/createPublicLinkShare.feature:246 +apiSharePublicLink1/createPublicLinkShare.feature:276 +apiSharePublicLink1/createPublicLinkShare.feature:277 +apiSharePublicLink1/createPublicLinkShare.feature:307 +apiSharePublicLink1/createPublicLinkShare.feature:308 +apiSharePublicLink1/createPublicLinkShare.feature:370 +apiSharePublicLink1/createPublicLinkShare.feature:371 +apiSharePublicLink1/createPublicLinkShare.feature:389 +apiSharePublicLink1/createPublicLinkShare.feature:390 +apiSharePublicLink1/createPublicLinkShare.feature:411 +apiSharePublicLink1/createPublicLinkShare.feature:413 +apiSharePublicLink1/createPublicLinkShare.feature:435 +apiSharePublicLink1/createPublicLinkShare.feature:437 +apiSharePublicLink1/createPublicLinkShare.feature:461 +apiSharePublicLink1/createPublicLinkShare.feature:463 +apiSharePublicLink1/createPublicLinkShare.feature:487 +apiSharePublicLink1/createPublicLinkShare.feature:489 +apiSharePublicLink1/createPublicLinkShare.feature:491 +apiSharePublicLink1/createPublicLinkShare.feature:493 +apiSharePublicLink1/createPublicLinkShare.feature:495 +apiSharePublicLink1/createPublicLinkShare.feature:497 +apiSharePublicLink1/createPublicLinkShare.feature:518 +apiSharePublicLink1/createPublicLinkShare.feature:519 +apiSharePublicLink1/createPublicLinkShare.feature:534 +apiSharePublicLink1/createPublicLinkShare.feature:535 +apiSharePublicLink1/createPublicLinkShare.feature:553 +apiSharePublicLink1/createPublicLinkShare.feature:554 +apiSharePublicLink1/createPublicLinkShare.feature:590 +apiSharePublicLink1/createPublicLinkShare.feature:591 +apiSharePublicLink1/createPublicLinkShare.feature:620 +apiSharePublicLink1/createPublicLinkShare.feature:621 +apiSharePublicLink1/createPublicLinkShare.feature:634 +apiSharePublicLink1/createPublicLinkShare.feature:635 +apiSharePublicLink1/createPublicLinkShare.feature:663 +apiSharePublicLink1/createPublicLinkShare.feature:664 +apiSharePublicLink1/createPublicLinkShare.feature:714 +apiSharePublicLink1/createPublicLinkShare.feature:715 +apiSharePublicLink1/createPublicLinkShare.feature:718 +apiSharePublicLink1/createPublicLinkShare.feature:727 +apiSharePublicLink1/createPublicLinkShare.feature:790 +apiSharePublicLink1/createPublicLinkShare.feature:816 +apiSharePublicLink1/deletePublicLinkShare.feature:37 +apiSharePublicLink1/deletePublicLinkShare.feature:38 +apiSharePublicLink2/copyFromPublicLink.feature:60 +apiSharePublicLink2/copyFromPublicLink.feature:198 +apiSharePublicLink2/copyFromPublicLink.feature:199 +apiSharePublicLink2/copyFromPublicLink.feature:230 +apiSharePublicLink2/copyFromPublicLink.feature:231 +apiSharePublicLink2/updatePublicLinkShare.feature:135 +apiSharePublicLink2/updatePublicLinkShare.feature:136 +apiSharePublicLink2/updatePublicLinkShare.feature:326 +apiSharePublicLink2/updatePublicLinkShare.feature:327 +apiSharePublicLink2/updatePublicLinkShare.feature:345 +apiSharePublicLink2/updatePublicLinkShare.feature:346 +apiSharePublicLink2/updatePublicLinkShare.feature:364 +apiSharePublicLink2/updatePublicLinkShare.feature:365 +apiSharePublicLink2/updatePublicLinkShare.feature:383 +apiSharePublicLink2/updatePublicLinkShare.feature:384 +apiSharePublicLink2/updatePublicLinkShare.feature:402 +apiSharePublicLink2/updatePublicLinkShare.feature:403 +apiSharePublicLink2/updatePublicLinkShare.feature:421 +apiSharePublicLink2/updatePublicLinkShare.feature:422 +apiSharePublicLink2/updatePublicLinkShare.feature:440 +apiSharePublicLink2/updatePublicLinkShare.feature:441 +apiSharePublicLink2/updatePublicLinkShare.feature:459 +apiSharePublicLink2/updatePublicLinkShare.feature:460 +apiSharePublicLink2/updatePublicLinkShare.feature:481 +apiSharePublicLink2/updatePublicLinkShare.feature:482 +apiSharePublicLink2/updatePublicLinkShare.feature:503 +apiSharePublicLink2/updatePublicLinkShare.feature:504 +apiSharePublicLink2/updatePublicLinkShare.feature:528 +apiSharePublicLink2/updatePublicLinkShare.feature:529 +apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +apiSharePublicLink2/uploadToPublicLinkShare.feature:48 +apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +apiSharePublicLink2/uploadToPublicLinkShare.feature:62 +apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +apiSharePublicLink2/uploadToPublicLinkShare.feature:77 +apiSharePublicLink2/uploadToPublicLinkShare.feature:85 +apiSharePublicLink2/uploadToPublicLinkShare.feature:94 +apiSharePublicLink2/uploadToPublicLinkShare.feature:114 +apiSharePublicLink2/uploadToPublicLinkShare.feature:132 +apiSharePublicLink2/uploadToPublicLinkShare.feature:150 +apiSharePublicLink2/uploadToPublicLinkShare.feature:159 +apiSharePublicLink2/uploadToPublicLinkShare.feature:169 +apiSharePublicLink2/uploadToPublicLinkShare.feature:178 +apiSharePublicLink2/uploadToPublicLinkShare.feature:188 +apiSharePublicLink2/uploadToPublicLinkShare.feature:197 +apiSharePublicLink2/uploadToPublicLinkShare.feature:207 +apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +apiSharePublicLink2/uploadToPublicLinkShare.feature:228 +apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +apiSharePublicLink2/uploadToPublicLinkShare.feature:249 +apiSharePublicLink2/uploadToPublicLinkShare.feature:266 +apiSharePublicLink2/uploadToPublicLinkShare.feature:284 +apiVersions/fileVersions.feature:15 +apiVersions/fileVersions.feature:32 +apiVersions/fileVersions.feature:45 +apiVersions/fileVersions.feature:64 +apiVersions/fileVersions.feature:107 +apiVersions/fileVersions.feature:108 +apiVersions/fileVersions.feature:112 +apiVersions/fileVersions.feature:123 +apiVersions/fileVersions.feature:334 +apiVersions/fileVersions.feature:464 +apiVersions/fileVersions.feature:488 +apiWebdavMove1/moveFileAsync.feature:26 +apiWebdavMove1/moveFileAsync.feature:27 +apiWebdavMove1/moveFileAsync.feature:28 +apiWebdavMove1/moveFileAsync.feature:29 +apiWebdavMove1/moveFileAsync.feature:30 +apiWebdavMove1/moveFileAsync.feature:31 +apiWebdavMove1/moveFileAsync.feature:33 +apiWebdavMove1/moveFileAsync.feature:46 +apiWebdavMove1/moveFileAsync.feature:59 +apiWebdavMove1/moveFileAsync.feature:73 +apiWebdavMove1/moveFileAsync.feature:88 +apiWebdavMove1/moveFileAsync.feature:107 +apiWebdavMove1/moveFileAsync.feature:125 +apiWebdavMove1/moveFileAsync.feature:135 +apiWebdavMove1/moveFileAsync.feature:141 +apiWebdavMove1/moveFileAsync.feature:156 +apiWebdavMove1/moveFileAsync.feature:173 +apiWebdavMove1/moveFileAsync.feature:174 +apiWebdavMove1/moveFileAsync.feature:184 +apiWebdavMove1/moveFileAsync.feature:185 +apiWebdavMove1/moveFileAsync.feature:204 +apiWebdavMove1/moveFileAsync.feature:205 +apiWebdavMove1/moveFileAsync.feature:224 +apiWebdavMove1/moveFileAsync.feature:225 +apiWebdavMove1/moveFileAsync.feature:234 +apiWebdavMove1/moveFileAsync.feature:235 +apiWebdavMove1/moveFileAsync.feature:240 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 +apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 +apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +apiWebdavMove1/moveFolder.feature:21 +apiWebdavMove1/moveFolder.feature:22 +apiWebdavMove1/moveFolder.feature:46 +apiWebdavMove1/moveFolder.feature:47 +apiWebdavMove1/moveFolder.feature:71 +apiWebdavMove1/moveFolder.feature:72 +apiWebdavMove1/moveFolderToBlacklistedName.feature:21 +apiWebdavMove1/moveFolderToBlacklistedName.feature:22 +apiWebdavMove1/moveFolderToBlacklistedName.feature:48 +apiWebdavMove1/moveFolderToBlacklistedName.feature:49 +apiWebdavMove1/moveFolderToBlacklistedName.feature:83 +apiWebdavMove1/moveFolderToBlacklistedName.feature:84 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 +apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +apiWebdavMove2/moveFile.feature:89 +apiWebdavMove2/moveFile.feature:90 +apiWebdavMove2/moveFile.feature:91 +apiWebdavMove2/moveFile.feature:92 +apiWebdavMove2/moveFile.feature:112 +apiWebdavMove2/moveFile.feature:113 +apiWebdavMove2/moveFile.feature:136 +apiWebdavMove2/moveFile.feature:137 +apiWebdavMove2/moveFile.feature:138 +apiWebdavMove2/moveFile.feature:139 +apiWebdavMove2/moveFile.feature:160 +apiWebdavMove2/moveFile.feature:161 +apiWebdavMove2/moveFile.feature:181 +apiWebdavMove2/moveFile.feature:182 +apiWebdavMove2/moveFile.feature:200 +apiWebdavMove2/moveFile.feature:201 +apiWebdavMove2/moveFile.feature:219 +apiWebdavMove2/moveFile.feature:220 +apiWebdavMove2/moveFile.feature:267 +apiWebdavMove2/moveFile.feature:268 +apiWebdavMove2/moveFile.feature:284 +apiWebdavMove2/moveFile.feature:285 +apiWebdavMove2/moveFileToBlacklistedName.feature:18 +apiWebdavMove2/moveFileToBlacklistedName.feature:19 +apiWebdavMove2/moveFileToBlacklistedName.feature:41 +apiWebdavMove2/moveFileToBlacklistedName.feature:42 +apiWebdavMove2/moveFileToBlacklistedName.feature:74 +apiWebdavMove2/moveFileToBlacklistedName.feature:75 +apiWebdavMove2/moveFileToExcludedDirectory.feature:18 +apiWebdavMove2/moveFileToExcludedDirectory.feature:19 +apiWebdavMove2/moveFileToExcludedDirectory.feature:28 +apiWebdavMove2/moveFileToExcludedDirectory.feature:29 +apiWebdavMove2/moveFileToExcludedDirectory.feature:63 +apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +apiWebdavOperations/deleteFolder.feature:67 +apiWebdavOperations/deleteFolder.feature:68 +apiWebdavOperations/deleteFolder.feature:69 +apiWebdavOperations/deleteFolder.feature:70 +apiWebdavOperations/deleteFolder.feature:91 +apiWebdavOperations/deleteFolder.feature:92 +apiWebdavOperations/downloadFile.feature:29 +apiWebdavOperations/downloadFile.feature:30 +apiWebdavOperations/downloadFile.feature:72 +apiWebdavOperations/downloadFile.feature:73 +apiWebdavOperations/downloadFile.feature:84 +apiWebdavOperations/downloadFile.feature:85 +apiWebdavOperations/refuseAccess.feature:21 +apiWebdavOperations/refuseAccess.feature:22 +apiWebdavOperations/refuseAccess.feature:47 +apiWebdavOperations/refuseAccess.feature:48 +apiWebdavOperations/search.feature:42 +apiWebdavOperations/search.feature:43 +apiWebdavOperations/search.feature:57 +apiWebdavOperations/search.feature:58 +apiWebdavOperations/search.feature:74 +apiWebdavOperations/search.feature:75 +apiWebdavOperations/search.feature:83 +apiWebdavOperations/search.feature:84 +apiWebdavOperations/search.feature:101 +apiWebdavOperations/search.feature:102 +apiWebdavOperations/search.feature:119 +apiWebdavOperations/search.feature:120 +apiWebdavOperations/search.feature:138 +apiWebdavOperations/search.feature:139 +apiWebdavOperations/search.feature:165 +apiWebdavOperations/search.feature:166 +apiWebdavOperations/search.feature:191 +apiWebdavOperations/search.feature:192 +apiWebdavOperations/search.feature:210 +apiWebdavOperations/search.feature:211 +apiWebdavOperations/search.feature:213 +apiWebdavOperations/search.feature:229 +apiWebdavPreviews/previews.feature:15 +apiWebdavPreviews/previews.feature:16 +apiWebdavPreviews/previews.feature:17 +apiWebdavPreviews/previews.feature:18 +apiWebdavPreviews/previews.feature:19 +apiWebdavPreviews/previews.feature:30 +apiWebdavPreviews/previews.feature:31 +apiWebdavPreviews/previews.feature:32 +apiWebdavPreviews/previews.feature:33 +apiWebdavPreviews/previews.feature:34 +apiWebdavPreviews/previews.feature:35 +apiWebdavPreviews/previews.feature:36 +apiWebdavPreviews/previews.feature:63 +apiWebdavPreviews/previews.feature:64 +apiWebdavPreviews/previews.feature:65 +apiWebdavPreviews/previews.feature:66 +apiWebdavPreviews/previews.feature:67 +apiWebdavPreviews/previews.feature:68 +apiWebdavPreviews/previews.feature:69 +apiWebdavPreviews/previews.feature:88 +apiWebdavPreviews/previews.feature:103 +apiWebdavPreviews/previews.feature:104 +apiWebdavPreviews/previews.feature:105 +apiWebdavPreviews/previews.feature:127 +apiWebdavPreviews/previews.feature:128 +apiWebdavPreviews/previews.feature:143 +apiWebdavPreviews/previews.feature:160 +apiWebdavPreviews/previews.feature:169 +apiWebdavPreviews/previews.feature:186 +apiWebdavPreviews/previews.feature:201 +apiWebdavPreviews/previews.feature:208 +apiWebdavPreviews/previews.feature:224 +apiWebdavPreviews/previews.feature:242 +apiWebdavPreviews/previews.feature:271 +apiWebdavPreviews/previews.feature:272 +apiWebdavPreviews/previews.feature:273 +apiWebdavPreviews/previews.feature:274 +apiWebdavPreviews/previews.feature:286 +apiWebdavPreviews/previews.feature:287 +apiWebdavProperties1/copyFile.feature:65 +apiWebdavProperties1/copyFile.feature:66 +apiWebdavProperties1/copyFile.feature:85 +apiWebdavProperties1/copyFile.feature:86 +apiWebdavProperties1/copyFile.feature:102 +apiWebdavProperties1/copyFile.feature:103 +apiWebdavProperties1/copyFile.feature:116 +apiWebdavProperties1/copyFile.feature:117 +apiWebdavProperties1/copyFile.feature:129 +apiWebdavProperties1/copyFile.feature:130 +apiWebdavProperties1/copyFile.feature:146 +apiWebdavProperties1/copyFile.feature:147 +apiWebdavProperties1/copyFile.feature:165 +apiWebdavProperties1/copyFile.feature:166 +apiWebdavProperties1/copyFile.feature:202 +apiWebdavProperties1/copyFile.feature:203 +apiWebdavProperties1/copyFile.feature:350 +apiWebdavProperties1/copyFile.feature:351 +apiWebdavProperties1/copyFile.feature:370 +apiWebdavProperties1/copyFile.feature:371 +apiWebdavProperties1/copyFile.feature:395 +apiWebdavProperties1/copyFile.feature:396 +apiWebdavProperties1/copyFile.feature:422 +apiWebdavProperties1/copyFile.feature:423 +apiWebdavProperties1/copyFile.feature:448 +apiWebdavProperties1/copyFile.feature:449 +apiWebdavProperties1/copyFile.feature:474 +apiWebdavProperties1/copyFile.feature:475 +apiWebdavProperties1/createFolder.feature:71 +apiWebdavProperties1/createFolder.feature:72 +apiWebdavProperties1/createFolder.feature:85 +apiWebdavProperties1/createFolder.feature:86 +apiWebdavProperties1/createFolder.feature:113 +apiWebdavProperties1/createFolder.feature:114 +apiWebdavProperties1/getQuota.feature:17 +apiWebdavProperties1/getQuota.feature:18 +apiWebdavProperties1/getQuota.feature:27 +apiWebdavProperties1/getQuota.feature:28 +apiWebdavProperties1/getQuota.feature:48 +apiWebdavProperties1/getQuota.feature:49 +apiWebdavProperties1/getQuota.feature:61 +apiWebdavProperties1/getQuota.feature:62 +apiWebdavProperties1/getQuota.feature:77 +apiWebdavProperties1/getQuota.feature:78 +apiWebdavProperties1/setFileProperties.feature:44 +apiWebdavProperties1/setFileProperties.feature:45 +apiWebdavProperties1/setFileProperties.feature:75 +apiWebdavProperties1/setFileProperties.feature:76 +apiWebdavProperties2/getFileProperties.feature:37 +apiWebdavProperties2/getFileProperties.feature:39 +apiWebdavProperties2/getFileProperties.feature:40 +apiWebdavProperties2/getFileProperties.feature:41 +apiWebdavProperties2/getFileProperties.feature:43 +apiWebdavProperties2/getFileProperties.feature:44 +apiWebdavProperties2/getFileProperties.feature:100 +apiWebdavProperties2/getFileProperties.feature:101 +apiWebdavProperties2/getFileProperties.feature:102 +apiWebdavProperties2/getFileProperties.feature:104 +apiWebdavProperties2/getFileProperties.feature:105 +apiWebdavProperties2/getFileProperties.feature:107 +apiWebdavProperties2/getFileProperties.feature:108 +apiWebdavProperties2/getFileProperties.feature:109 +apiWebdavProperties2/getFileProperties.feature:111 +apiWebdavProperties2/getFileProperties.feature:112 +apiWebdavProperties2/getFileProperties.feature:231 +apiWebdavProperties2/getFileProperties.feature:232 +apiWebdavProperties2/getFileProperties.feature:252 +apiWebdavProperties2/getFileProperties.feature:253 +apiWebdavProperties2/getFileProperties.feature:270 +apiWebdavProperties2/getFileProperties.feature:271 +apiWebdavProperties2/getFileProperties.feature:302 +apiWebdavProperties2/getFileProperties.feature:303 +apiWebdavProperties2/getFileProperties.feature:314 +apiWebdavProperties2/getFileProperties.feature:315 +apiWebdavProperties2/getFileProperties.feature:328 +apiWebdavProperties2/getFileProperties.feature:329 +apiWebdavProperties2/getFileProperties.feature:338 +apiWebdavProperties2/getFileProperties.feature:339 +apiWebdavProperties2/getFileProperties.feature:352 +apiWebdavProperties2/getFileProperties.feature:372 +apiWebdavProperties2/getFileProperties.feature:407 +apiWebdavProperties2/getFileProperties.feature:408 +apiWebdavProperties2/getFileProperties.feature:420 +apiWebdavProperties2/getFileProperties.feature:421 +apiWebdavProperties2/getFileProperties.feature:433 +apiWebdavProperties2/getFileProperties.feature:434 +apiWebdavProperties2/getFileProperties.feature:482 +apiWebdavProperties2/getFileProperties.feature:483 +apiWebdavProperties2/getFileProperties.feature:495 +apiWebdavProperties2/getFileProperties.feature:496 +apiWebdavProperties2/getFileProperties.feature:508 +apiWebdavProperties2/getFileProperties.feature:509 +apiWebdavProperties2/getFileProperties.feature:521 +apiWebdavProperties2/getFileProperties.feature:522 +apiWebdavProperties2/getFileProperties.feature:534 +apiWebdavProperties2/getFileProperties.feature:535 +apiWebdavProperties2/getFileProperties.feature:547 +apiWebdavProperties2/getFileProperties.feature:548 +apiWebdavProperties2/getFileProperties.feature:560 +apiWebdavProperties2/getFileProperties.feature:561 +apiWebdavUpload1/uploadFile.feature:123 +apiWebdavUpload1/uploadFile.feature:124 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:65 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:83 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:92 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:106 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 +apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 +apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 +apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 +apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 +apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:57 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:79 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:85 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:94 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:98 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:106 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:135 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 +apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:44 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:76 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:77 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:97 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:98 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:99 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:100 +apiWebdavUpload2/uploadFileUsingOldChunking.feature:101 From c11aed5f228ff8838c5ccca02940e26954f926a3 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Wed, 29 Jul 2020 17:19:38 +0545 Subject: [PATCH 05/10] Run tests even if they have skipOnOcis-OC-Storage --- .drone.star | 2 +- tests/acceptance/expected-failures.txt | 34 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.drone.star b/.drone.star index 75b1075a79..582e802bd3 100644 --- a/.drone.star +++ b/.drone.star @@ -97,7 +97,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'pull': 'always', 'environment' : { 'TEST_SERVER_URL': 'http://reva-server:9140', - 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~@skipOnOcis-OC-Storage', + 'BEHAT_FILTER_TAGS': '~@notToImplementOnOCIS&&~@toImplementOnOCIS', 'REVA_LDAP_HOSTNAME':'ldap', 'TEST_EXTERNAL_USER_BACKENDS':'true', 'TEST_OCIS':'true', diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index db1ce210f6..52c8c57332 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -1,4 +1,38 @@ # this file contains the scenarios from ownCloud10 core API tests that are currently expected to fail +# +# test scenarios that fail with OC storage (that were tagged skipOnOcis-OC-Storage in core) +# +apiFavorites/favorites.feature:39 +apiFavorites/favorites.feature:40 +apiShareManagementBasic/createShare.feature:121 +apiShareManagementBasic/createShare.feature:122 +apiShareManagementBasic/createShare.feature:124 +apiShareManagementBasic/createShare.feature:125 +apiShareManagementBasic/createShare.feature:127 +apiShareManagementBasic/createShare.feature:128 +apiShareManagementBasic/createShare.feature:130 +apiShareManagementBasic/createShare.feature:131 +apiShareManagementBasic/createShare.feature:223 +apiShareManagementBasic/createShare.feature:224 +apiShareManagementBasic/createShare.feature:447 +apiShareManagementBasic/createShare.feature:589 +apiShareManagementBasic/createShare.feature:604 +apiShareManagementBasic/createShare.feature:619 +apiShareOperations/gettingShares.feature:155 +apiShareOperations/gettingShares.feature:156 +apiSharePublicLink2/multilinkSharing.feature:181 +apiWebdavMove2/moveFile.feature:316 +apiWebdavProperties1/setFileProperties.feature:32 +apiWebdavProperties1/setFileProperties.feature:33 +apiWebdavProperties2/getFileProperties.feature:84 +apiWebdavProperties2/getFileProperties.feature:85 +apiWebdavProperties2/getFileProperties.feature:166 +apiWebdavProperties2/getFileProperties.feature:167 +apiWebdavUpload1/uploadFile.feature:63 +apiWebdavUpload1/uploadFile.feature:64 +# +# test scenarios that fail for various reasons (to be specified) +# apiMain/checksums.feature:24 apiMain/checksums.feature:25 apiMain/checksums.feature:35 From f263630192b825113d9a8dd1702077d562ca1b85 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 12:43:19 +0545 Subject: [PATCH 06/10] add comments to tests/acceptance/expected-failures.txt --- tests/acceptance/expected-failures.txt | 308 ++++++++++++++++++++++++- 1 file changed, 306 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/expected-failures.txt b/tests/acceptance/expected-failures.txt index 52c8c57332..c2dea4195e 100644 --- a/tests/acceptance/expected-failures.txt +++ b/tests/acceptance/expected-failures.txt @@ -31,8 +31,7 @@ apiWebdavProperties2/getFileProperties.feature:167 apiWebdavUpload1/uploadFile.feature:63 apiWebdavUpload1/uploadFile.feature:64 # -# test scenarios that fail for various reasons (to be specified) -# +# https://github.com/owncloud/ocis-reva/issues/196 Checksum feature apiMain/checksums.feature:24 apiMain/checksums.feature:25 apiMain/checksums.feature:35 @@ -66,7 +65,11 @@ apiMain/checksums.feature:360 apiMain/checksums.feature:361 apiMain/checksums.feature:364 apiMain/checksums.feature:376 +# +# https://github.com/owncloud/ocis-reva/issues/100 no robots.txt available apiMain/main.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query apiMain/quota.feature:9 apiMain/quota.feature:16 apiMain/quota.feature:23 @@ -77,7 +80,13 @@ apiMain/quota.feature:68 apiMain/quota.feature:82 apiMain/quota.feature:99 apiMain/quota.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" +# https://github.com/owncloud/ocis-reva/issues/97 no command equivalent to occ apiMain/status.feature:5 +# +# https://github.com/owncloud/ocis-reva/issues/29 ocs config endpoint only accessible by authorized users +# https://github.com/owncloud/ocis-reva/issues/30 HTTP 401 Unauthorized responses don't contain a body apiAuthOcs/ocsDELETEAuth.feature:9 apiAuthOcs/ocsGETAuth.feature:10 apiAuthOcs/ocsGETAuth.feature:33 @@ -87,17 +96,40 @@ apiAuthOcs/ocsGETAuth.feature:234 apiAuthOcs/ocsGETAuth.feature:252 apiAuthOcs/ocsPOSTAuth.feature:10 apiAuthOcs/ocsPUTAuth.feature:10 +# +# https://github.com/owncloud/ocis-reva/issues/13 server returns 500 when trying to access a not existing file apiAuthWebDav/webDavDELETEAuth.feature:36 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavLOCKAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavMKCOLAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiAuthWebDav/webDavMOVEAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/179 send POST requests to another user's webDav endpoints as normal user apiAuthWebDav/webDavPOSTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPROPFINDAuth.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPROPPATCHAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/9 users can access each-others data using the new webdav API apiAuthWebDav/webDavPUTAuth.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/175 Default capabilities for normal user not same as in oC-core +# https://github.com/owncloud/ocis-reva/issues/176 Difference in response content of status.php and default capabilities apiCapabilities/capabilitiesWithNormalUser.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented apiFavorites/favorites.feature:239 apiFavorites/favorites.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiSharees/sharees.feature:32 apiSharees/sharees.feature:33 apiSharees/sharees.feature:53 @@ -150,6 +182,8 @@ apiSharees/sharees.feature:515 apiSharees/sharees.feature:516 apiSharees/sharees.feature:537 apiSharees/sharees.feature:538 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist apiShareManagementBasic/createShare.feature:247 apiShareManagementBasic/createShare.feature:248 apiShareManagementBasic/createShare.feature:272 @@ -157,27 +191,53 @@ apiShareManagementBasic/createShare.feature:273 apiShareManagementBasic/createShare.feature:468 apiShareManagementBasic/createShare.feature:528 apiShareManagementBasic/createShare.feature:529 +# +# https://github.com/owncloud/ocis-reva/issues/356 Fields missing in delete share OCS response apiShareManagementBasic/deleteShare.feature:36 apiShareManagementBasic/deleteShare.feature:37 +# +# https://github.com/owncloud/ocis-reva/issues/260 Sharee retrieves the information about a share -but gets response containing all the shares apiShareOperations/accessToShare.feature:48 apiShareOperations/accessToShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/34 groups endpoint does not exist +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support apiShareOperations/accessToShare.feature:78 apiShareOperations/accessToShare.feature:79 +# +# https://github.com/owncloud/ocis-reva/issues/262 Shares are not deleted when user is deleted apiShareOperations/gettingShares.feature:21 apiShareOperations/gettingShares.feature:22 +# +# https://github.com/owncloud/ocis-reva/issues/65 There is no such thing like a "super-user" apiShareOperations/gettingShares.feature:34 apiShareOperations/gettingShares.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/357 Delete shares from user when user is deleted +# https://github.com/owncloud/ocis-reva/issues/301 no displayname_owner shown when creating a share +# https://github.com/owncloud/ocis-reva/issues/302 when sharing a file mime-type field is set to application/octet-stream apiShareOperations/gettingShares.feature:124 apiShareOperations/gettingShares.feature:125 +# +# https://github.com/owncloud/ocis-reva/issues/374 OCS error message for attempting to access share via share id as an unauthorized user is not informative apiShareOperations/gettingShares.feature:168 apiShareOperations/gettingShares.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/194 Group shares support apiShareOperations/gettingShares.feature:187 +# +# https://github.com/owncloud/ocis-reva/issues/372 Listing shares via ocs API does not show path for parent folders apiShareOperations/gettingShares.feature:219 apiShareOperations/gettingShares.feature:220 +# +# https://github.com/owncloud/ocis-reva/issues/47 cannot get ocs:share-permissions via WebDAV apiShareOperations/getWebDAVSharePermissions.feature:21 apiShareOperations/getWebDAVSharePermissions.feature:22 apiShareOperations/getWebDAVSharePermissions.feature:148 apiShareOperations/getWebDAVSharePermissions.feature:149 +# +# https://github.com/owncloud/ocis-reva/issues/282 Split old public API webdav tests from new public webdav tests +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/accessToPublicLinkShare.feature:10 apiSharePublicLink1/accessToPublicLinkShare.feature:20 apiSharePublicLink1/accessToPublicLinkShare.feature:30 @@ -200,115 +260,220 @@ apiSharePublicLink1/changingPublicLinkShare.feature:289 apiSharePublicLink1/changingPublicLinkShare.feature:300 apiSharePublicLink1/createPublicLinkShare.feature:34 apiSharePublicLink1/createPublicLinkShare.feature:35 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiSharePublicLink1/createPublicLinkShare.feature:63 apiSharePublicLink1/createPublicLinkShare.feature:64 +# apiSharePublicLink1/createPublicLinkShare.feature:95 apiSharePublicLink1/createPublicLinkShare.feature:96 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies apiSharePublicLink1/createPublicLinkShare.feature:127 apiSharePublicLink1/createPublicLinkShare.feature:128 +# apiSharePublicLink1/createPublicLinkShare.feature:155 apiSharePublicLink1/createPublicLinkShare.feature:156 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:183 apiSharePublicLink1/createPublicLinkShare.feature:184 +# apiSharePublicLink1/createPublicLinkShare.feature:214 apiSharePublicLink1/createPublicLinkShare.feature:215 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiSharePublicLink1/createPublicLinkShare.feature:245 apiSharePublicLink1/createPublicLinkShare.feature:246 +# apiSharePublicLink1/createPublicLinkShare.feature:276 apiSharePublicLink1/createPublicLinkShare.feature:277 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:307 apiSharePublicLink1/createPublicLinkShare.feature:308 +# apiSharePublicLink1/createPublicLinkShare.feature:370 apiSharePublicLink1/createPublicLinkShare.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:389 apiSharePublicLink1/createPublicLinkShare.feature:390 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:411 apiSharePublicLink1/createPublicLinkShare.feature:413 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:435 apiSharePublicLink1/createPublicLinkShare.feature:437 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:461 apiSharePublicLink1/createPublicLinkShare.feature:463 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:487 apiSharePublicLink1/createPublicLinkShare.feature:489 apiSharePublicLink1/createPublicLinkShare.feature:491 apiSharePublicLink1/createPublicLinkShare.feature:493 apiSharePublicLink1/createPublicLinkShare.feature:495 apiSharePublicLink1/createPublicLinkShare.feature:497 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:518 apiSharePublicLink1/createPublicLinkShare.feature:519 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:534 apiSharePublicLink1/createPublicLinkShare.feature:535 +# apiSharePublicLink1/createPublicLinkShare.feature:553 apiSharePublicLink1/createPublicLinkShare.feature:554 +# apiSharePublicLink1/createPublicLinkShare.feature:590 apiSharePublicLink1/createPublicLinkShare.feature:591 +# +# https://github.com/owncloud/ocis-reva/issues/283 Prevent creating public share for the home root folder apiSharePublicLink1/createPublicLinkShare.feature:620 apiSharePublicLink1/createPublicLinkShare.feature:621 +# apiSharePublicLink1/createPublicLinkShare.feature:634 apiSharePublicLink1/createPublicLinkShare.feature:635 +# apiSharePublicLink1/createPublicLinkShare.feature:663 apiSharePublicLink1/createPublicLinkShare.feature:664 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink1/createPublicLinkShare.feature:714 apiSharePublicLink1/createPublicLinkShare.feature:715 +# +# https://github.com/owncloud/ocis-reva/issues/199 Ability to return error messages in Webdav response bodies apiSharePublicLink1/createPublicLinkShare.feature:718 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink1/createPublicLinkShare.feature:727 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API apiSharePublicLink1/createPublicLinkShare.feature:790 +# +# https://github.com/owncloud/core/issues/37605 Public cannot upload file with mtime set on a public link share with new version of WebDAV API apiSharePublicLink1/createPublicLinkShare.feature:816 +# +# https://github.com/owncloud/ocis-reva/issues/311 Deleting a public link after renaming a file apiSharePublicLink1/deletePublicLinkShare.feature:37 apiSharePublicLink1/deletePublicLinkShare.feature:38 +# +# https://github.com/owncloud/ocis-reva/issues/373 copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file apiSharePublicLink2/copyFromPublicLink.feature:60 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder apiSharePublicLink2/copyFromPublicLink.feature:198 apiSharePublicLink2/copyFromPublicLink.feature:199 +# +# https://github.com/owncloud/ocis-reva/issues/368 copying a file from within a public link folder to "/" overwrites the parent folder apiSharePublicLink2/copyFromPublicLink.feature:230 apiSharePublicLink2/copyFromPublicLink.feature:231 +# apiSharePublicLink2/updatePublicLinkShare.feature:135 apiSharePublicLink2/updatePublicLinkShare.feature:136 +# apiSharePublicLink2/updatePublicLinkShare.feature:326 apiSharePublicLink2/updatePublicLinkShare.feature:327 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:345 apiSharePublicLink2/updatePublicLinkShare.feature:346 +# apiSharePublicLink2/updatePublicLinkShare.feature:364 apiSharePublicLink2/updatePublicLinkShare.feature:365 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:383 apiSharePublicLink2/updatePublicLinkShare.feature:384 +# apiSharePublicLink2/updatePublicLinkShare.feature:402 apiSharePublicLink2/updatePublicLinkShare.feature:403 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:421 apiSharePublicLink2/updatePublicLinkShare.feature:422 +# apiSharePublicLink2/updatePublicLinkShare.feature:440 apiSharePublicLink2/updatePublicLinkShare.feature:441 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiSharePublicLink2/updatePublicLinkShare.feature:459 apiSharePublicLink2/updatePublicLinkShare.feature:460 +# apiSharePublicLink2/updatePublicLinkShare.feature:481 apiSharePublicLink2/updatePublicLinkShare.feature:482 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink2/updatePublicLinkShare.feature:503 apiSharePublicLink2/updatePublicLinkShare.feature:504 +# apiSharePublicLink2/updatePublicLinkShare.feature:528 apiSharePublicLink2/updatePublicLinkShare.feature:529 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:9 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:23 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:48 apiSharePublicLink2/uploadToPublicLinkShare.feature:49 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 apiSharePublicLink2/uploadToPublicLinkShare.feature:62 apiSharePublicLink2/uploadToPublicLinkShare.feature:63 +# +# https://github.com/owncloud/ocis-reva/issues/290 Accessing non-existing public link should return 404, not 500 apiSharePublicLink2/uploadToPublicLinkShare.feature:77 +# +# https://github.com/owncloud/ocis-reva/issues/292 Public link enforce permissions apiSharePublicLink2/uploadToPublicLinkShare.feature:85 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:94 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:114 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:132 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:150 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings apiSharePublicLink2/uploadToPublicLinkShare.feature:159 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:169 +# +# https://github.com/owncloud/ocis-reva/issues/195 Set quota over settings apiSharePublicLink2/uploadToPublicLinkShare.feature:178 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:188 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:197 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:207 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:217 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:228 +# +# https://github.com/owncloud/ocis-reva/issues/41 various sharing settings cannot be set apiSharePublicLink2/uploadToPublicLinkShare.feature:238 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:249 +# apiSharePublicLink2/uploadToPublicLinkShare.feature:266 +# +# https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:284 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiVersions/fileVersions.feature:15 apiVersions/fileVersions.feature:32 apiVersions/fileVersions.feature:45 @@ -320,6 +485,8 @@ apiVersions/fileVersions.feature:123 apiVersions/fileVersions.feature:334 apiVersions/fileVersions.feature:464 apiVersions/fileVersions.feature:488 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileAsync.feature:26 apiWebdavMove1/moveFileAsync.feature:27 apiWebdavMove1/moveFileAsync.feature:28 @@ -347,30 +514,42 @@ apiWebdavMove1/moveFileAsync.feature:225 apiWebdavMove1/moveFileAsync.feature:234 apiWebdavMove1/moveFileAsync.feature:235 apiWebdavMove1/moveFileAsync.feature:240 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:12 apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:18 apiWebdavMove1/moveFileToBlacklistedNameAsync.feature:26 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:12 apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:19 apiWebdavMove1/moveFileToExcludedDirectoryAsync.feature:27 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolder.feature:21 apiWebdavMove1/moveFolder.feature:22 apiWebdavMove1/moveFolder.feature:46 apiWebdavMove1/moveFolder.feature:47 apiWebdavMove1/moveFolder.feature:71 apiWebdavMove1/moveFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToBlacklistedName.feature:21 apiWebdavMove1/moveFolderToBlacklistedName.feature:22 apiWebdavMove1/moveFolderToBlacklistedName.feature:48 apiWebdavMove1/moveFolderToBlacklistedName.feature:49 apiWebdavMove1/moveFolderToBlacklistedName.feature:83 apiWebdavMove1/moveFolderToBlacklistedName.feature:84 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove1/moveFolderToExcludedDirectory.feature:21 apiWebdavMove1/moveFolderToExcludedDirectory.feature:22 apiWebdavMove1/moveFolderToExcludedDirectory.feature:34 apiWebdavMove1/moveFolderToExcludedDirectory.feature:35 apiWebdavMove1/moveFolderToExcludedDirectory.feature:70 apiWebdavMove1/moveFolderToExcludedDirectory.feature:71 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFile.feature:89 apiWebdavMove2/moveFile.feature:90 apiWebdavMove2/moveFile.feature:91 @@ -393,34 +572,48 @@ apiWebdavMove2/moveFile.feature:267 apiWebdavMove2/moveFile.feature:268 apiWebdavMove2/moveFile.feature:284 apiWebdavMove2/moveFile.feature:285 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToBlacklistedName.feature:18 apiWebdavMove2/moveFileToBlacklistedName.feature:19 apiWebdavMove2/moveFileToBlacklistedName.feature:41 apiWebdavMove2/moveFileToBlacklistedName.feature:42 apiWebdavMove2/moveFileToBlacklistedName.feature:74 apiWebdavMove2/moveFileToBlacklistedName.feature:75 +# +# https://github.com/owncloud/ocis-reva/issues/14 renaming a resource does not work apiWebdavMove2/moveFileToExcludedDirectory.feature:18 apiWebdavMove2/moveFileToExcludedDirectory.feature:19 apiWebdavMove2/moveFileToExcludedDirectory.feature:28 apiWebdavMove2/moveFileToExcludedDirectory.feature:29 apiWebdavMove2/moveFileToExcludedDirectory.feature:63 apiWebdavMove2/moveFileToExcludedDirectory.feature:64 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavOperations/deleteFolder.feature:67 apiWebdavOperations/deleteFolder.feature:68 apiWebdavOperations/deleteFolder.feature:69 apiWebdavOperations/deleteFolder.feature:70 apiWebdavOperations/deleteFolder.feature:91 apiWebdavOperations/deleteFolder.feature:92 +# +# https://github.com/owncloud/ocis-reva/issues/12 Range Header is not obeyed when downloading a file apiWebdavOperations/downloadFile.feature:29 apiWebdavOperations/downloadFile.feature:30 +# apiWebdavOperations/downloadFile.feature:72 apiWebdavOperations/downloadFile.feature:73 +# apiWebdavOperations/downloadFile.feature:84 apiWebdavOperations/downloadFile.feature:85 +# apiWebdavOperations/refuseAccess.feature:21 apiWebdavOperations/refuseAccess.feature:22 +# apiWebdavOperations/refuseAccess.feature:47 apiWebdavOperations/refuseAccess.feature:48 +# +# https://github.com/owncloud/ocis-reva/issues/39 REPORT request not implemented apiWebdavOperations/search.feature:42 apiWebdavOperations/search.feature:43 apiWebdavOperations/search.feature:57 @@ -443,6 +636,8 @@ apiWebdavOperations/search.feature:210 apiWebdavOperations/search.feature:211 apiWebdavOperations/search.feature:213 apiWebdavOperations/search.feature:229 +# +# https://github.com/owncloud/ocis/issues/187 Previews via webDAV API tests fails on OCIS apiWebdavPreviews/previews.feature:15 apiWebdavPreviews/previews.feature:16 apiWebdavPreviews/previews.feature:17 @@ -482,40 +677,76 @@ apiWebdavPreviews/previews.feature:273 apiWebdavPreviews/previews.feature:274 apiWebdavPreviews/previews.feature:286 apiWebdavPreviews/previews.feature:287 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties1/copyFile.feature:65 apiWebdavProperties1/copyFile.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties1/copyFile.feature:85 apiWebdavProperties1/copyFile.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavProperties1/copyFile.feature:102 apiWebdavProperties1/copyFile.feature:103 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:116 apiWebdavProperties1/copyFile.feature:117 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:129 apiWebdavProperties1/copyFile.feature:130 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:146 apiWebdavProperties1/copyFile.feature:147 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:165 apiWebdavProperties1/copyFile.feature:166 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:202 apiWebdavProperties1/copyFile.feature:203 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:350 apiWebdavProperties1/copyFile.feature:351 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:370 apiWebdavProperties1/copyFile.feature:371 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:395 apiWebdavProperties1/copyFile.feature:396 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:422 apiWebdavProperties1/copyFile.feature:423 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:448 apiWebdavProperties1/copyFile.feature:449 +# +# https://github.com/owncloud/ocis-reva/issues/387 Getting information about a folder overwritten by a file gives 500 error instead of 404 apiWebdavProperties1/copyFile.feature:474 apiWebdavProperties1/copyFile.feature:475 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavProperties1/createFolder.feature:71 apiWebdavProperties1/createFolder.feature:72 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body apiWebdavProperties1/createFolder.feature:85 apiWebdavProperties1/createFolder.feature:86 +# +# https://github.com/owncloud/ocis-reva/issues/168 creating a folder that already exists returns an empty body apiWebdavProperties1/createFolder.feature:113 apiWebdavProperties1/createFolder.feature:114 +# +# https://github.com/owncloud/ocis-reva/issues/101 quota query apiWebdavProperties1/getQuota.feature:17 apiWebdavProperties1/getQuota.feature:18 apiWebdavProperties1/getQuota.feature:27 @@ -526,16 +757,24 @@ apiWebdavProperties1/getQuota.feature:61 apiWebdavProperties1/getQuota.feature:62 apiWebdavProperties1/getQuota.feature:77 apiWebdavProperties1/getQuota.feature:78 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties1/setFileProperties.feature:44 apiWebdavProperties1/setFileProperties.feature:45 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties1/setFileProperties.feature:75 apiWebdavProperties1/setFileProperties.feature:76 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded apiWebdavProperties2/getFileProperties.feature:37 apiWebdavProperties2/getFileProperties.feature:39 apiWebdavProperties2/getFileProperties.feature:40 apiWebdavProperties2/getFileProperties.feature:41 apiWebdavProperties2/getFileProperties.feature:43 apiWebdavProperties2/getFileProperties.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/214 XML properties in webdav response not properly encoded apiWebdavProperties2/getFileProperties.feature:100 apiWebdavProperties2/getFileProperties.feature:101 apiWebdavProperties2/getFileProperties.feature:102 @@ -546,44 +785,85 @@ apiWebdavProperties2/getFileProperties.feature:108 apiWebdavProperties2/getFileProperties.feature:109 apiWebdavProperties2/getFileProperties.feature:111 apiWebdavProperties2/getFileProperties.feature:112 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:231 apiWebdavProperties2/getFileProperties.feature:232 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:252 apiWebdavProperties2/getFileProperties.feature:253 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:270 apiWebdavProperties2/getFileProperties.feature:271 +# +# https://github.com/owncloud/ocis-reva/issues/11 listing received shares does not work apiWebdavProperties2/getFileProperties.feature:302 apiWebdavProperties2/getFileProperties.feature:303 +# apiWebdavProperties2/getFileProperties.feature:314 apiWebdavProperties2/getFileProperties.feature:315 +# +# https://github.com/owncloud/ocis-reva/issues/216 Private link support apiWebdavProperties2/getFileProperties.feature:328 apiWebdavProperties2/getFileProperties.feature:329 +# +# https://github.com/owncloud/ocis-reva/issues/163 trying to access a non-existing resource returns an empty body apiWebdavProperties2/getFileProperties.feature:338 apiWebdavProperties2/getFileProperties.feature:339 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:352 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:372 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:407 apiWebdavProperties2/getFileProperties.feature:408 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:420 apiWebdavProperties2/getFileProperties.feature:421 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:433 apiWebdavProperties2/getFileProperties.feature:434 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:482 apiWebdavProperties2/getFileProperties.feature:483 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:495 apiWebdavProperties2/getFileProperties.feature:496 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:508 apiWebdavProperties2/getFileProperties.feature:509 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:521 apiWebdavProperties2/getFileProperties.feature:522 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:534 apiWebdavProperties2/getFileProperties.feature:535 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:547 apiWebdavProperties2/getFileProperties.feature:548 +# +# https://github.com/owncloud/ocis-reva/issues/217 Some failing tests with Webdav custom properties apiWebdavProperties2/getFileProperties.feature:560 apiWebdavProperties2/getFileProperties.feature:561 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload1/uploadFile.feature:123 apiWebdavUpload1/uploadFile.feature:124 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:31 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:48 @@ -595,54 +875,76 @@ apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:143 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:144 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:146 apiWebdavUpload1/uploadFileAsyncUsingNewChunking.feature:159 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload1/uploadFileToBlacklistedName.feature:19 apiWebdavUpload1/uploadFileToBlacklistedName.feature:20 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing apiWebdavUpload1/uploadFileToBlacklistedName.feature:31 apiWebdavUpload1/uploadFileToBlacklistedName.feature:32 +# +# https://github.com/owncloud/ocis-reva/issues/54 system configuration options missing apiWebdavUpload1/uploadFileToBlacklistedName.feature:65 apiWebdavUpload1/uploadFileToBlacklistedName.feature:66 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:23 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:47 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:48 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:49 apiWebdavUpload1/uploadFileToBlacklistedNameAsyncUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToExcludedDirectory.feature:20 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:21 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:33 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:34 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:69 apiWebdavUpload1/uploadFileToExcludedDirectory.feature:70 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:14 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:24 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:49 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:50 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:51 apiWebdavUpload1/uploadFileToExcludedDirectoryAsyncUsingNewChunking.feature:54 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:21 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:45 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:46 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:47 apiWebdavUpload2/uploadFileToBlacklistedNameUsingNewChunking.feature:50 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:20 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:37 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:38 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:39 apiWebdavUpload2/uploadFileToBlacklistedNameUsingOldChunking.feature:42 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:22 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:47 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:48 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:49 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingNewChunking.feature:52 +# +# https://github.com/owncloud/ocis-reva/issues/15 blacklisted filenames like .htaccess & file.parts can be uploaded apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:21 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:39 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:40 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:41 apiWebdavUpload2/uploadFileToExcludedDirectoryUsingOldChunking.feature:44 +# +# https://github.com/owncloud/ocis-reva/issues/56 remote.php/dav/uploads endpoint does not exist apiWebdavUpload2/uploadFileUsingNewChunking.feature:12 apiWebdavUpload2/uploadFileUsingNewChunking.feature:29 apiWebdavUpload2/uploadFileUsingNewChunking.feature:43 @@ -657,6 +959,8 @@ apiWebdavUpload2/uploadFileUsingNewChunking.feature:136 apiWebdavUpload2/uploadFileUsingNewChunking.feature:137 apiWebdavUpload2/uploadFileUsingNewChunking.feature:157 apiWebdavUpload2/uploadFileUsingNewChunking.feature:158 +# +# https://github.com/owncloud/ocis-reva/issues/17 uploading with old-chunking does not work apiWebdavUpload2/uploadFileUsingOldChunking.feature:13 apiWebdavUpload2/uploadFileUsingOldChunking.feature:26 apiWebdavUpload2/uploadFileUsingOldChunking.feature:35 From 9d147b157a0f03eb6485be30ed66f6742da1b3b5 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 14:18:03 +0545 Subject: [PATCH 07/10] Add infrastructure and first local acceptance test --- .codacy.yml | 1 + .drone.star | 46 +++++++++++++++++-- .gitignore | 7 +++ Makefile | 18 ++++++++ composer.json | 18 ++++++++ tests/acceptance/config/behat.yml | 30 ++++++++++++ .../apiOcisSpecific/ocsDELETEAuth.feature | 27 +++++++++++ .../features/bootstrap/RevaContext.php | 40 ++++++++++++++++ .../features/bootstrap/bootstrap.php | 14 ++++++ vendor-bin/behat/composer.json | 22 +++++++++ 10 files changed, 218 insertions(+), 5 deletions(-) create mode 100644 composer.json create mode 100644 tests/acceptance/config/behat.yml create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature create mode 100644 tests/acceptance/features/bootstrap/RevaContext.php create mode 100644 tests/acceptance/features/bootstrap/bootstrap.php create mode 100644 vendor-bin/behat/composer.json diff --git a/.codacy.yml b/.codacy.yml index 855b4f298b..02e0cf2ebe 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -4,5 +4,6 @@ exclude_paths: - changelog/** - docs/** - pkg/proto/** + - tests/acceptance/features/bootstrap/* ... diff --git a/.drone.star b/.drone.star index 582e802bd3..fd7d2695ea 100644 --- a/.drone.star +++ b/.drone.star @@ -91,6 +91,47 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): }, ] }, + { + 'name': 'clone-test-repos', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []), + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'local-acceptance-tests', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'environment' : { + 'TEST_SERVER_URL': 'http://reva-server:9140', + 'REVA_LDAP_HOSTNAME':'ldap', + 'TEST_EXTERNAL_USER_BACKENDS':'true', + 'TEST_OCIS':'true', + 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', + 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'PATH_TO_CORE': '/srv/app/testrunner' + }, + 'commands': [ + 'make test-acceptance-api' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, { 'name': 'core-acceptance-tests', 'image': 'owncloudci/php:7.2', @@ -106,12 +147,7 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [ - 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', - 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), 'cd /srv/app/testrunner', - ] + ([ - 'git checkout %s' % (coreCommit) - ] if coreCommit != '' else []) + [ 'make test-acceptance-api' ], 'volumes': [ diff --git a/.gitignore b/.gitignore index 6067678797..4899c1247d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,10 @@ coverage.out /node_modules /assets + +# API acceptance tests +composer.lock +/vendor +vendor-bin/**/vendor +vendor-bin/**/composer.lock +tests/acceptance/output diff --git a/Makefile b/Makefile index 511c344f59..3f90d955f2 100644 --- a/Makefile +++ b/Makefile @@ -159,3 +159,21 @@ docs: config-docs-generate docs-copy docs-build .PHONY: watch watch: go run github.com/cespare/reflex -c reflex.conf + +BEHAT_BIN=vendor-bin/behat/vendor/bin/behat + +.PHONY: test-acceptance-api +test-acceptance-api: vendor-bin/behat/vendor + BEHAT_BIN=$(BEHAT_BIN) $(PATH_TO_CORE)/tests/acceptance/run.sh --remote --type api + +vendor/bamarni/composer-bin-plugin: composer.lock + composer install + +vendor-bin/behat/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/behat/composer.lock + composer bin behat install --no-progress + +vendor-bin/behat/composer.lock: vendor-bin/behat/composer.json + @echo behat composer.lock is not up to date. + +composer.lock: composer.json + @echo composer.lock is not up to date. diff --git a/composer.json b/composer.json new file mode 100644 index 0000000000..53c0a9c219 --- /dev/null +++ b/composer.json @@ -0,0 +1,18 @@ +{ + "name": "owncloud/ocis-reva", + "config" : { + "platform": { + "php": "7.2" + } + }, + "require": { + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4" + }, + "extra": { + "bamarni-bin": { + "bin-links": false + } + } +} diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml new file mode 100644 index 0000000000..b74d189ad5 --- /dev/null +++ b/tests/acceptance/config/behat.yml @@ -0,0 +1,30 @@ +default: + autoload: + '': '%paths.base%/../features/bootstrap' + + suites: + apiOcisSpecific: + paths: + - '%paths.base%/../features/apiOcisSpecific' + context: &common_ldap_suite_context + parameters: + ldapAdminPassword: admin + ldapUsersOU: TestUsers + ldapGroupsOU: TestGroups + ldapInitialUserFilePath: /../../config/ldap-users.ldif + contexts: + - RevaContext: + - OccContext: + - FeatureContext: &common_feature_context_params + baseUrl: http://localhost:8080 + adminUsername: admin + adminPassword: admin + regularUserPassword: 123456 + ocPath: apps/testing/api/v1/occ + - FavoritesContext: + - WebDavPropertiesContext: + + extensions: + jarnaiz\JUnitFormatter\JUnitFormatterExtension: + filename: report.xml + outputDir: '%paths.base%/../output/' diff --git a/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature new file mode 100644 index 0000000000..8be10830f8 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsDELETEAuth.feature @@ -0,0 +1,27 @@ +@api +Feature: auth + + @issue-ocis-reva-30 @issue-ocis-reva-65 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send DELETE requests to OCS endpoints as admin with wrong password + When the administrator 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 "notset" diff --git a/tests/acceptance/features/bootstrap/RevaContext.php b/tests/acceptance/features/bootstrap/RevaContext.php new file mode 100644 index 0000000000..2a41222029 --- /dev/null +++ b/tests/acceptance/features/bootstrap/RevaContext.php @@ -0,0 +1,40 @@ +getEnvironment(); + // Get all the contexts you need in this context + $this->featureContext = $environment->getContext('FeatureContext'); + SetupHelper::init( + $this->featureContext->getAdminUsername(), + $this->featureContext->getAdminPassword(), + $this->featureContext->getBaseUrl(), + $this->featureContext->getOcPath() + ); + } +} diff --git a/tests/acceptance/features/bootstrap/bootstrap.php b/tests/acceptance/features/bootstrap/bootstrap.php new file mode 100644 index 0000000000..1e2175b1ba --- /dev/null +++ b/tests/acceptance/features/bootstrap/bootstrap.php @@ -0,0 +1,14 @@ +addPsr4( + "", $pathToCore . "/tests/acceptance/features/bootstrap", true +); + +$classLoader->register(); diff --git a/vendor-bin/behat/composer.json b/vendor-bin/behat/composer.json new file mode 100644 index 0000000000..aa22f60040 --- /dev/null +++ b/vendor-bin/behat/composer.json @@ -0,0 +1,22 @@ +{ + "config" : { + "platform": { + "php": "7.2" + } + }, + "require": { + "behat/behat": "^3.7", + "behat/mink": "1.7.1", + "behat/mink-extension": "^2.3", + "behat/mink-goutte-driver": "^1.2", + "behat/mink-selenium2-driver": "^1.4", + "jarnaiz/behat-junit-formatter": "^1.3", + "rdx/behat-variables": "^1.2", + "sensiolabs/behat-page-object-extension": "^2.3", + "symfony/translation": "^4.4", + "sabre/xml": "^2.2", + "guzzlehttp/guzzle": "^6.5", + "phpunit/phpunit": "^8.5", + "laminas/laminas-ldap": "^2.10" + } +} From 71f1c752fffe270a24e4fec36f9bf328ed09cf32 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Thu, 30 Jul 2020 14:40:11 +0545 Subject: [PATCH 08/10] Add apiOcisSpecific features from apiAuthOcs --- .../apiOcisSpecific/ocsGETAuth.feature | 112 ++++++++++++++++++ .../apiOcisSpecific/ocsPOSTAuth.feature | 35 ++++++ .../apiOcisSpecific/ocsPUTAuth.feature | 18 +++ 3 files changed, 165 insertions(+) create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature diff --git a/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature new file mode 100644 index 0000000000..d48ec88c0d --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsGETAuth.feature @@ -0,0 +1,112 @@ +@api +Feature: auth + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-29 + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS anonymously + When a user requests these endpoints with "GET" and no authentication + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/apps/files_sharing/api/v1/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /ocs/v1.php/cloud/apps | + | /ocs/v2.php/cloud/apps | + | /ocs/v1.php/cloud/groups | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /ocs/v1.php/config | + | /ocs/v2.php/config | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v2.php/privatedata/getattribute | + 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 "notset" + + @issue-ocis-reva-11 + @issue-ocis-reva-30 + @issue-ocis-reva-31 + @issue-ocis-reva-32 + @issue-ocis-reva-33 + @issue-ocis-reva-34 + @issue-ocis-reva-35 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS with non-admin basic auth + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v1.php/cloud/groups | + | /ocs/v1.php/cloud/apps | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "998" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/config | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "100" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + # | /ocs/v1.php/apps/files_sharing/api/v1/shares | 100 | 200 | + # | /ocs/v2.php/apps/files_sharing/api/v1/shares | 100 | 200 | + + | /ocs/v2.php/cloud/apps | + | /ocs/v2.php/cloud/groups | + | /ocs/v2.php/privatedata/getattribute | + Then the HTTP status code of responses on all endpoints should be "404" + And the OCS status code of responses on all endpoints should be "998" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v1.php/cloud/users | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "403" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/cloud/users | + Then the HTTP status code of responses on all endpoints should be "403" + And the OCS status code of responses on all endpoints should be "403" + When the user "Alice" requests these endpoints with "GET" with basic auth + | endpoint | + | /ocs/v2.php/config | + Then the HTTP status code of responses on all endpoints should be "200" + And the OCS status code of responses on all endpoints should be "200" + + @issue-ocis-reva-29 + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: using OCS as normal user with wrong password + When user "Alice" requests these endpoints with "GET" using password "invalid" + | endpoint | + | /ocs/v1.php/apps/files_external/api/v1/mounts | + | /ocs/v2.php/apps/files_external/api/v1/mounts | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares | + | /ocs/v1.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v2.php/apps/files_sharing/api/v1/remote_shares/pending | + | /ocs/v1.php/apps/files_sharing/api/v1/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /ocs/v1.php/cloud/apps | + | /ocs/v2.php/cloud/apps | + | /ocs/v1.php/cloud/groups | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /ocs/v1.php/config | + | /ocs/v2.php/config | + | /ocs/v1.php/privatedata/getattribute | + | /ocs/v2.php/privatedata/getattribute | + 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 "notset" diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature new file mode 100644 index 0000000000..3b3927e6e4 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsPOSTAuth.feature @@ -0,0 +1,35 @@ +@api +Feature: auth + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send POST requests to OCS endpoints as normal user with wrong password + When user "Alice" requests these endpoints with "POST" including body "doesnotmatter" 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/shares | + | /ocs/v2.php/apps/files_sharing/api/v1/shares | + | /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 | + | /ocs/v2.php/cloud/groups | + | /ocs/v1.php/cloud/users | + | /ocs/v2.php/cloud/users | + | /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 | + | /ocs/v1.php/person/check | + | /ocs/v2.php/person/check | + | /ocs/v1.php/privatedata/deleteattribute/testing/test | + | /ocs/v2.php/privatedata/deleteattribute/testing/test | + | /ocs/v1.php/privatedata/setattribute/testing/test | + | /ocs/v2.php/privatedata/setattribute/testing/test | + 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 "notset" diff --git a/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature b/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature new file mode 100644 index 0000000000..b8e54da9a7 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/ocsPUTAuth.feature @@ -0,0 +1,18 @@ +@api +Feature: auth + + @issue-ocis-reva-30 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: send PUT request to OCS endpoints as admin with wrong password + When the administrator requests these endpoints with "PUT" with body "doesnotmatter" using password "invalid" about user "Alice" + | endpoint | + | /ocs/v1.php/cloud/users/%username% | + | /ocs/v2.php/cloud/users/%username% | + | /ocs/v1.php/cloud/users/%username%/disable | + | /ocs/v2.php/cloud/users/%username%/disable | + | /ocs/v1.php/cloud/users/%username%/enable | + | /ocs/v2.php/cloud/users/%username%/enable | + | /ocs/v1.php/apps/files_sharing/api/v1/shares/123 | + | /ocs/v2.php/apps/files_sharing/api/v1/shares/123 | + 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 "notset" From 727d7089fda495481646cb1f269ad611295f6a9a Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 19:35:54 +0545 Subject: [PATCH 09/10] Update testing docs for EXPECTED_FAILURES_FILE changes --- docs/testing.md | 70 ++++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 44 deletions(-) diff --git a/docs/testing.md b/docs/testing.md index 0a07a25d20..015db53962 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -84,28 +84,36 @@ TEST_SERVER_URL=http://localhost:9140 \ TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ -BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnOcis-OC-Storage' \ +BEHAT_FILTER_TAGS='~@notToImplementOnOCIS&&~@toImplementOnOCIS' \ SKELETON_DIR=apps/testing/data/apiSkeleton ``` -Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment +Make sure to adjust the settings `TEST_SERVER_URL`,`OCIS_REVA_DATA_ROOT` and `SKELETON_DIR` according to your environment. -This will run all tests that can work with LDAP, and are not skipped on OCIS or on OCIS with OC Storage. +This will run all tests that are relevant to OCIS. To run a single test add `BEHAT_FEATURE=` and specify the path to the feature file and an optional line number. For example: `BEHAT_FEATURE='tests/acceptance/features/apiWebdavUpload1/uploadFile.feature:12'` ### use existing tests for BDD As a lot of scenarios are written for oC10, we can use those tests for Behaviour driven development in ocis. -Every scenario that does not work in OCIS, is tagged with `@skipOnOcis` and additionally should be marked with an issue number e.g. `@issue-ocis-reva-122`. -This tag means that this particular scenario is skipped because of [issue no 122 in the ocis-reva repository](https://github.com/owncloud/ocis-reva/issues/122). -Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva) and are skipped on oC10. +Every scenario that does not work in OCIS, is listed in `tests/acceptance/expected-failures.txt` with a link to the related issue. +Those scenarios are run in the ordinary acceptance test pipeline in CI. The sccenarios that fail are checked against the +expected failures. If there are any differences then the CI pipeline fails. + +Additionally, some issues have scenarios that demonstrate the current buggy behaviour in ocis(reva). +Those scenarios are in this ocis-reva repository in `tests/acceptance/features/apiOcisSpecific`. Have a look into the [documentation](https://doc.owncloud.com/server/developer_manual/testing/acceptance-tests.html#writing-scenarios-for-bugs) to understand why we are writing those tests. -Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are scenarios that do not work in OCIS when run on EOS-storage, but works when on OC-Storage, and vice-versa. For those kind of scenarios, ` @skipOnOcis-EOS-Storage` and `@skipOnOcis-OC-Storage` tags are used. For instance, for a scenario that fails on EOS-Storage but passes on OC-Storage, we use `@skipOnOcis-EOS-Storage` tag to let it run on OC-Storage, where it works as expected, instead of skipping on ocis with `@skipOnOcis` tag. +Also, ocis behaves partly differently with EOS-Storage and OC-Storage. There are scenarios that do not work in OCIS when run on EOS-storage, but works when on OC-Storage, and vice-versa. For those kind of scenarios, ` @skipOnOcis-EOS-Storage` and `@skipOnOcis-OC-Storage` tags are used. For instance, for a scenario that fails on EOS-Storage but passes on OC-Storage, we use `@skipOnOcis-EOS-Storage` tag to let it run on OC-Storage, where it works as expected, instead of skipping the test completely. If you want to work on a specific issue -1. run the tests marked with that issue tag +1. adjust the core commit id to the latest commit in core so that CI will run the latest test code and scenarios from core. + For that change this line in the `main` function: + + apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') + +2. locally run each of the tests marked with that issue in the expected failures file: E.g.: ``` @@ -114,45 +122,19 @@ If you want to work on a specific issue TEST_EXTERNAL_USER_BACKENDS=true \ TEST_OCIS=true \ OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \ - BEHAT_FILTER_TAGS='~@skipOnOcV10&&@issue-ocis-reva-122' + BEHAT_FEATURE='tests/acceptance/features/apiComments/comments.feature:123' ``` - Note that the `~@skipOnOcis` and `~@skipOnOcis-OC-Storage` tags are replaced by `~@skipOnOcV10` and the issue tag `@issue-ocis-reva-122` is added. - We want to run all tests that are skipped in CI because of this particular bug, but we don't want to run the tests - that demonstrate the current buggy behaviour. +3. the tests will fail, try to understand how and why they are failing +4. fix the code +5. go back to 2. and repeat till the tests are passing. +6. remove those tests from the expected failures file. +7. run each of the local tests that were demonstrating the **buggy** behavior. They should fail. +8. delete each of the local tests that were demonstrating the **buggy** behavior. +9. make a PR that has the fixed code, relevant lines removed from the expected failures file and bug demonstration tests deleted. -2. the tests will fail, try to understand how and why they are failing -3. fix the code -4. go back to 1. and repeat till the tests are passing. -5. adjust tests that demonstrate the **buggy** behaviour - - delete the tests in core that are tagged with that particular issue and `@skipOnOcV10`, but be careful because a lot of tests are tagged with multiple issues. - Only delete tests that demonstrate the buggy behaviour if you fixed all bugs related to that test. If not you might have to adjust the test. -6. unskip tests that demonstrate the **correct** behaviour - - The `@skipOnOcis` tag should not be needed now, so delete it, but leave the issue tag for future reference. -7. make a PR to core with the changed tests -8. make a PR to ocis-reva running the adjusted tests - - To confirm that all tests (old and changed) run fine make a PR to ocis-reva with your code changes and point drone to your branch in core to get the changed tests. - For that change this line in the `main` function. - - `apiTests(ctx, 'master', '9db442250583d3b71e633cf77fbcf643ed67e994'),` - - In place of master use your branch name. If you dont specify the commit ID, you will run the tests using the HEAD of the branch you specified. - - `apiTests(ctx, 'my-new-tests', '')` - - Also make sure to change the commit ID if you want to run tests on any other commit. eg: - - `apiTests(ctx, 'my-new-tests', '7d468c05414b1dc745ca713d9deb443bc4e5f333')` - - -9. merge PRs - - After you have confirmed that the tests pass everywhere merge the core PR and immediately revert the change in 8. and merge the ocis-reva PR - - If the changes also affect the `ocis` repository make sure the changes get ported over there immediately, otherwise the tests will start failing there. + If the changes also affect the `ocis` repository make sure the changes get ported over there. + That will need the fixed code in `ocis-reva` to be applied to `ocis` along with the test-related changes. ### Notes - in a normal case the test-code cleans up users after the test-run, but if a test-run is interrupted (e.g. by CTRL+C) users might have been left on the LDAP server. In that case rerunning the tests requires wiping the users in the ldap server, otherwise the tests will fail when trying to populate the users. This can be done by simply running `docker stop docker-slapd && docker rm docker-slapd` and [restarting the LDAP server container](#run-a-ldap-server-in-a-docker-container) From c32fb5c0d0dafe9a51b25615a5706400a78f0756 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 31 Jul 2020 20:12:44 +0545 Subject: [PATCH 10/10] Split core API acceptance tests into 2 parts --- .drone.star | 144 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 137 insertions(+), 7 deletions(-) diff --git a/.drone.star b/.drone.star index fd7d2695ea..0b19538b0c 100644 --- a/.drone.star +++ b/.drone.star @@ -1,8 +1,5 @@ def main(ctx): - before = [ - testing(ctx), - apiTests(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa'), - ] + before = testPipelines(ctx, 'master', 'a06b1bd5ba8e5244bfaf7fa04f441961e6fb0daa') stages = [ docker(ctx, 'amd64'), @@ -23,11 +20,19 @@ def main(ctx): return before + stages + after -def apiTests(ctx, coreBranch = 'master', coreCommit = ''): +def testPipelines(ctx, coreBranch = 'master', coreCommit = ''): + return [ + testing(ctx), + localApiTests(ctx, coreBranch, coreCommit), + coreApiTests(ctx, coreBranch, coreCommit, 1, 2), + coreApiTests(ctx, coreBranch, coreCommit, 2, 2), + ] + +def localApiTests(ctx, coreBranch = 'master', coreCommit = ''): return { 'kind': 'pipeline', 'type': 'docker', - 'name': 'API-Tests', + 'name': 'Local-API-Tests', 'platform': { 'os': 'linux', 'arch': 'amd64', @@ -132,8 +137,131 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): }, ] }, + ], + 'services': [ { - 'name': 'core-acceptance-tests', + 'name': 'ldap', + 'image': 'osixia/openldap', + 'pull': 'always', + 'environment': { + 'LDAP_DOMAIN': 'owncloud.com', + 'LDAP_ORGANISATION': 'owncloud', + 'LDAP_ADMIN_PASSWORD': 'admin', + 'LDAP_TLS_VERIFY_CLIENT': 'never', + }, + }, + { + 'name': 'redis', + 'image': 'webhippie/redis', + 'pull': 'always', + 'environment': { + 'REDIS_DATABASES': 1 + }, + }, + ], + 'volumes': [ + { + 'name': 'gopath', + 'temp': {}, + }, + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/**', + 'refs/pull/**', + ], + }, + } + +def coreApiTests(ctx, coreBranch = 'master', coreCommit = '', part_number = 1, number_of_parts = 1): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'Core-API-Tests-%s' % (part_number), + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'build', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'commands': [ + 'make build', + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ], + }, + { + 'name': 'reva-server', + 'image': 'webhippie/golang:1.13', + 'pull': 'always', + 'detach': True, + 'environment' : { + 'REVA_LDAP_HOSTNAME': 'ldap', + 'REVA_LDAP_PORT': 636, + 'REVA_LDAP_BIND_DN': 'cn=admin,dc=owncloud,dc=com', + 'REVA_LDAP_BIND_PASSWORD': 'admin', + 'REVA_LDAP_BASE_DN': 'dc=owncloud,dc=com', + 'REVA_LDAP_SCHEMA_UID': 'uid', + 'REVA_STORAGE_HOME_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OWNCLOUD_DATADIR': '/srv/app/tmp/reva/data', + 'REVA_STORAGE_OC_DATA_TEMP_FOLDER': '/srv/app/tmp/', + 'REVA_STORAGE_OC_DATA_SERVER_URL': 'http://reva-server:9164/data', + 'REVA_STORAGE_OC_DATA_URL': 'reva-server:9164', + 'REVA_STORAGE_OWNCLOUD_REDIS_ADDR': 'redis:6379', + 'REVA_SHARING_USER_JSON_FILE': '/srv/app/tmp/reva/shares.json', + 'REVA_FRONTEND_URL': 'http://reva-server:9140', + 'REVA_DATAGATEWAY_URL': 'http://reva-server:9140/data', + }, + 'commands': [ + 'apk add mailcap', + 'mkdir -p /srv/app/tmp/reva', + 'bin/ocis-reva --log-level debug --log-pretty gateway &', + 'bin/ocis-reva --log-level debug --log-pretty users &', + 'bin/ocis-reva --log-level debug --log-pretty auth-basic &', + 'bin/ocis-reva --log-level debug --log-pretty auth-bearer &', + 'bin/ocis-reva --log-level debug --log-pretty sharing &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home &', + 'bin/ocis-reva --log-level debug --log-pretty storage-home-data &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc &', + 'bin/ocis-reva --log-level debug --log-pretty storage-oc-data &', + 'bin/ocis-reva --log-level debug --log-pretty frontend &', + 'bin/ocis-reva --log-level debug --log-pretty reva-storage-public-link' + ], + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'clone-test-repos', + 'image': 'owncloudci/php:7.2', + 'pull': 'always', + 'commands': [ + 'git clone -b master --depth=1 https://github.com/owncloud/testing.git /srv/app/tmp/testing', + 'git clone -b %s --single-branch --no-tags https://github.com/owncloud/core.git /srv/app/testrunner' % (coreBranch), + 'cd /srv/app/testrunner', + ] + ([ + 'git checkout %s' % (coreCommit) + ] if coreCommit != '' else []), + 'volumes': [ + { + 'name': 'gopath', + 'path': '/srv/app', + }, + ] + }, + { + 'name': 'core-acceptance-tests-%s' % (part_number), 'image': 'owncloudci/php:7.2', 'pull': 'always', 'environment' : { @@ -144,6 +272,8 @@ def apiTests(ctx, coreBranch = 'master', coreCommit = ''): 'TEST_OCIS':'true', 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/reva/', 'SKELETON_DIR': '/srv/app/tmp/testing/data/apiSkeleton', + 'DIVIDE_INTO_NUM_PARTS': number_of_parts, + 'RUN_PART': part_number, 'EXPECTED_FAILURES_FILE': '/drone/src/tests/acceptance/expected-failures.txt' }, 'commands': [