Files
opencloud/tests/acceptance/features/collaborativePosix/collaborativePosixFS.feature
Viktor Scharf aba3a29e8e Apitest. file extension change
git checkout -b file-extension-rename-test
2025-09-09 12:28:39 +02:00

190 lines
9.9 KiB
Gherkin

@env-config @skipOnOpencloud-decomposed-Storage @skipOnOpencloud-decomposeds3-Storage
Feature: create a resources using collaborative posixfs
Background:
Given the config "STORAGE_USERS_POSIX_WATCH_FS" has been set to "true"
And user "Alice" has been created with default attributes
And user "Alice" has created folder "/firstFolder"
Scenario: administrator lists the content of the POSIX storage
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator lists the content of the POSIX storage folder of user "Alice"
Then the command output should contain "firstFolder"
And the command output should contain "test.txt"
Scenario: create folder
When the administrator creates the folder "myFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And as "Alice" folder "/myFolder" should exist
Scenario: create nested folder
When the administrator creates the folder "deep/nested/structure/myFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And as "Alice" folder "/deep/nested/structure/myFolder" should exist
Scenario: create file
When the administrator creates the file "test.txt" with content "content" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/test.txt" for user "Alice" should be "content"
Scenario: create large file
When the administrator creates the file "largefile.txt" with size "1gb" for user "Alice" on the POSIX filesystem
Then the command should be successful
And as "Alice" file "/largefile.txt" should exist
Scenario: creates files sequentially in a folder
When the administrator creates 50 files sequentially in the directory "firstFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/firstFolder/file_1.txt" for user "Alice" should be "file 1 content"
And the content of file "/firstFolder/file_50.txt" for user "Alice" should be "file 50 content"
Scenario: creates files in parallel in a folder
When the administrator creates 100 files in parallel in the directory "firstFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/firstFolder/parallel_1.txt" for user "Alice" should be "parallel file 1 content"
And the content of file "/firstFolder/parallel_100.txt" for user "Alice" should be "parallel file 100 content"
Scenario: edit file
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator puts the content "new" into the file "test.txt" in the POSIX storage folder of user "Alice"
Then the content of file "/test.txt" for user "Alice" should be "contentnew"
Scenario: read file content
Given user "Alice" has uploaded file with content "content" to "textfile.txt"
When the administrator reads the content of the file "textfile.txt" in the POSIX storage folder of user "Alice"
Then the command output should contain "content"
Scenario: copy file to folder
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator copies the file "test.txt" to the folder "firstFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/firstFolder/test.txt" for user "Alice" should be "content"
Scenario: rename file
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator renames the file "test.txt" to "new-name.txt" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/new-name.txt" for user "Alice" should be "content"
Scenario: rename a created file
Given the administrator has created the file "test.txt" with content "content" for user "Alice" on the POSIX filesystem
When the administrator renames the file "test.txt" to "test.md" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/test.md" for user "Alice" should be "content"
Scenario: move file to folder
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator moves the file "test.txt" to the folder "firstFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And the content of file "/firstFolder/test.txt" for user "Alice" should be "content"
And as "Alice" file "/test.txt" should not exist
Scenario: delete file
Given user "Alice" has uploaded file with content "content" to "test.txt"
When the administrator deletes the file "test.txt" for user "Alice" on the POSIX filesystem
Then the command should be successful
And as "Alice" file "/test.txt" should not exist
Scenario: delete folder
And user "Alice" has uploaded file with content "content" to "/firstFolder/test.txt"
When the administrator deletes the folder "firstFolder" for user "Alice" on the POSIX filesystem
Then the command should be successful
And as "Alice" folder "firstFolder" should not exist
Scenario: copy file from personal to project space
Given user "Alice" has uploaded file with content "content" to "test.txt"
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "Project space" with the default quota using the Graph API
When the administrator copies the file "test.txt" to the space "Project space" for user "Alice" on the POSIX filesystem
Then the command should be successful
And using spaces DAV path
And for user "Alice" the space "Project space" should contain these entries:
| test.txt |
Scenario: user doesn't lose file versions after renaming the file
Given user "Brian" has been created with default attributes
And user "Alice" has uploaded file with content "content" to "textfile.txt"
And user "Alice" has uploaded file with content "new content version 2" to "textfile.txt"
And user "Alice" has uploaded file with content "new content version 3" to "textfile.txt"
When the administrator renames the file "textfile.txt" to "new-name.txt" for user "Alice" on the POSIX filesystem
Then the command should be successful
When user "Alice" gets the number of versions of file "new-name.txt"
Then the HTTP status code should be "207"
And the number of versions should be "2"
Scenario: user doesn't lose file versions after changing the file content
Given user "Alice" has uploaded file with content "content" to "textfile.txt"
And user "Alice" has uploaded file with content "new content version 2" to "textfile.txt"
And user "Alice" has uploaded file with content "new content version 3" to "textfile.txt"
When the administrator puts the content "new" into the file "textfile.txt" in the POSIX storage folder of user "Alice"
Then the command should be successful
When user "Alice" gets the number of versions of file "textfile.txt"
Then the HTTP status code should be "207"
And the number of versions should be "2"
Scenario: user doesn't lose share and public link after renaming the file
Given user "Brian" has been created with default attributes
And user "Alice" has uploaded file with content "content" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | Personal |
| permissionsRole | view |
| password | %public% |
And user "Alice" has sent the following resource share invitation:
| resource | textfile.txt |
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
When the administrator renames the file "textfile.txt" to "new-name.txt" for user "Alice" on the POSIX filesystem
Then the command should be successful
And user "Brian" should have a share "textfile.txt" shared by user "Alice" from space "Personal"
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "content"
Scenario: user doesn't lose share and public link after changing the file content
Given user "Brian" has been created with default attributes
And user "Alice" has uploaded file with content "content" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | Personal |
| permissionsRole | view |
| password | %public% |
And user "Alice" has sent the following resource share invitation:
| resource | textfile.txt |
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
When the administrator puts the content "new" into the file "textfile.txt" in the POSIX storage folder of user "Alice"
Then the command should be successful
And for user "Brian" the content of the file "textfile.txt" of the space "Shares" should be "contentnew"
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "contentnew"
@issue-1100
Scenario: upload and rename file
When the administrator creates the file "test.txt" with content "content" for user "Alice" on the POSIX filesystem
And the administrator renames the file "test.txt" to "renamed.txt" for user "Alice" on the POSIX filesystem
And the administrator checks the attribute "user.oc.name" of file "renamed.txt" for user "Alice" on the POSIX filesystem
Then the command output should contain "renamed.txt"
And the content of file "/renamed.txt" for user "Alice" should be "content"