From 0d35a093232ab10c4f6b784bc52ee643f8e21262 Mon Sep 17 00:00:00 2001 From: HariBhandari07 Date: Wed, 26 Aug 2020 09:31:41 +0545 Subject: [PATCH] [Tests-Only] Add api trashbin tests --- .gitignore | 2 + .../expected-failures-on-OC-storage.txt | 6 +++ .../apiTrashbin-trashbinDelete.feature | 52 +++++++++++++++++++ .../apiTrashbin-trashbinFilesFolders.feature | 38 ++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature create mode 100644 tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature diff --git a/.gitignore b/.gitignore index 9f9a19066b4..1938fa3cb67 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ composer.lock vendor-bin/**/vendor vendor-bin/**/composer.lock tests/acceptance/output + +.idea diff --git a/tests/acceptance/expected-failures-on-OC-storage.txt b/tests/acceptance/expected-failures-on-OC-storage.txt index 4ea7b1c1b36..94b58ff6175 100644 --- a/tests/acceptance/expected-failures-on-OC-storage.txt +++ b/tests/acceptance/expected-failures-on-OC-storage.txt @@ -468,6 +468,8 @@ apiSharePublicLink2/uploadToPublicLinkShare.feature:255 # https://github.com/owncloud/ocis-reva/issues/286 Upload-only shares must not overwrite but create a separate file apiSharePublicLink2/uploadToPublicLinkShare.feature:273 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinDelete.feature:31 apiTrashbin/trashbinDelete.feature:32 apiTrashbin/trashbinDelete.feature:33 @@ -476,6 +478,8 @@ apiTrashbin/trashbinDelete.feature:37 apiTrashbin/trashbinDelete.feature:50 apiTrashbin/trashbinDelete.feature:67 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinFilesFolders.feature:21 apiTrashbin/trashbinFilesFolders.feature:32 apiTrashbin/trashbinFilesFolders.feature:44 @@ -511,6 +515,8 @@ apiTrashbin/trashbinFilesFolders.feature:277 apiTrashbin/trashbinFilesFolders.feature:278 apiTrashbin/trashbinFilesFolders.feature:289 # +# https://github.com/owncloud/product/issues/179 Propfind to trashbin endpoint requires UUID +# https://github.com/owncloud/product/issues/178 File deletion using dav gives unique string in filename in the trashbin apiTrashbin/trashbinRestore.feature:31 apiTrashbin/trashbinRestore.feature:32 apiTrashbin/trashbinRestore.feature:62 diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature new file mode 100644 index 00000000000..697c8787c11 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinDelete.feature @@ -0,0 +1,52 @@ +@api @files_trashbin-app-required +Feature: files and folders can be deleted from the trashbin + As a user + I want to delete files and folders from the trashbin + So that I can control my trashbin space and which files are kept in that space + + Background: + Given user "Alice" has been created with default attributes and without skeleton files + And user "Alice" has uploaded file with content "to delete" to "/textfile0.txt" + And user "Alice" has uploaded file with content "to delete" to "/textfile1.txt" + And user "Alice" has created folder "PARENT" + And user "Alice" has created folder "PARENT/CHILD" + And user "Alice" has uploaded file with content "to delete" to "/PARENT/parent.txt" + And user "Alice" has uploaded file with content "to delete" to "/PARENT/CHILD/child.txt" + + @smokeTest + @issue-product-139 + @issue-product-178 + @issue-product-179 + Scenario Outline: Trashbin cannot be emptied + # after fixing all issues delete this Scenario and use the one from oC10 core + # because of @issue-product-178 we cannot perform this test using new dav, so only old dav is being used + Given user "Alice" has uploaded file with content "file with comma" to "sample,0.txt" + And user "Alice" has uploaded file with content "file with comma" to "sample,1.txt" + And using old DAV path + And user "Alice" has deleted file "" + And user "Alice" has deleted file "" + And as "Alice" file "" should exist in the trashbin + And as "Alice" file "" should exist in the trashbin + When user "Alice" empties the trashbin using the trashbin API + Then as "Alice" the file with original path "" should exist in the trashbin + And as "Alice" the file with original path "" should exist in the trashbin + Examples: + | filename1 | filename2 | + | textfile0.txt | textfile1.txt | + | sample,0.txt | sample,1.txt | + + @smokeTest + @issue-ocis-reva-118 + @issue-product-179 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: delete a single file from the trashbin + Given user "Alice" has deleted file "/textfile0.txt" + And user "Alice" has deleted file "/textfile1.txt" + And user "Alice" has deleted file "/PARENT/parent.txt" + And user "Alice" has deleted file "/PARENT/CHILD/child.txt" + When user "Alice" deletes the file with original path "textfile1.txt" from the trashbin using the trashbin API + Then the HTTP status code should be "405" + And as "Alice" the file with original path "/textfile1.txt" should exist in the trashbin + But as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin + And as "Alice" the file with original path "/PARENT/parent.txt" should exist in the trashbin + And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin diff --git a/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature new file mode 100644 index 00000000000..3da3f6e6f10 --- /dev/null +++ b/tests/acceptance/features/apiOcisSpecific/apiTrashbin-trashbinFilesFolders.feature @@ -0,0 +1,38 @@ +@api @files_trashbin-app-required +Feature: files and folders exist in the trashbin after being deleted + As a user + I want deleted files and folders to be available in the trashbin + So that I can recover data easily + + Background: + Given user "Alice" has been created with default attributes and skeleton files + + @smokeTest + @issue-product-178 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: deleting a file moves it to trashbin + Given using old DAV path + When user "Alice" deletes file "/textfile0.txt" using the WebDAV API + And using new DAV path + When user "Alice" deletes file "/textfile1.txt" using the WebDAV API + Then as "Alice" the file with original path "/textfile0.txt" should exist in the trashbin + But as "Alice" the file with original path "/textfile1.txt" should not exist in the trashbin + And as "Alice" the file with original path "Alice/textfile1.txt" should exist in the trashbin + And as "Alice" file "/textfile0.txt" should not exist + And as "Alice" file "/textfile1.txt" should not exist + + @smokeTest + @issue-product-178 + # after fixing all issues delete this Scenario and use the one from oC10 core + Scenario: deleting a folder moves it to trashbin + Given user "Alice" has created folder "/tmp1" + And user "Alice" has created folder "/tmp2" + And using old DAV path + When user "Alice" deletes folder "/tmp1" using the WebDAV API + And using new DAV path + When user "Alice" deletes folder "/tmp2" using the WebDAV API + Then as "Alice" the folder with original path "/tmp1" should exist in the trashbin + But as "Alice" the folder with original path "/tmp2" should not exist in the trashbin + And as "Alice" the folder with original path "Alice/tmp2" should exist in the trashbin + And as "Alice" folder "/tmp1" should not exist + And as "Alice" folder "/tmp2" should not exist