Initial QSfera import

This commit is contained in:
Курнат Андрей
2026-06-07 10:20:04 +03:00
commit 2315f25754
16485 changed files with 4826827 additions and 0 deletions
@@ -0,0 +1,57 @@
Feature: filter activity for user
As a user
I want to filter activity
So that I can view activity of specific user
@smoke
Scenario: filter synced activities
Given user "Alice" has been created in the server with default attributes
And user "Brian" has been created in the server with default attributes
And user "Alice" has created folder "simple-folder" in the server
And user "Brian" has created folder "brian-folder" in the server
And the user has set up the following accounts with default settings:
| users |
| Alice |
| Brian |
When the user opens the activity tab
And the user selects "Local Activity" tab in the activity
And the user checks the activities of account "Alice Hansen@%local_server_hostname%"
Then the following activities should be displayed in synced table
| resource | action | account |
| simple-folder | Downloaded | Alice Hansen@%local_server_hostname% |
But the following activities should not be displayed in synced table
| resource | action | account |
| brian-folder | Downloaded | Brian Murphy@%local_server_hostname% |
@skipOnWindows
Scenario: filter not synced activities (Linux only)
Given user "Alice" has been created in the server with default attributes
And user "Alice" has set up a client with default settings
And user "Alice" has created a folder "Folder1" inside the sync folder
When user "Alice" creates the following files inside the sync folder:
| files |
| /.htaccess |
| /Folder1/a\\a.txt |
And the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the file "Folder1/a\\a.txt" should be blacklisted
And the file ".htaccess" should be excluded
When the user unchecks the "Excluded" filter
Then the following activities should be displayed in not synced table
| resource | status | account |
| Folder1/a\\a.txt | Blacklisted | Alice Hansen@%local_server_hostname% |
@skipOnLinux
Scenario: filter not synced activities (Windows only)
Given user "Alice" has been created in the server with default attributes
And user "Alice" has set up a client with default settings
When user "Alice" creates the following files inside the sync folder:
| files |
| /.htaccess |
And the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the file ".htaccess" should be excluded
When the user unchecks the "Excluded" filter
Then the following activities should not be displayed in not synced table
| resource | status | account |
| .htaccess | Excluded | Alice Hansen@%local_server_hostname% |
@@ -0,0 +1,91 @@
Feature: adding accounts
As a user
I want to be able join multiple QSfera servers to the client
So that I can sync data with various organisations
Background:
Given user "Alice" has been created in the server with default attributes
Scenario: Check default options in advanced configuration
Given the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user opens the advanced configuration
Then the download everything option should be selected by default for Linux
And the user should be able to choose the local download directory
@smoke
Scenario: Adding normal Account
Given the user has started the client
When the user adds the following account:
| server | %local_server% |
| user | Alice |
| password | 1234 |
Then "Alice" account should be added
@smoke
Scenario: Adding multiple accounts
Given user "Brian" has been created in the server with default attributes
And user "Alice" has set up a client with default settings
When the user opens the add-account dialog
And the user adds the following account:
| server | %local_server% |
| user | Brian |
| password | AaBb2Cc3Dd4 |
Then "Brian" account should be opened
And "Alice" account should be added
Scenario: Adding account with self signed certificate for the first time
Given the user has started the client
When the user adds the server "%local_server%"
And the user accepts the certificate
Then credentials wizard should be visible
When the user adds the following account:
| user | Alice |
| password | 1234 |
Then "Alice" account should be opened
@smoke
Scenario: Add space manually from sync connection window
Given user "Alice" has created folder "simple-folder" in the server
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user syncs the "Personal" space
Then the folder "simple-folder" should exist on the file system
Scenario: Check for suffix when sync path exists
Given the user has created folder "QSfera" in the default home path
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
When the user adds the following user credentials:
| user | Alice |
| password | 1234 |
And the user opens the advanced configuration
Then the default local sync path should contain "%home%/QSfera (2)" in the configuration wizard
When the user selects download everything option in advanced section
Then the button to open sync connection wizard should be disabled
@smoke
Scenario: Re-add an account
Given user "Alice" has created folder "large-folder" in the server
And user "Alice" has uploaded file with content "test content" to "testFile.txt" in the server
And user "Alice" has set up a client with default settings
And the user has removed the connection for user "Alice"
When the user opens the add-account dialog
And the user adds the following account:
| server | %local_server% |
| user | Alice |
| password | 1234 |
Then "Alice" account should be added
And the folder "large-folder" should exist on the file system
And the file "testFile.txt" should exist on the file system
@@ -0,0 +1,80 @@
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 |
@@ -0,0 +1,44 @@
Feature: edit files
As a user
I want to be able to edit the file content
So that I can modify and change file data
Background:
Given user "Alice" has been created in the server with default attributes
@smoke
Scenario: Modify original content of a file with special character
Given user "Alice" has uploaded file with content "openCloud test text file 0" to "S@mpleFile!With,$pecial&Characters.txt" in the server
And user "Alice" has set up a client with default settings
When the user overwrites the file "S@mpleFile!With,$pecial&Characters.txt" with content "overwrite openCloud test text file"
And the user waits for file "S@mpleFile!With,$pecial&Characters.txt" to be synced
Then as "Alice" the file "S@mpleFile!With,$pecial&Characters.txt" should have the content "overwrite openCloud test text file" in the server
@smoke
Scenario: Modify original content of a file
Given user "Alice" has set up a client with default settings
When user "Alice" creates a file "testfile.txt" with the following content inside the sync folder
"""
test content
"""
And the user waits for file "testfile.txt" to be synced
And the user overwrites the file "testfile.txt" with content "overwrite openCloud test text file"
And the user waits for file "testfile.txt" to be synced
Then as "Alice" the file "testfile.txt" should have the content "overwrite openCloud test text file" in the server
Scenario Outline: Replace and modify the content of a file multiple times
Given user "Alice" has set up a client with default settings
And the user has copied file "<initialFile>" from outside the sync folder to "/" in the sync folder
When the user copies file "<updateFile1>" from outside the sync folder to "/<initialFile>" in the sync folder
And the user waits for the files to sync
And the user copies file "<updateFile2>" from outside the sync folder to "/<initialFile>" in the sync folder
And the user waits for the files to sync
And the user copies file "<updateFile3>" from outside the sync folder to "/<initialFile>" in the sync folder
And the user waits for the files to sync
Then as "Alice" the content of file "<initialFile>" in the server should match the content of local file "<updateFile3>"
Examples:
| initialFile | updateFile1 | updateFile2 | updateFile3 |
| simple.pdf | simple1.pdf | simple2.pdf | simple3.pdf |
| simple.docx | simple1.docx | simple2.docx | simple3.docx |
| simple.xlsx | simple1.xlsx | simple2.xlsx | simple3.xlsx |
@@ -0,0 +1,23 @@
Feature: Logout users
As a user
I want to be able to login and logout of my account
So that I can protect my work and identity and be assured of privacy
Background:
Given user "Alice" has been created in the server with default attributes
@smoke
Scenario: logging out
Given user "Alice" has set up a client with default settings
When the user "Alice" logs out using the client-UI
Then user "Alice" should be signed out
@smoke
Scenario: login after logging out
Given user "Alice" has set up a client with default settings
And user "Alice" has logged out from the client-UI
When user "Alice" logs in using the client-UI
Then user "Alice" should be connected to the server
When the user quits the client
And the user starts the client
Then user "Alice" should be connected to the server
@@ -0,0 +1,90 @@
Feature: move file and folder
As a user
I want to be able to move a folder and a file
So that I can organize my files and folders
Background:
Given user "Alice" has been created in the server with default attributes
And user "Alice" has created folder "folder1" in the server
And user "Alice" has created folder "folder1/folder2" in the server
And user "Alice" has created folder "folder1/folder2/folder3" in the server
And user "Alice" has created folder "folder1/folder2/folder3/folder4" in the server
And user "Alice" has created folder "folder1/folder2/folder3/folder4/folder5" in the server
Scenario: Move folder and file from level 5 sub-folder to sync root
Given user "Alice" has created folder "folder1/folder2/folder3/folder4/folder5/test-folder" in the server
And user "Alice" has uploaded file with content "openCloud" to "folder1/folder2/folder3/folder4/folder5/lorem.txt" in the server
And user "Alice" has set up a client with default settings
When user "Alice" moves file "folder1/folder2/folder3/folder4/folder5/lorem.txt" to "/" in the sync folder
And user "Alice" moves folder "folder1/folder2/folder3/folder4/folder5/test-folder" to "/" in the sync folder
And the user waits for the files to sync
Then as "Alice" the file "lorem.txt" should have the content "openCloud" in the server
And as "Alice" folder "test-folder" should exist in the server
And as "Alice" file "folder1/folder2/folder3/folder4/folder5/lorem.txt" should not exist in the server
And as "Alice" folder "folder1/folder2/folder3/folder4/folder5/test-folder" should not exist in the server
Scenario: Move two folders and a file down to the level 5 sub-folder
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 uploaded file with content "openCloud test" to "testFile.txt" in the server
And user "Alice" has set up a client with default settings
When user "Alice" moves folder "test-folder1" to "folder1/folder2/folder3/folder4/folder5" in the sync folder
And user "Alice" moves folder "test-folder2" to "folder1/folder2/folder3/folder4/folder5" in the sync folder
And user "Alice" moves file "testFile.txt" to "folder1/folder2/folder3/folder4/folder5" in the sync folder
And the user waits for the files to sync
Then as "Alice" the file "folder1/folder2/folder3/folder4/folder5/testFile.txt" should have the content "openCloud test" in the server
And as "Alice" folder "folder1/folder2/folder3/folder4/folder5/test-folder1" should exist in the server
And as "Alice" folder "folder1/folder2/folder3/folder4/folder5/test-folder2" should exist in the server
And as "Alice" file "testFile.txt" should not exist in the server
And as "Alice" folder "test-folder1" should not exist in the server
And as "Alice" folder "test-folder2" should not exist in the server
@smoke
Scenario: Rename a file and a folder
Given user "Alice" has uploaded file with content "test file 1" to "textfile.txt" in the server
And user "Alice" has set up a client with default settings
When the user renames a file "textfile.txt" to "lorem.txt"
And the user renames a folder "folder1" to "FOLDER"
And the user waits for the files to sync
Then as "Alice" the file "lorem.txt" should have the content "test file 1" in the server
And as "Alice" folder "FOLDER" should exist in the server
But as "Alice" file "textfile.txt" should not exist in the server
And as "Alice" folder "folder1" should not exist in the server
@smoke
Scenario: Move files from one folder to another
Given user "Alice" has uploaded file with content "test file 1" to "folder1/file1.txt" in the server
And user "Alice" has uploaded file with content "test file 2" to "folder1/file2.txt" in the server
And user "Alice" has set up a client with default settings
When user "Alice" moves file "folder1/file1.txt" to "folder1/folder2" in the sync folder
And user "Alice" moves file "folder1/file2.txt" to "folder1/folder2" in the sync folder
And the user waits for the files to sync
Then as "Alice" the file "folder1/folder2/file1.txt" should have the content "test file 1" in the server
And as "Alice" the file "folder1/folder2/file2.txt" should have the content "test file 2" in the server
And as "Alice" file "folder1/file1.txt" should not exist in the server
And as "Alice" file "folder1/file2.txt" should not exist in the server
Scenario: Move resources from different sub-levels to sync root
Given user "Alice" has created folder "folder1/folder2/folder3/folder4/test-folder" in the server
And user "Alice" has uploaded file with content "openCloud" to "folder1/folder2/lorem.txt" in the server
And user "Alice" has set up a client with default settings
When user "Alice" moves file "folder1/folder2/lorem.txt" to "/" in the sync folder
And user "Alice" moves folder "folder1/folder2/folder3/folder4/test-folder" to "/" in the sync folder
And the user waits for the files to sync
Then as "Alice" the file "lorem.txt" should have the content "openCloud" in the server
And as "Alice" folder "test-folder" should exist in the server
And as "Alice" file "folder1/folder2/lorem.txt" should not exist in the server
And as "Alice" folder "folder1/folder2/folder3/folder4/test-folder" should not exist in the server
Scenario: Syncing a 50MB file moved into the local sync folder
Given user "Alice" has set up a client with default settings
And user "Alice" has created a folder "NewFolder" inside the sync folder
And user "Alice" has created a file "newfile.txt" with size "50MB" in the sync folder
When user "Alice" moves file "newfile.txt" to "NewFolder" in the sync folder
And the user waits for file "NewFolder/newfile.txt" to be synced
Then as "Alice" file "NewFolder/newfile.txt" should exist in the server
@@ -0,0 +1,28 @@
Feature: remove account connection
As a user
I want to remove my account
So that I won't be using any client-UI services
@smoke
Scenario: remove an account connection
Given user "Alice" has been created in the server with default attributes
And user "Brian" has been created in the server with default attributes
And the user has set up the following accounts with default settings:
| users |
| Alice |
| Brian |
When the user removes the connection for user "Brian"
Then "Brian" account should not be displayed
But "Alice" account should be added
Scenario: remove the only account connection
Given user "Alice" has been created in the server with default attributes
And user "Alice" has created folder "large-folder" in the server
And user "Alice" has uploaded file with content "test content" to "testFile.txt" in the server
And user "Alice" has set up a client with default settings
When the user removes the connection for user "Alice"
Then the settings tab should have the following options in the general section:
| Start on Login |
And the folder "large-folder" should exist on the file system
And the file "testFile.txt" should exist on the file system
@@ -0,0 +1,98 @@
Feature: Project spaces
As a user
I want to sync project space
So that I can do view and manage the space
Background:
Given user "Alice" has been created in the server with default attributes
And the administrator has created a space "Project101"
@smoke
Scenario: User with Viewer role can open the file
Given the administrator has created a folder "planning" in space "Project101"
And the administrator has uploaded a file "testfile.txt" with content "some content" inside space "Project101"
And the administrator has added user "Alice" to space "Project101" with role "viewer"
And user "Alice" has set up a client with space "Project101"
Then user "Alice" should be able to open the file "testfile.txt" on the file system
And as "Alice" the file "testfile.txt" should have content "some content" on the file system
Scenario: User with Viewer role cannot edit the file
Given the administrator has created a folder "planning" in space "Project101"
And the administrator has uploaded a file "testfile.txt" with content "some content" inside space "Project101"
And the administrator has added user "Alice" to space "Project101" with role "viewer"
And user "Alice" has set up a client with space "Project101"
Then user "Alice" should not be able to edit the file "testfile.txt" on the file system
And as "Alice" the file "testfile.txt" in the space "Project101" should have content "some content" in the server
@smoke
Scenario: User with Editor role can edit the file
Given the administrator has created a folder "planning" in space "Project101"
And the administrator has uploaded a file "testfile.txt" with content "some content" inside space "Project101"
And the administrator has added user "Alice" to space "Project101" with role "editor"
And user "Alice" has set up a client with space "Project101"
When the user overwrites the file "testfile.txt" with content "some content edited"
And the user waits for file "testfile.txt" to be synced
Then as "Alice" the file "testfile.txt" in the space "Project101" should have content "some content edited" in the server
@smoke
Scenario: User with Manager role can add files and folders
Given the administrator has added user "Alice" to space "Project101" with role "manager"
And user "Alice" has set up a client with space "Project101"
When user "Alice" creates a file "localFile.txt" with the following content inside the sync folder
"""
test content
"""
And user "Alice" creates a folder "localFolder" inside the sync folder
And the user waits for file "localFile.txt" to be synced
And the user waits for folder "localFolder" to be synced
Then as "Alice" the file "localFile.txt" in the space "Project101" should have content "test content" in the server
And as "Alice" the space "Project101" should have folder "localFolder" in the server
@smoke
Scenario: User with Editor role can rename a file
Given the administrator has uploaded a file "testfile.txt" with content "some content" inside space "Project101"
And the administrator has added user "Alice" to space "Project101" with role "editor"
And user "Alice" has set up a client with space "Project101"
When the user renames a file "testfile.txt" to "renamedFile.txt"
And the user waits for file "renamedFile.txt" to be synced
Then as "Alice" the space "Project101" should have file "renamedFile.txt" in the server
And as "Alice" the file "renamedFile.txt" in the space "Project101" should have content "some content" in the server
@smoke
Scenario: Remove folder sync connection (Project Space)
Given the administrator has uploaded a file "testfile.txt" with content "some content" inside space "Project101"
And the administrator has added user "Alice" to space "Project101" with role "manager"
And user "Alice" has set up a client with space "Project101"
When the user removes the folder sync connection
Then for user "Alice" sync folder "Project101" should not be displayed
But the file "testfile.txt" should exist on the file system
Scenario: User with Viewer role cannot create resource
Given the administrator has added user "Alice" to space "Project101" with role "viewer"
And user "Alice" has set up a client with space "Project101"
When user "Alice" creates a folder "simple-folder" inside the sync folder
Then the following error message should appear in the client
"""
simple-folder: Not allowed because you don't have permission to add subfolders to that folder
"""
When the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the following activities should be displayed in not synced table
| resource | status | account |
| simple-folder | Blacklisted | Alice Hansen@%local_server_hostname% |
@smoke
Scenario: Sharee with Editor role deletes the shared resource
Given user "Brian" has been created in the server with default attributes
And user "Alice" has created folder "simple-folder" in the server
And user "Alice" has uploaded file with content "test content" to "simple-folder/uploaded-lorem.txt" in the server
And user "Alice" has sent the following resource share invitation:
| resource | simple-folder |
| sharee | Brian |
| permissionsRole | Editor |
And user "Brian" has set up a client with space "Shares"
When user "Brian" deletes the folder "Shares/simple-folder" in the server
And the user waits for the files to sync
Then the folder "simple-folder" should not exist on the file system
@@ -0,0 +1,610 @@
Feature: Syncing files
As a user
I want to be able to sync my local folders to to my QSfera server
so that I dont have to upload and download files manually
Background:
Given user "Alice" has been created in the server with default attributes
@issue-9281 @smoke
Scenario: Syncing a file to the server
Given user "Alice" has set up a client with default settings
When user "Alice" creates a file "lorem-for-upload.txt" with the following content inside the sync folder
"""
test content
"""
And the user waits for file "lorem-for-upload.txt" to be synced
And the user opens the activity tab
And the user selects "Local Activity" tab in the activity
Then the file "lorem-for-upload.txt" should have status "Uploaded" in the activity tab
And as "Alice" the file "lorem-for-upload.txt" should have the content "test content" in the server
@smoke
Scenario: Syncing all files and folders from the server
Given user "Alice" has created folder "simple-folder" in the server
And user "Alice" has created folder "large-folder" in the server
And user "Alice" has uploaded file with content "test content" to "uploaded-lorem.txt" in the server
And user "Alice" has set up a client with default settings
Then the file "uploaded-lorem.txt" should exist on the file system
And the file "uploaded-lorem.txt" should exist on the file system with the following content
"""
test content
"""
And the folder "simple-folder" should exist on the file system
And the folder "large-folder" should exist on the file system
@issue-9733
Scenario: Syncing a file from the server and creating a conflict
Given user "Alice" has uploaded file with content "server content" to "/conflict.txt" in the server
And user "Alice" has set up a client with default settings
And the user has paused the file sync
And the user has changed the content of local file "conflict.txt" to:
"""
client content
"""
And user "Alice" has uploaded file with content "changed server content" to "/conflict.txt" in the server
And the user has waited for "5" seconds
When the user resumes the file sync on the client
And the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the table of conflict warnings should include file "conflict.txt"
And the file "conflict.txt" should exist on the file system with the following content
"""
changed server content
"""
And a conflict file for "conflict.txt" should exist on the file system with the following content
"""
client content
"""
@skipOnWindows
Scenario: Sync all is selected by default
Given user "Alice" has created folder "simple-folder" in the server
And user "Alice" has created folder "large-folder" in the server
And user "Alice" has uploaded file with content "test content" to "testFile.txt" in the server
And user "Alice" has uploaded file with content "lorem content" to "lorem.txt" in the server
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user sets the sync path in sync connection wizard
And the user navigates back in the sync connection wizard
And the user sets the temp folder "localSyncFolder" as local sync path in sync connection wizard
And the user selects "Personal" space in sync connection wizard
Then the sync all checkbox should be checked
When user unselects all the remote folders
And the user adds the folder sync connection
And the user waits for the files to sync
Then the file "testFile.txt" should exist on the file system
And the file "lorem.txt" should exist on the file system
But the folder "simple-folder" should not exist on the file system
And the folder "large-folder" should not exist on the file system
@skipOnWindows @smoke
Scenario: Sync only one folder from the server
Given user "Alice" has created folder "simple-folder" in the server
And user "Alice" has created folder "large-folder" in the server
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user sets the sync path in sync connection wizard
And the user selects "Personal" space in sync connection wizard
And the user selects the following folders to sync:
| folder |
| simple-folder |
Then the folder "simple-folder" should exist on the file system
But the folder "large-folder" should not exist on the file system
When user "Alice" uploads file with content "some content" to "simple-folder/lorem.txt" in the server
And user "Alice" uploads file with content "openCloud" to "large-folder/lorem.txt" in the server
And user "Alice" creates a file "simple-folder/localFile.txt" with the following content inside the sync folder
"""
test content
"""
And the user waits for the files to sync
Then the file "simple-folder/lorem.txt" should exist on the file system
And the file "large-folder/lorem.txt" should not exist on the file system
And as "Alice" file "simple-folder/localFile.txt" should exist in the server
@issue-9733 @skipOnWindows
Scenario: sort folders list by name and size
Given user "Alice" has created folder "123Folder" in the server
And user "Alice" has uploaded file with content "small" to "123Folder/lorem.txt" in the server
And user "Alice" has created folder "aFolder" in the server
And user "Alice" has uploaded file with content "more contents" to "aFolder/lorem.txt" in the server
And user "Alice" has created folder "bFolder" in the server
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user sets the sync path in sync connection wizard
And the user selects "Personal" space in sync connection wizard
# folders are sorted by name in ascending order by default
Then the folders should be in the following order:
| folder |
| 123Folder |
| aFolder |
| bFolder |
# sort folder by name in descending order
When the user sorts the folder list by "Name"
Then the folders should be in the following order:
| folder |
| bFolder |
| aFolder |
| 123Folder |
# sort folder by size in ascending order
When the user sorts the folder list by "Size"
Then the folders should be in the following order:
| folder |
| bFolder |
| 123Folder |
| aFolder |
# sort folder by size in descending order
When the user sorts the folder list by "Size"
Then the folders should be in the following order:
| folder |
| aFolder |
| 123Folder |
| bFolder |
And the user cancels the sync connection wizard
@smoke
Scenario Outline: Syncing a folder to the server
Given user "Alice" has set up a client with default settings
When user "Alice" creates a folder <foldername> inside the sync folder
And the user waits for folder <foldername> to be synced
Then as "Alice" folder <foldername> should exist in the server
Examples:
| foldername |
| "myFolder" |
| "really long folder name with some spaces and special char such as $%ñ&" |
@skipOnWindows
Scenario Outline: Syncing a folder having space at the end (Linux only)
Given user "Alice" has set up a client with default settings
When user "Alice" creates a folder <foldername> inside the sync folder
And the user waits for folder <foldername> to be synced
Then as "Alice" folder <foldername> should exist in the server
Examples:
| foldername |
| "folder with space at end " |
@skipOnLinux
Scenario: Try to sync files having space at the end (Windows only)
Given user "Alice" has uploaded file with content "lorem epsum" to "trailing-space.txt " in the server
And user "Alice" has set up a client with default settings
When user "Alice" creates a folder "folder with space at end " inside the sync folder
And the user force syncs the files
And the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the file "trailing-space.txt " should be ignored
And the file "folder with space at end " should be ignored
@smoke
Scenario: Many subfolders can be synced
Given user "Alice" has created folder "parent" in the server
And user "Alice" has set up a client with default settings
When user "Alice" creates a folder "parent/subfolderEmpty1" inside the sync folder
And user "Alice" creates a folder "parent/subfolderEmpty2" inside the sync folder
And user "Alice" creates a folder "parent/subfolderEmpty3" inside the sync folder
And user "Alice" creates a folder "parent/subfolderEmpty4" inside the sync folder
And user "Alice" creates a folder "parent/subfolderEmpty5" inside the sync folder
And user "Alice" creates a folder "parent/subfolder1" inside the sync folder
And user "Alice" creates a folder "parent/subfolder2" inside the sync folder
And user "Alice" creates a folder "parent/subfolder3" inside the sync folder
And user "Alice" creates a folder "parent/subfolder4" inside the sync folder
And user "Alice" creates a folder "parent/subfolder5" inside the sync folder
And user "Alice" creates a file "parent/subfolder1/test.txt" with the following content inside the sync folder
"""
test content
"""
And user "Alice" creates a file "parent/subfolder2/test.txt" with the following content inside the sync folder
"""
test content
"""
And user "Alice" creates a file "parent/subfolder3/test.txt" with the following content inside the sync folder
"""
test content
"""
And user "Alice" creates a file "parent/subfolder4/test.txt" with the following content inside the sync folder
"""
test content
"""
And user "Alice" creates a file "parent/subfolder5/test.txt" with the following content inside the sync folder
"""
test content
"""
And the user waits for file "parent/subfolder5/test.txt" to be synced
Then as "Alice" folder "parent/subfolderEmpty1" should exist in the server
And as "Alice" folder "parent/subfolderEmpty2" should exist in the server
And as "Alice" folder "parent/subfolderEmpty3" should exist in the server
And as "Alice" folder "parent/subfolderEmpty4" should exist in the server
And as "Alice" folder "parent/subfolderEmpty5" should exist in the server
And as "Alice" folder "parent/subfolder1" should exist in the server
And as "Alice" folder "parent/subfolder2" should exist in the server
And as "Alice" folder "parent/subfolder3" should exist in the server
And as "Alice" folder "parent/subfolder4" should exist in the server
And as "Alice" folder "parent/subfolder5" should exist in the server
@smoke
Scenario: Both original and copied folders can be synced
Given user "Alice" has set up a client with default settings
When user "Alice" creates a folder "original" inside the sync folder
And user "Alice" creates a file "original/localFile.txt" with the following content inside the sync folder
"""
test content
"""
And the user copies folder "original" into the same directory
And the user waits for folder "original (Copy)" to be synced
Then as "Alice" folder "original" should exist in the server
And as "Alice" the file "original/localFile.txt" should have the content "test content" in the server
And as "Alice" folder "original (Copy)" should exist in the server
And as "Alice" the file "original (Copy)/localFile.txt" should have the content "test content" in the server
@issue-9281 @smoke
Scenario: Verify that you can create a subfolder with long name(~220 characters)
Given user "Alice" has created a folder "Folder1" inside the sync folder
And user "Alice" has set up a client with default settings
When user "Alice" creates a folder "Folder1/thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks" inside the sync folder
And the user waits for folder "Folder1/thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks" to be synced
Then the folder "Folder1/thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks" should exist on the file system
And as "Alice" folder "Folder1/thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks-thisIsAVeryLongFolderNameToCheckThatItWorks" should exist in the server
@smoke
Scenario: Verify pre existing folders in local (Desktop client) are copied over to the server
Given user "Alice" has created a folder "Folder1" inside the sync folder
And user "Alice" has created a folder "Folder1/subFolder1" inside the sync folder
And user "Alice" has created a folder "Folder1/subFolder1/subFolder2" inside the sync folder
And user "Alice" has set up a client with default settings
Then as "Alice" folder "Folder1" should exist in the server
And as "Alice" folder "Folder1/subFolder1" should exist in the server
And as "Alice" folder "Folder1/subFolder1/subFolder2" should exist in the server
@skipOnWindows
Scenario: Filenames that are rejected by the server are reported (Linux only)
Given user "Alice" has created folder "Folder1" in the server
And user "Alice" has set up a client with default settings
When user "Alice" creates a file "Folder1/a\\a.txt" with the following content inside the sync folder
"""
test content
"""
And the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the file "Folder1/a\\a.txt" should exist on the file system
And the file "Folder1/a\\a.txt" should be blacklisted
Scenario Outline: Sync long nested folder
Given user "Alice" has created folder "<foldername>" in the server
And user "Alice" has set up a client with default settings
When user "Alice" creates a folder "<foldername>/<foldername>" inside the sync folder
And user "Alice" creates a folder "<foldername>/<foldername>/<foldername>" inside the sync folder
And user "Alice" creates a folder "<foldername>/<foldername>/<foldername>/<foldername>" inside the sync folder
And user "Alice" creates a folder "<foldername>/<foldername>/<foldername>/<foldername>/<foldername>" inside the sync folder
And the user waits for folder "<foldername>/<foldername>/<foldername>/<foldername>/<foldername>" to be synced
Then as "Alice" folder "<foldername>/<foldername>" should exist in the server
And as "Alice" folder "<foldername>/<foldername>/<foldername>" should exist in the server
And as "Alice" folder "<foldername>/<foldername>/<foldername>/<foldername>" should exist in the server
And as "Alice" folder "<foldername>/<foldername>/<foldername>/<foldername>/<foldername>" should exist in the server
Examples:
| foldername |
| An empty folder which name is obviously more than 59 characters |
@skipOnWindows @smoke
Scenario: Invalid system names are synced (Linux only)
Given user "Alice" has created folder "CON" in the server
And user "Alice" has created folder "test%" in the server
And user "Alice" has uploaded file with content "server content" to "/PRN" in the server
And user "Alice" has uploaded file with content "server content" to "/foo%" in the server
And user "Alice" has set up a client with default settings
Then the folder "CON" should exist on the file system
And the folder "test%" should exist on the file system
And the file "PRN" should exist on the file system
And the file "foo%" should exist on the file system
And as "Alice" folder "CON" should exist in the server
And as "Alice" folder "test%" should exist in the server
And as "Alice" file "/PRN" should exist in the server
And as "Alice" file "/foo%" should exist in the server
@skipOnLinux
Scenario: Sync invalid system names (Windows only)
Given user "Alice" has created folder "CON" in the server
And user "Alice" has created folder "test%" in the server
And user "Alice" has uploaded file with content "server content" to "/PRN" in the server
And user "Alice" has uploaded file with content "server content" to "/foo%" in the server
And user "Alice" has set up a client with default settings
Then the folder "test%" should exist on the file system
And the file "foo%" should exist on the file system
But the folder "CON" should not exist on the file system
And the file "PRN" should not exist on the file system
@smoke
Scenario: various types of files can be synced from server to client
Given user "Alice" has created folder "simple-folder" in the server
And user "Alice" has uploaded file "testavatar.png" to "simple-folder/testavatar.png" in the server
And user "Alice" has uploaded file "testavatar.jpg" to "simple-folder/testavatar.jpg" in the server
And user "Alice" has uploaded file "testavatar.jpeg" to "simple-folder/testavatar.jpeg" in the server
And user "Alice" has uploaded file "testimage.mp3" to "simple-folder/testimage.mp3" in the server
And user "Alice" has uploaded file "test_video.mp4" to "simple-folder/test_video.mp4" in the server
And user "Alice" has uploaded file "simple.pdf" to "simple-folder/simple.pdf" in the server
And user "Alice" has uploaded file "simple.docx" to "simple-folder/simple.docx" in the server
And user "Alice" has uploaded file "simple.pptx" to "simple-folder/simple.pptx" in the server
And user "Alice" has uploaded file "simple.xlsx" to "simple-folder/simple.xlsx" in the server
And user "Alice" has set up a client with default settings
Then the folder "simple-folder" should exist on the file system
And the file "simple-folder/testavatar.png" should exist on the file system
And the file "simple-folder/testavatar.jpg" should exist on the file system
And the file "simple-folder/testavatar.jpeg" should exist on the file system
And the file "simple-folder/testimage.mp3" should exist on the file system
And the file "simple-folder/test_video.mp4" should exist on the file system
And the file "simple-folder/simple.pdf" should exist on the file system
And the file "simple-folder/simple.docx" should exist on the file system
And the file "simple-folder/simple.pptx" should exist on the file system
And the file "simple-folder/simple.xlsx" should exist on the file system
Scenario: various types of files can be synced from client to server
Given user "Alice" has set up a client with default settings
When user "Alice" creates the following files inside the sync folder:
| files |
| /testavatar.png |
| /testavatar.jpg |
| /testavatar.jpeg |
| /testaudio.mp3 |
| /test_video.mp4 |
| /simple.txt |
| /simple.docx |
| /simple.pptx |
| /simple.xlsx |
And the user waits for the files to sync
Then as "Alice" file "testavatar.png" should exist in the server
And as "Alice" file "testavatar.jpg" should exist in the server
And as "Alice" file "testavatar.jpeg" should exist in the server
And as "Alice" file "testaudio.mp3" should exist in the server
And as "Alice" file "test_video.mp4" should exist in the server
And as "Alice" file "simple.txt" should exist in the server
And as "Alice" file "simple.docx" should exist in the server
And as "Alice" file "simple.pptx" should exist in the server
And as "Alice" file "simple.xlsx" should exist in the server
@smoke
Scenario Outline: File with long name can be synced
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
"""
test content
"""
And the user waits for file "<filename>" to be synced
Then as "Alice" file "<filename>" should exist in the server
Examples:
| filename |
| thisIsAVeryLongFileNameToCheckThatItWorks-thisIsAVeryLongFileNameToCheckThatItWorks-thisIsAVeryLongFileNameToCheckThatItWorks-thisIsAVeryLongFileNameToCheckThatItWorks-thisIsAVeryLongFileNameToCheckThatItWorks-thisIs.txt |
@smoke
Scenario: Syncing file of 1 GB size
Given user "Alice" has set up a client with default settings
When user "Alice" creates a file "newfile.txt" with size "1GB" inside the sync folder
And the user waits for file "newfile.txt" to be synced
Then as "Alice" file "newfile.txt" should exist in the server
Scenario: File with spaces in the name can sync
Given user "Alice" has set up a client with default settings
When user "Alice" creates a file "file with space.txt" with the following content inside the sync folder
"""
test contents
"""
And the user waits for file "file with space.txt" to be synced
Then as "Alice" file "file with space.txt" should exist in the server
Scenario: Syncing folders each having large number of files
Given the user has created a folder "folder1" in temp folder
And the user has created "500" files each of size "1048576" bytes inside folder "folder1" in temp folder
And the user has created a folder "folder2" in temp folder
And the user has created "500" files each of size "1048576" bytes inside folder "folder2" in temp folder
And the user has created a folder "folder3" in temp folder
And the user has created "1000" files each of size "1048576" bytes inside folder "folder3" in temp folder
And user "Alice" has set up a client with default settings
When user "Alice" moves folder "folder1" from the temp folder into the sync folder
And user "Alice" moves folder "folder2" from the temp folder into the sync folder
And user "Alice" moves folder "folder3" from the temp folder into the sync folder
And the user waits for folder "folder1" to be synced
And the user waits for folder "folder2" to be synced
And the user waits for folder "folder3" to be synced
Then as "Alice" folder "folder1" should exist in the server
And as user "Alice" folder "folder1" should contain "500" items in the server
And as "Alice" folder "folder2" should exist in the server
And as user "Alice" folder "folder2" should contain "500" items in the server
And as "Alice" folder "folder3" should exist in the server
And as user "Alice" folder "folder3" should contain "1000" items in the server
@smoke
Scenario: Skip sync folder configuration
Given the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user cancels the sync connection wizard
Then "Alice" account should be added
And for user "Alice" sync folder "Personal" should not be displayed
And for user "Alice" sync folder "Shares" should not be displayed
Scenario: extract a zip file in the sync folder
Given the user has created a zip file "archive.zip" with the following resources in the temp folder
| resource | type | content |
| folder1 | folder | |
| folder2 | folder | |
| file1.txt | file | Test file1 |
| file2.txt | file | Test file2 |
And user "Alice" has set up a client with default settings
When user "Alice" moves file "archive.zip" from the temp folder into the sync folder
And user "Alice" unzips the zip file "archive.zip" inside the sync root
And the user waits for the files to sync
Then as "Alice" folder "folder1" should exist in the server
And as "Alice" folder "folder2" should exist in the server
And as "Alice" the file "file1.txt" should have the content "Test file1" in the server
And as "Alice" the file "file2.txt" should have the content "Test file2" in the server
@skipOnWindows
Scenario: sync remote folder to a local sync folder having special characters
Given user "Alice" has created folder "~`!@#$^&()-_=+{[}];',)" in the server
And user "Alice" has created folder "simple-folder" in the server
And user "Alice" has created folder "test-folder" in the server
And user "Alice" has created folder "test-folder/sub-folder1" in the server
And user "Alice" has created folder "test-folder/sub-folder2" in the server
And user "Alice" has created folder "~test%" in the server
And the user has created a folder "~`!@#$^&()-_=+{[}];',)PRN%" in temp folder
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user sets the temp folder "~`!@#$^&()-_=+{[}];',)PRN%" as local sync path in sync connection wizard
And the user selects "Personal" space in sync connection wizard
And the user selects the following folders to sync:
| folder |
| ~`!@#$^&()-_=+{[}];',) |
| simple-folder |
| test-folder/sub-folder2 |
Then the folder "~`!@#$^&()-_=+{[}];',)" should exist on the file system
And the folder "simple-folder" should exist on the file system
But the folder "~test%" should not exist on the file system
When user "Alice" deletes the folder "simple-folder" in the server
And the user waits for the files to sync
Then the folder "simple-folder" should not exist on the file system
And the folder "test-folder/sub-folder2" should exist on the file system
And the folder "test-folder/sub-folder1" should not exist on the file system
Scenario: Syncing a local folder having special characters to the server
Given user "Alice" has set up a client with default settings
When user "Alice" creates a folder "~`!@#$^&()-_=+{[}];',)💥🫨🔥" inside the sync folder
And the user waits for folder "~`!@#$^&()-_=+{[}];',)💥🫨🔥" to be synced
Then as "Alice" folder "~`!@#$^&()-_=+{[}];',)💥🫨🔥" should exist in the server
@issue-11814
Scenario: Remove folder sync connection (Personal Space)
Given user "Alice" has created folder "simple-folder" in the server
And user "Alice" has set up a client with default settings
When the user removes the folder sync connection
Then for user "Alice" sync folder "Personal" should not be displayed
And the folder "simple-folder" should exist on the file system
And as "Alice" folder "simple-folder" should exist in the server
Scenario: Sync a received shared folder with Viewer permission role
Given user "Brian" has been created in the server with default attributes
And user "Alice" has created folder "simple-folder" in the server
And user "Alice" has uploaded file with content "test content" to "simple-folder/uploaded-lorem.txt" in the server
And user "Alice" has sent the following resource share invitation:
| resource | simple-folder |
| sharee | Brian |
| permissionsRole | Viewer |
And user "Brian" has set up a client with space "Shares"
When user "Brian" creates a folder "simple-folder/sub-folder" inside the sync folder
Then the folder "simple-folder/sub-folder" should exist on the file system
But the following error message should appear in the client
"""
simple-folder/sub-folder: Not allowed because you don't have permission to add subfolders to that folder
"""
When the user copies file "simple.pdf" from outside the sync folder to "simple-folder/simple.pdf" in the sync folder
Then the file "simple-folder/simple.pdf" should exist on the file system
But the following error message should appear in the client
"""
simple-folder/simple.pdf: Not allowed because you don't have permission to add files in that folder
"""
And as "Brian" folder "simple-folder/sub-folder" should not exist in the server
And as "Brian" file "simple-folder/simple.pdf" should not exist in the server
When the user opens the activity tab
And the user selects "Not Synced" tab in the activity
Then the following activities should be displayed in not synced table
| resource | status | account |
| simple-folder/sub-folder | Blacklisted | Brian Murphy@%local_server_hostname% |
| simple-folder/simple.pdf | Blacklisted | Brian Murphy@%local_server_hostname% |
Scenario Outline: File with long multi-byte characters name can be synced (76 characters, 255 bytes including extension)
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
"""
test content
"""
And the user waits for file "<filename>" to be synced
Then as "Alice" file "<filename>" should exist in the server
Examples:
| filename |
| 𒁰𒁱𒁲𒁳𒁴𒁵𒁶𒁷𒁸𒁹𒁺𒁻𒁼𒁾𒁿𒁰𒁱𒁲𒁳𒁴𒁵𒁶𒁷𒁸𒁹𒁺𒁻𒁼𒁾𒁿𒁰𒁱𒁲𒁳𒁴𒁵𒁶𒁷𒁸𒁹𒁺abôǣ.txt |
Scenario: Sync a received shared folder with Editor permission role
Given user "Brian" has been created in the server with default attributes
And user "Alice" has created folder "simple-folder" in the server
And user "Alice" has uploaded file with content "test content" to "simple-folder/uploaded-lorem.txt" in the server
And user "Alice" has sent the following resource share invitation:
| resource | simple-folder |
| sharee | Brian |
| permissionsRole | Editor |
And user "Brian" has set up a client with space "Shares"
When user "Brian" creates a folder "simple-folder/sub-folder" inside the sync folder
And the user copies file "simple.pdf" from outside the sync folder to "simple-folder/simple.pdf" in the sync folder
And the user overwrites the file "simple-folder/uploaded-lorem.txt" with content "overwrite openCloud test text file"
And the user waits for the files to sync
And the user waits for folder "simple-folder/sub-folder" to be synced
Then the folder "simple-folder/sub-folder" should exist on the file system
And the file "simple-folder/simple.pdf" should exist on the file system
And as "Brian" folder "Shares/simple-folder/sub-folder" should exist in the server
And as "Brian" file "Shares/simple-folder/simple.pdf" should exist in the server
And as "Brian" the file "Shares/simple-folder/uploaded-lorem.txt" should have the content "overwrite openCloud test text file" in the server
@skipOnWindows @smoke
Scenario: Unselected subfolders are excluded from local sync
Given user "Alice" has created folder "test-folder" in the server
And user "Alice" has created folder "test-folder/sub-folder1" in the server
And user "Alice" has created folder "test-folder/sub-folder2" in the server
And user "Alice" has set up a client with default settings
When the user unselects the following folders to sync in "Choose what to sync" window:
| folder |
| test-folder/sub-folder2 |
And the user waits for folder "test-folder/sub-folder2" to be synced
Then the folder "test-folder/sub-folder1" should exist on the file system
And the folder "test-folder/sub-folder2" should not exist on the file system
When user "Alice" uploads file with content "some content" to "test-folder/sub-folder2/lorem.txt" in the server
And the user force syncs the files
And the user waits for the files to sync
Then the file "test-folder/sub-folder2/lorem.txt" should not exist on the file system
@skipOnWindows
Scenario: Only root level files sync when all folders are unselected
Given user "Alice" has created folder "test-folder" in the server
And user "Alice" has created folder "test-folder/sub-folder1" in the server
And user "Alice" has created folder "test-folder/sub-folder2" in the server
And user "Alice" has uploaded file with content "root file content" to "root-file.txt" in the server
And user "Alice" has uploaded file with content "some subfolder content" to "test-folder/sub-folder1/lorem.txt" in the server
And the user has started the client
And the user has entered the following account information:
| server | %local_server% |
| user | Alice |
| password | 1234 |
When the user selects manual sync folder option in advanced section
And the user sets the sync path in sync connection wizard
And the user selects "Personal" space in sync connection wizard
And user unselects all the remote folders
And the user adds the folder sync connection
And the user waits for the files to sync
Then the folder "test-folder/sub-folder1" should not exist on the file system
And the folder "test-folder/sub-folder2" should not exist on the file system
And the file "test-folder/sub-folder1/lorem.txt" should not exist on the file system
But the file "root-file.txt" should exist on the file system
@@ -0,0 +1,31 @@
Feature: Visually check all tabs
As a user
I want to visually check all tabs in client
So that I can perform all the actions related to client
@smoke
Scenario: Tabs in toolbar looks correct
Given user "Alice" has been created in the server with default attributes
And user "Alice" has set up a client with default settings
Then the toolbar should have the following tabs:
| Add Account |
| Activity |
| Settings |
| Quit |
@smoke
Scenario: Verify various setting options in Settings tab
Given user "Alice" has been created in the server with default attributes
And user "Alice" has set up a client with default settings
When the user opens the settings tab
Then the settings tab should have the following options in the general section:
| Start on Login |
And the settings tab should have the following options in the advanced section:
| Sync hidden files |
| Edit ignored files |
| Log settings |
And the settings tab should have the following options in the network section:
| Download Bandwidth |
| Upload Bandwidth |
When the user opens the about dialog
Then the about dialog should be opened
+174
View File
@@ -0,0 +1,174 @@
@skipOnLinux
Feature: VFS support
As a user
I want to sync files with vfs
So that I can decide which files to download
Scenario: Default VFS sync
Given user "Alice" has been created in the server with default attributes
And user "Alice" has uploaded file with content "openCloud" to "testFile.txt" in the server
And user "Alice" has created folder "parent" in the server
And user "Alice" has uploaded file with content "some contents" to "parent/lorem.txt" in the server
And user "Alice" has set up a client with default settings
Then the placeholder file "testFile.txt" should exist on the file system
And the placeholder file "parent/lorem.txt" should exist on the file system
When user "Alice" reads the content of file "parent/lorem.txt"
Then the file "parent/lorem.txt" should be downloaded
And the placeholder file "testFile.txt" should exist on the file system
Scenario: Copy placeholder file
Given user "Alice" has been created in the server with default attributes
And user "Alice" has uploaded file with content "sample file" to "sampleFile.txt" in the server
And user "Alice" has uploaded file with content "lorem file" to "lorem.txt" in the server
And user "Alice" has uploaded file with content "test file" to "testFile.txt" in the server
And user "Alice" has created folder "Folder" in the server
And user "Alice" has set up a client with default settings
Then the placeholder file "lorem.txt" should exist on the file system
And the placeholder file "sampleFile.txt" should exist on the file system
And the placeholder file "testFile.txt" should exist on the file system
When user "Alice" copies file "sampleFile.txt" to temp folder
And the user copies file "lorem.txt" into folder "Folder"
And the user copies file "testFile.txt" into the same directory
And the user waits for file "Folder/lorem.txt" to be synced
Then the file "sampleFile.txt" should be downloaded
And the file "Folder/lorem.txt" should be downloaded
And the file "lorem.txt" should be downloaded
And the file "testFile.txt" should be downloaded
And the file "testFile (Copy).txt" should be downloaded
And as "Alice" file "Folder/lorem.txt" should exist in the server
And as "Alice" file "lorem.txt" should exist in the server
And as "Alice" file "sampleFile.txt" should exist in the server
And as "Alice" file "testFile.txt" should exist in the server
And as "Alice" file "testFile (Copy).txt" should exist in the server
Scenario: Move placeholder file
Given user "Alice" has been created in the server with default attributes
And user "Alice" has uploaded file with content "lorem file" to "lorem.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "sampleFile.txt" in the server
And user "Alice" has created folder "Folder" in the server
And user "Alice" has set up a client with default settings
When user "Alice" moves file "lorem.txt" to "Folder" in the sync folder
And user "Alice" moves file "sampleFile.txt" to the temp folder
And the user waits for file "Folder/lorem.txt" to be synced
Then the placeholder file "Folder/lorem.txt" should exist on the file system
And as "Alice" file "Folder/lorem.txt" should exist in the server
And as "Alice" file "lorem.txt" should not exist in the server
And as "Alice" file "sampleFile.txt" should not exist in the server
Scenario: Hydration and dehydration of files via file explorer
Given user "Alice" has been created in the server with default attributes
And user "Alice" has uploaded file with content "test content" to "testFile.txt" in the server
And user "Alice" has uploaded file with content "test content" to "simple.txt" in the server
And user "Alice" has uploaded file with content "test content" to "large.txt" in the server
And user "Alice" has created folder "parent" in the server
And user "Alice" has uploaded file with content "test content" to "parent/lorem.txt" in the server
And user "Alice" has uploaded file with content "test content" to "parent/epsum.txt" in the server
And user "Alice" has set up a client with default settings
Then the placeholder file "testFile.txt" should exist on the file system
And the placeholder file "simple.txt" should exist on the file system
And the placeholder file "large.txt" should exist on the file system
And the placeholder file "parent/lorem.txt" should exist on the file system
And the placeholder file "parent/epsum.txt" should exist on the file system
# Hydrate some files by reading the content
When user "Alice" reads the content of file "testFile.txt"
And user "Alice" reads the content of file "parent/lorem.txt"
Then the file "testFile.txt" should be downloaded
And the file "parent/lorem.txt" should be downloaded
And the placeholder file "parent/epsum.txt" should exist on the file system
# mark files "Always keep on this device"
When user "Alice" marks file "testFile.txt" as "Always keep on this device" from the file explorer
And the user waits for file "testFile.txt" to be synced
Then the file "testFile.txt" should be downloaded
When user "Alice" marks file "simple.txt" as "Always keep on this device" from the file explorer
And the user waits for file "simple.txt" to be synced
Then the file "simple.txt" should be downloaded
And the placeholder file "large.txt" should exist on the file system
# mark files "Free up space"
When user "Alice" marks file "testFile.txt" as "Free up space" from the file explorer
And the user waits for file "testFile.txt" to be synced
Then the placeholder file "testFile.txt" should exist on the file system
When user "Alice" marks file "parent/lorem.txt" as "Free up space" from the file explorer
And the user waits for file "parent/lorem.txt" to be synced
Then the placeholder file "parent/lorem.txt" should exist on the file system
When user "Alice" marks file "simple.txt" as "Free up space" from the file explorer
And the user waits for file "simple.txt" to be synced
Then the placeholder file "simple.txt" should exist on the file system
Scenario: Hydration and dehydration of folders via file explorer
Given user "Alice" has been created in the server with default attributes
And user "Alice" has created folder "testFol" in the server
And user "Alice" has created folder "nested" in the server
And user "Alice" has created folder "nested/subfol1" in the server
And user "Alice" has created folder "nested/subfol1/subfol2" in the server
And user "Alice" has created folder "nested/subfol1/subfol2/subfol3" in the server
And user "Alice" has created folder "nested/subfol1/subfol2/subfol3/subfol4" in the server
And user "Alice" has uploaded file with content "test content" to "simple.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "nested/lorem.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "nested/subfol1/subfile1.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "nested/subfol1/subfol2/subfile2.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "nested/subfol1/subfol2/subfol3/subfile3.txt" in the server
And user "Alice" has uploaded file with content "some contents" to "nested/subfol1/subfol2/subfol3/subfol4/subfile4.txt" in the server
And user "Alice" has set up a client with default settings
Then the placeholder file "simple.txt" should exist on the file system
And the placeholder file "nested/lorem.txt" should exist on the file system
And the placeholder file "nested/subfol1/subfol2/subfol3/subfol4/subfile4.txt" should exist on the file system
# mark sub folder as "Always keep on this device"
When user "Alice" reads the content of file "nested/subfol1/subfol2/subfile2.txt"
And user "Alice" marks folder "nested/subfol1" as "Always keep on this device" from the file explorer
And the user waits for folder "nested/subfol1" to be synced
Then the file "nested/subfol1/subfile1.txt" should be downloaded
And the file "nested/subfol1/subfol2/subfile2.txt" should be downloaded
And the file "nested/subfol1/subfol2/subfol3/subfile3.txt" should be downloaded
And the file "nested/subfol1/subfol2/subfol3/subfol4/subfile4.txt" should be downloaded
And the placeholder file "nested/lorem.txt" should exist on the file system
# create local files and folders in "Always keep on this device" folder
When user "Alice" creates a folder "nested/subfol1/subfol2/localFol" inside the sync folder
And user "Alice" creates a file "nested/subfol1/subfol2/local.txt" with the following content inside the sync folder
"""
local file
"""
And the user waits for folder "nested/subfol1/subfol2/localFol" to be synced
And the user waits for file "nested/subfol1/subfol2/local.txt" to be synced
Then the file "nested/subfol1/subfol2/local.txt" should be downloaded
# create local files and folders in "Free up space" folder
When user "Alice" creates a folder "nested/localFol" inside the sync folder
And user "Alice" creates a file "nested/local.txt" with the following content inside the sync folder
"""
local file
"""
And the user waits for folder "nested/localFol" to be synced
And the user waits for file "nested/local.txt" to be synced
Then the file "nested/local.txt" should be downloaded
# upload files to "Always keep on this device" folder in the server
When user "Alice" uploads file with content "server content" to "nested/subfol1/subfol2/localFol/fromServer.txt" in the server
And the user waits for file "nested/subfol1/subfol2/localFol/fromServer.txt" to be synced
Then the file "nested/subfol1/subfol2/localFol/fromServer.txt" should be downloaded
# upload files to "Free up space" folder in the server
When user "Alice" uploads file with content "server content" to "nested/fromServer.txt" in the server
And user "Alice" uploads file with content "server content" to "nested/localFol/fromServer.txt" in the server
And the user waits for file "nested/localFol/fromServer.txt" to be synced
Then the placeholder file "nested/fromServer.txt" should exist on the file system
And the placeholder file "nested/localFol/fromServer.txt" should exist on the file system
# mark sub folder as "Free up space"
When user "Alice" marks folder "nested/subfol1/subfol2" as "Free up space" from the file explorer
And the user waits for folder "nested/subfol1/subfol2" to be synced
Then the placeholder file "nested/subfol1/subfol2/subfile2.txt" should exist on the file system
And the placeholder file "nested/subfol1/subfol2/local.txt" should exist on the file system
And the placeholder file "nested/subfol1/subfol2/localFol/fromServer.txt" should exist on the file system
And the placeholder file "nested/subfol1/subfol2/subfol3/subfile3.txt" should exist on the file system
And the placeholder file "nested/subfol1/subfol2/subfol3/subfol4/subfile4.txt" should exist on the file system
And the file "nested/subfol1/subfile1.txt" should be downloaded