Feature: deleting files and folders
  	As a user
  	I want to delete files and folders
  	So that I can keep my filing system clean and tidy

    Background:
        Given user "Alice" has been created in the server with default attributes

    @issue-9439 @smoke
    Scenario Outline: Delete a file
        Given user "Alice" has uploaded file with content "openCloud test text file 0" to "<fileName>" in the server
        And user "Alice" has set up a client with default settings
        When the user deletes the file "<fileName>"
        And the user waits for file "<fileName>" to be synced
        Then as "Alice" file "<fileName>" should not exist in the server
        Examples:
            | fileName                                    |
            | textfile0.txt                               |
            | textfile0-with-name-more-than-20-characters |
            |  ~`!@#$^&()-_=+{[}];',textfile.txt	  |

    @issue-9439 @smoke
    Scenario Outline: Delete a folder
        Given user "Alice" has created folder "<folderName>" in the server
        And user "Alice" has set up a client with default settings
        When the user deletes the folder "<folderName>"
        And the user waits for folder "<folderName>" to be synced
        Then as "Alice" file "<folderName>" should not exist in the server
        Examples:
            | folderName                                      |
            | simple-empty-folder                             |
            | simple-folder-with-name-more-than-20-characters |

    @smoke
    Scenario: Delete a file and a folder
        Given user "Alice" has uploaded file with content "test file 1" to "textfile1.txt" in the server
        And user "Alice" has uploaded file with content "test file 2" to "textfile2.txt" in the server
        And user "Alice" has created folder "test-folder1" in the server
        And user "Alice" has created folder "test-folder2" in the server
        And user "Alice" has set up a client with default settings
        When the user deletes the file "textfile1.txt"
        And the user deletes the folder "test-folder1"
        And the user waits for the files to sync
        Then as "Alice" file "textfile1.txt" should not exist in the server
        And as "Alice" folder "test-folder1" should not exist in the server
        And as "Alice" file "textfile2.txt" should exist in the server
        And as "Alice" folder "test-folder2" should exist in the server


    Scenario: Delete multiple files
        Given user "Alice" has uploaded the following files to the server
            | file          | content                     |
            | textfile0.txt | openCloud test text file 0  |
            | textfile1.txt | openCloud test text file 1  |
            | textfile2.txt | openCloud test text file 2  |
        And user "Alice" has set up a client with default settings
        When the user deletes the following files
        	| file          |
            | textfile0.txt |
            | textfile1.txt |
        And the user waits for the files to sync
        Then as "Alice" following files should not exist in the server
            | file          |
            | textfile0.txt |
            | textfile1.txt |
        And as "Alice" file "textfile2.txt" should exist in the server


    Scenario Outline: Create and delete a file with special characters
        Given user "Alice" has set up a client with default settings
        When user "Alice" creates a file "<fileName>" with the following content inside the sync folder
            """
            special characters
            """
        And the user deletes the file "<fileName>"
        And the user waits for the files to sync
        Then as "Alice" file "<fileName>" should not exist in the server
        Examples:
            | fileName                            |
            | ~`!@#$^&()-_=+{[}];',$%ñ&💥🫨❤️‍🔥.txt |
