Merge pull request #6434 from owncloud/tag-comma

[tests-only] [full-ci] Test comma-separated list of tags
This commit is contained in:
Phil Davis
2023-06-08 14:16:04 +05:45
committed by GitHub
2 changed files with 60 additions and 2 deletions
@@ -1,7 +1,7 @@
@api @skipOnStable2.0
Feature: Tag
As a user
I want to tag resources
As a user
I want to tag resources
So that I can sort and search them quickly
Note - this feature is run in CI with ACCOUNTS_HASH_DIFFICULTY set to the default for production
@@ -255,3 +255,52 @@ Feature: Tag
And the response should contain following tags:
| folderTag |
| marketing |
Scenario: user creates a comma-separated list of tags for resources in the project space
Given user "Alice" has shared a space "use-tag" with settings:
| shareWith | Brian |
| role | viewer |
When user "Alice" creates the following tags for folder "folderMain" of space "use-tag":
| finance, |
Then the HTTP status code should be "200"
When user "Alice" sends PROPFIND request from the space "use-tag" to the resource "folderMain" using the WebDAV API
Then the HTTP status code should be "207"
And the "PROPFIND" response should contain a space "use-tag" with these key and value pairs:
| key | value |
| oc:tags | finance, |
When user "Alice" creates the following tags for file "folderMain/insideTheFolder.txt" of space "use-tag":
| file,,Tag |
Then the HTTP status code should be "200"
When user "Brian" sends PROPFIND request from the space "use-tag" to the resource "folderMain/insideTheFolder.txt" using the WebDAV API
Then the HTTP status code should be "207"
And the "PROPFIND" response should contain a space "use-tag" with these key and value pairs:
| key | value |
| oc:tags | file,,Tag |
When user "Alice" lists all available tags via the GraphApi
Then the HTTP status code should be "200"
And the response should contain following tags:
| finance |
| |
| file |
| Tag |
Scenario: setting a comma-separated list of tags adds to any existing tags on the resource
Given user "Alice" has created the following tags for folder "folderMain" of the space "use-tag":
| finance,hr |
When user "Alice" creates the following tags for folder "folderMain" of space "use-tag":
| engineering,finance,qa |
Then the HTTP status code should be "200"
When user "Alice" sends PROPFIND request from the space "use-tag" to the resource "folderMain" using the WebDAV API
Then the HTTP status code should be "207"
And the "PROPFIND" response should contain a space "use-tag" with these key and value pairs:
| key | value |
| oc:tags | engineering,finance,hr,qa |
When user "Alice" lists all available tags via the GraphApi
Then the HTTP status code should be "200"
And the response should contain following tags:
| engineering |
| finance |
| hr |
| qa |
@@ -3153,6 +3153,15 @@ class SpacesContext implements Context {
case "oc:privatelink":
Assert::assertEquals($this->getPrivateLink($user, $spaceNameOrMountPoint), $responseValue, 'cannot find private link for space or resource in the response');
break;
case "oc:tags":
// The value should be a comma-separated string of tag names.
// We do not care what order they happen to be in, so compare as sorted lists.
$expectedTags = \explode(",", $value);
$expectedTags = \sort($expectedTags);
$actualTags = \explode(",", $responseValue);
$actualTags = \sort($actualTags);
Assert::assertEquals($expectedTags, $actualTags, "wrong $findItem in the response");
break;
default:
Assert::assertEquals($value, $responseValue, "wrong $findItem in the response");
break;