mirror of
https://github.com/nextcloud/server.git
synced 2025-02-24 17:06:50 +00:00

When updating global storages and user storages a property is not updated by "StoragesService::updateStorage()" if the value matches the unmodified placeholder. However, userglobal storages are not updated through the "StoragesService"; as only the authentication mechanism is updated it is directly done with "saveBackendOptions()" in "IUserProvided" or "UserGlobalAuth". Due to this the unmodified placeholder value needs to be explicitly checked in those cases and replaced by the actual value (note that in this case it is not possible to just skip updating a specific property). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
124 lines
5.5 KiB
Gherkin
124 lines
5.5 KiB
Gherkin
Feature: external-storage
|
|
Background:
|
|
Given using api version "1"
|
|
Given using old dav path
|
|
|
|
@local_storage
|
|
Scenario: Share by link a file inside a local external storage
|
|
Given user "user0" exists
|
|
And user "user1" exists
|
|
And As an "user0"
|
|
And user "user0" created a folder "/local_storage/foo"
|
|
And User "user0" moved file "/textfile0.txt" to "/local_storage/foo/textfile0.txt"
|
|
And folder "/local_storage/foo" of user "user0" is shared with user "user1"
|
|
And As an "user1"
|
|
And accepting last share
|
|
When creating a share with
|
|
| path | foo |
|
|
| shareType | 3 |
|
|
Then the OCS status code should be "100"
|
|
And the HTTP status code should be "200"
|
|
And Share fields of last share match with
|
|
| id | A_NUMBER |
|
|
| url | AN_URL |
|
|
| token | A_TOKEN |
|
|
| mimetype | httpd/unix-directory |
|
|
|
|
Scenario: Shares don't overwrite external storage
|
|
Given user "user0" exists
|
|
And user "user1" exists
|
|
And As an "user0"
|
|
And User "user0" moved file "/textfile0.txt" to "/local_storage/textfile0.txt"
|
|
And invoking occ with "files_external:create --user user0 test local null::null -c datadir=./build/integration/work/local_storage"
|
|
And invoking occ with "files:scan --path /user0/files/test"
|
|
And as "user0" the file "/local_storage/textfile0.txt" exists
|
|
And as "user0" the folder "/test" exists
|
|
And as "user0" the file "/test/textfile0.txt" exists
|
|
And As an "user1"
|
|
And user "user1" created a folder "/test"
|
|
And User "user1" moved file "/textfile0.txt" to "/test/textfile1.txt"
|
|
And folder "/test" of user "user1" is shared with user "user0"
|
|
And As an "user0"
|
|
Then as "user0" the file "/test/textfile1.txt" does not exist
|
|
|
|
Scenario: Move a file into storage works
|
|
Given user "user0" exists
|
|
And user "user1" exists
|
|
And As an "user0"
|
|
And user "user0" created a folder "/local_storage/foo1"
|
|
When User "user0" moved file "/textfile0.txt" to "/local_storage/foo1/textfile0.txt"
|
|
Then as "user1" the file "/local_storage/foo1/textfile0.txt" exists
|
|
And as "user0" the file "/local_storage/foo1/textfile0.txt" exists
|
|
|
|
Scenario: Move a file out of the storage works
|
|
Given user "user0" exists
|
|
And user "user1" exists
|
|
And As an "user0"
|
|
And user "user0" created a folder "/local_storage/foo2"
|
|
And User "user0" moved file "/textfile0.txt" to "/local_storage/foo2/textfile0.txt"
|
|
When User "user1" moved file "/local_storage/foo2/textfile0.txt" to "/local.txt"
|
|
Then as "user1" the file "/local_storage/foo2/textfile0.txt" does not exist
|
|
And as "user0" the file "/local_storage/foo2/textfile0.txt" does not exist
|
|
And as "user1" the file "/local.txt" exists
|
|
|
|
|
|
|
|
Scenario: Save an external storage with password provided by user
|
|
Given Logging in using web as "admin"
|
|
And logged in user creates external global storage
|
|
| mountPoint | "ExternalStorageTest" |
|
|
| backend | "owncloud" |
|
|
| authMechanism | "password::userprovided" |
|
|
| backendOptions | {"host":"http://localhost:8080","secure":false} |
|
|
And fields of last external storage match with
|
|
| status | 2 |
|
|
When logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"admin"} |
|
|
Then fields of last external storage match with
|
|
| status | 0 |
|
|
|
|
Scenario: Save an external storage again with an unmodified password provided by user
|
|
Given Logging in using web as "admin"
|
|
And logged in user creates external global storage
|
|
| mountPoint | "ExternalStorageTest" |
|
|
| backend | "owncloud" |
|
|
| authMechanism | "password::userprovided" |
|
|
| backendOptions | {"host":"http://localhost:8080","secure":false} |
|
|
And fields of last external storage match with
|
|
| status | 2 |
|
|
And logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"admin"} |
|
|
When logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"__unmodified__"} |
|
|
Then fields of last external storage match with
|
|
| status | 0 |
|
|
|
|
Scenario: Save an external storage with global credentials provided by user
|
|
Given Logging in using web as "admin"
|
|
And logged in user creates external global storage
|
|
| mountPoint | "ExternalStorageTest" |
|
|
| backend | "owncloud" |
|
|
| authMechanism | "password::global::user" |
|
|
| backendOptions | {"host":"http://localhost:8080","secure":false} |
|
|
And fields of last external storage match with
|
|
| status | 2 |
|
|
When logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"admin"} |
|
|
Then fields of last external storage match with
|
|
| status | 0 |
|
|
|
|
Scenario: Save an external storage again with unmodified global credentials provided by user
|
|
Given Logging in using web as "admin"
|
|
And logged in user creates external global storage
|
|
| mountPoint | "ExternalStorageTest" |
|
|
| backend | "owncloud" |
|
|
| authMechanism | "password::global::user" |
|
|
| backendOptions | {"host":"http://localhost:8080","secure":false} |
|
|
And fields of last external storage match with
|
|
| status | 2 |
|
|
And logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"admin"} |
|
|
When logged in user updates last external userglobal storage
|
|
| backendOptions | {"user":"admin","password":"__unmodified__"} |
|
|
Then fields of last external storage match with
|
|
| status | 0 |
|