move files in apiFullTextSearch

This commit is contained in:
nabim777
2023-09-01 16:49:47 +05:45
parent f47dda164f
commit 4cd05c8d06
5 changed files with 10 additions and 13 deletions
@@ -0,0 +1,138 @@
Feature: Search
As a user
I want to search for resources in the space
So that I can get them quickly
Note - this feature is run in CI with ACCOUNTS_HASH_DIFFICULTY set to the default for production
See https://github.com/owncloud/ocis/issues/1542 and https://github.com/owncloud/ocis/pull/839
Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And using spaces DAV path
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "find data" with the default quota using the GraphApi
And user "Alice" has created a folder "folderMain/SubFolder1/subFOLDER2" in space "find data"
And user "Alice" has uploaded a file inside space "find data" with content "some content" to "folderMain/SubFolder1/subFOLDER2/insideTheFolder.txt"
And using new DAV path
Scenario: user can find data from the project space
When user "Alice" searches for "fol" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "4" entries
And the search result of user "Alice" should contain these entries:
| /folderMain |
| /folderMain/SubFolder1 |
| /folderMain/SubFolder1/subFOLDER2 |
| /folderMain/SubFolder1/subFOLDER2/insideTheFolder.txt |
Scenario: user can only find data that they searched for from the project space
When user "Alice" searches for "SUB" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "2" entries
And the search result of user "Alice" should contain these entries:
| /folderMain/SubFolder1 |
| /folderMain/SubFolder1/subFOLDER2 |
But the search result of user "Alice" should not contain these entries:
| /folderMain |
| /folderMain/SubFolder1/subFOLDER2/insideTheFolder.txt |
Scenario: user can find data from the shares
Given user "Alice" has created a share inside of space "find data" with settings:
| path | folderMain |
| shareWith | Brian |
| role | viewer |
And user "Brian" has accepted share "/folderMain" offered by user "Alice"
When user "Brian" searches for "folder" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "4" entries
And the search result of user "Brian" should contain these entries:
| /SubFolder1 |
| /SubFolder1/subFOLDER2 |
| /SubFolder1/subFOLDER2/insideTheFolder.txt |
And for user "Brian" the search result should contain space "mountpoint/folderMain"
Scenario: user can find hidden file
Given user "Alice" has created a folder ".space" in space "find data"
When user "Alice" searches for ".sp" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "1" entries
And the search result of user "Alice" should contain these entries:
| /.space |
Scenario: user cannot find pending share
Given user "Alice" has created a share inside of space "find data" with settings:
| path | folderMain |
| shareWith | Brian |
| role | viewer |
When user "Brian" searches for "folder" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "0" entries
And the search result of user "Brian" should not contain these entries:
| /SubFolder1 |
| /SubFolder1/subFOLDER2 |
| /SubFolder1/subFOLDER2/insideTheFolder.txt |
Scenario: user cannot find declined share
Given user "Alice" has created a share inside of space "find data" with settings:
| path | folderMain |
| shareWith | Brian |
| role | viewer |
And user "Brian" has declined share "/folderMain" offered by user "Alice"
When user "Brian" searches for "folder" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "0" entries
And the search result of user "Brian" should not contain these entries:
| /SubFolder1 |
| /SubFolder1/subFOLDER2 |
| /SubFolder1/subFOLDER2/insideTheFolder.txt |
Scenario: user cannot find deleted folder
Given user "Alice" has removed the folder "folderMain" from space "find data"
When user "Alice" searches for "folderMain" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "0" entries
Scenario: user can find project space by name
When user "Alice" searches for "find data" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "1" entries
And for user "Alice" the search result should contain space "find data"
Scenario: user can search inside folder in space
When user "Alice" searches for "folder" inside folder "/folderMain" in space "find data" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "3" entries
And the search result of user "Alice" should contain only these entries:
| /SubFolder1 |
| /SubFolder1/subFOLDER2 |
| /SubFolder1/subFOLDER2/insideTheFolder.txt |
But the search result of user "Alice" should not contain these entries:
| /folderMain |
Scenario: search inside folder in shares
Given user "Alice" has created a share inside of space "find data" with settings:
| path | folderMain |
| shareWith | Brian |
| role | viewer |
And user "Brian" has accepted share "/folderMain" offered by user "Alice"
When user "Brian" searches for "folder" inside folder "/folderMain" in space "Shares" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Brian" should contain only these entries:
| /SubFolder1 |
| /SubFolder1/subFOLDER2 |
| /SubFolder1/subFOLDER2/insideTheFolder.txt |
But the search result of user "Brian" should not contain these entries:
| /folderMain |
@@ -0,0 +1,163 @@
Feature: content search
As a user
I want to do search resources by content
So that I can find the files with the content I am looking for
Background:
Given user "Alice" has been created with default attributes and without skeleton files
Scenario Outline: search files by content
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "hello world from nepal" to "keywordAtStart.txt"
And user "Alice" has uploaded file with content "saying hello to the world" to "keywordAtMiddle.txt"
And user "Alice" has uploaded file with content "nepal want to say hello" to "keywordAtLast.txt"
And user "Alice" has uploaded file with content "namaste from nepal" to "hello.txt"
When user "Alice" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| keywordAtStart.txt |
| keywordAtMiddle.txt |
| keywordAtLast.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: sharee searches files by content
Given using <dav-path-version> DAV path
And user "Brian" has been created with default attributes and without skeleton files
And user "Alice" has created folder "uploadFolder"
And user "Alice" has uploaded file with content "hello world from nepal" to "uploadFolder/keywordAtStart.txt"
And user "Alice" has uploaded file with content "saying hello to the world" to "uploadFolder/keywordAtMiddle.txt"
And user "Alice" has uploaded file with content "nepal want to say hello" to "uploadFolder/keywordAtLast.txt"
And user "Alice" has uploaded file with content "Namaste nepal" to "uploadFolder/hello.txt"
And user "Alice" has shared folder "/uploadFolder" with user "Brian"
And user "Brian" has accepted share "/uploadFolder" offered by user "Alice"
When user "Brian" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Brian" should contain only these files:
| keywordAtStart.txt |
| keywordAtMiddle.txt |
| keywordAtLast.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: search deleted files by content
Given using <dav-path-version> DAV path
And user "Alice" has created folder "uploadFolder"
And user "Alice" has uploaded file with content "hello world from nepal" to "uploadFolder/keywordAtStart.txt"
And user "Alice" has uploaded file with content "saying hello to the world" to "keywordAtMiddle.txt"
And user "Alice" has uploaded file with content "nepal want to say hello" to "keywordAtLast.txt"
And user "Alice" has deleted file "keywordAtLast.txt"
When user "Alice" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| keywordAtStart.txt |
| keywordAtMiddle.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search restored files by content
Given using <dav-path-version> DAV path
And user "Alice" has created folder "uploadFolder"
And user "Alice" has uploaded file with content "hello world from nepal" to "keywordAtStart.txt"
And user "Alice" has deleted file "keywordAtStart.txt"
And user "Alice" has restored the file with original path "keywordAtStart.txt"
When user "Alice" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| keywordAtStart.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search restored version of a file by content
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "hello world" to "test.txt"
And user "Alice" has uploaded file with content "Namaste nepal" to "test.txt"
And user "Alice" has restored version index "1" of file "test.txt"
When user "Alice" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| test.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search project space files by content
Given using spaces DAV path
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 GraphApi
And user "Alice" has created a folder "spacesFolderWithFile/spacesSubFolder" in space "project-space"
And user "Alice" has uploaded a file inside space "project-space" with content "hello world from nepal" to "keywordAtStart.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "saying hello to the world" to "spacesFolderWithFile/keywordAtMiddle.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "nepal want to say hello" to "spacesFolderWithFile/spacesSubFolder/keywordAtLast.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "namaste from nepal" to "hello.txt"
And using <dav-path-version> DAV path
When user "Alice" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| keywordAtStart.txt |
| keywordAtMiddle.txt |
| keywordAtLast.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: sharee searches shared project space files by content
Given using spaces DAV path
And user "Brian" has been created with default attributes and without skeleton files
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 GraphApi
And user "Alice" has shared a space "project-space" with settings:
| shareWith | Brian |
| role | viewer |
And user "Alice" has created a folder "spacesFolderWithFile/spacesSubFolder" in space "project-space"
And user "Alice" has uploaded a file inside space "project-space" with content "hello world from nepal" to "keywordAtStart.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "saying hello to the world" to "spacesFolderWithFile/keywordAtMiddle.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "nepal wants to say hello" to "spacesFolderWithFile/spacesSubFolder/keywordAtLast.txt"
And user "Alice" has uploaded a file inside space "project-space" with content "namaste from nepal" to "hello.txt"
And using <dav-path-version> DAV path
When user "Brian" searches for "Content:hello" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| keywordAtStart.txt |
| spacesFolderWithFile/keywordAtMiddle.txt |
| spacesFolderWithFile/spacesSubFolder/keywordAtLast.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
@@ -0,0 +1,257 @@
Feature: tag search
As a user
I want to do search resources by tag
So that I can find the files with the tag I am looking for
Background:
Given user "Alice" has been created with default attributes and without skeleton files
Scenario Outline: search files by tag
Given using <dav-path-version> DAV path
And user "Alice" has created the following folders
| path |
| folderWithFile |
| folderWithFile/subFolder/ |
And user "Alice" has uploaded the following files with content "some data"
| path |
| fileInRootLevel.txt |
| folderWithFile/fileInsideFolder.txt |
| folderWithFile/subFolder/fileInsideSubFolder.txt |
And user "Alice" has tagged the following files of the space "Personal":
| path | tagName |
| fileInRootLevel.txt | tag1 |
| folderWithFile/fileInsideFolder.txt | tag1 |
| folderWithFile/subFolder/fileInsideSubFolder.txt | tag1 |
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| fileInRootLevel.txt |
| fileInsideFolder.txt |
| fileInsideSubFolder.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search project space files by tag
Given using spaces DAV path
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "tag-space" with the default quota using the GraphApi
And user "Alice" has created a folder "spacesFolderWithFile/spacesSubFolder" in space "tag-space"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file" to "spacesFile.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "untagged file" to "spacesFileWithoutTag.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file in folder" to "spacesFolderWithFile/spacesFileInsideFolder.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file in subfolder" to "spacesFolderWithFile/spacesSubFolder/spacesFileInsideSubFolder.txt"
And user "Alice" has tagged the following files of the space "tag-space":
| path | tagName |
| spacesFile.txt | tag1 |
| spacesFolderWithFile/spacesFileInsideFolder.txt | tag1 |
| spacesFolderWithFile/spacesSubFolder/spacesFileInsideSubFolder.txt | tag1 |
And using <dav-path-version> DAV path
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| spacesFile.txt |
| spacesFileInsideFolder.txt |
| spacesFileInsideSubFolder.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: search folders using a tag
Given using <dav-path-version> DAV path
And user "Alice" has created folder "uploadFolder1"
And user "Alice" has created folder "uploadFolder2"
And user "Alice" has created folder "uploadFolder3"
And user "Alice" has tagged the following folders of the space "Personal":
| path | tagName |
| uploadFolder1 | tag1 |
| uploadFolder2 | tag1 |
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these entries:
| uploadFolder1 |
| uploadFolder2 |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search project space folders by tag
Given using spaces DAV path
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "tag-space" with the default quota using the GraphApi
And user "Alice" has created a folder "spacesFolder/spacesSubFolder" in space "tag-space"
And user "Alice" has created a folder "unTagSpacesFolder/unTagSpacesSubFolder" in space "tag-space"
And user "Alice" has tagged the following folders of the space "tag-space":
| path | tagName |
| spacesFolder | tag1 |
| spacesFolder/spacesSubFolder | tag1 |
And using <dav-path-version> DAV path
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| spacesFolder |
| spacesSubFolder |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: sharee searches shared files using a tag
Given using <dav-path-version> DAV path
And user "Brian" has been created with default attributes and without skeleton files
And user "Alice" has created folder "uploadFolder"
And user "Alice" has uploaded file with content "hello world" to "uploadFolder/file1.txt"
And user "Alice" has uploaded file with content "Namaste nepal" to "uploadFolder/file2.txt"
And user "Alice" has uploaded file with content "hello nepal" to "uploadFolder/file3.txt"
And user "Alice" has created the following tags for file "uploadFolder/file1.txt" of the space "Personal":
| tag1 |
And user "Alice" has shared folder "/uploadFolder" with user "Brian"
And user "Brian" has accepted share "/uploadFolder" offered by user "Alice"
And user "Brian" has created the following tags for file "uploadFolder/file2.txt" of the space "Shares":
| tag1 |
When user "Brian" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Brian" should contain only these files:
| file1.txt |
| file2.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: sharee searches shared project space files using a tag
Given using spaces DAV path
And user "Brian" has been created with default attributes and without skeleton files
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "tag-space" with the default quota using the GraphApi
And user "Alice" has shared a space "tag-space" with settings:
| shareWith | Brian |
| role | viewer |
And user "Alice" has created a folder "spacesFolderWithFile/spacesSubFolder" in space "tag-space"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file" to "spacesFile.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "untagged file" to "spacesFileWithoutTag.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file in folder" to "spacesFolderWithFile/spacesFileInsideFolder.txt"
And user "Alice" has uploaded a file inside space "tag-space" with content "tagged file in subfolder" to "spacesFolderWithFile/spacesSubFolder/spacesFileInsideSubFolder.txt"
And user "Alice" has tagged the following files of the space "tag-space":
| path | tagName |
| spacesFile.txt | tag1 |
| spacesFolderWithFile/spacesFileInsideFolder.txt | tag1 |
| spacesFolderWithFile/spacesSubFolder/spacesFileInsideSubFolder.txt | tag1 |
And using <dav-path-version> DAV path
When user "Brian" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these files:
| spacesFile.txt |
| spacesFolderWithFile/spacesFileInsideFolder.txt |
| spacesFolderWithFile/spacesSubFolder/spacesFileInsideSubFolder.txt |
Examples:
| dav-path-version |
| old |
| new |
@skipOnStable3.0
Examples:
| dav-path-version |
| spaces |
Scenario Outline: search files using a deleted tag
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "hello world" to "file1.txt"
And user "Alice" has created the following tags for file "file1.txt" of the space "Personal":
| tag1 |
And user "Alice" has removed the following tags for file "file1.txt" of space "Personal":
| tag1 |
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result should contain "0" entries
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search restored files using a tag
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "hello world" to "file1.txt"
And user "Alice" has uploaded file with content "Namaste nepal" to "file2.txt"
And user "Alice" has created the following tags for file "file1.txt" of the space "Personal":
| tag1 |
And user "Alice" has deleted file "/file1.txt"
And user "Alice" has restored the file with original path "/file1.txt"
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these entries:
| /file1.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |
Scenario Outline: search restored version of a file using a tag
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "version one file" to "file.txt"
And user "Alice" has created the following tags for file "file.txt" of the space "Personal":
| tag1 |
And user "Alice" has uploaded file with content "version two file" to "file.txt"
And user "Alice" has restored version index "1" of file "file.txt"
When user "Alice" searches for "Tags:tag1" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these entries:
| /file.txt |
And the content of file "file.txt" for user "Alice" should be "version one file"
Examples:
| dav-path-version |
| old |
| new |
| spaces |
@skipOnStable3.0
Scenario Outline: search files inside the folder
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "hello world inside root" to "file1.txt"
And user "Alice" has created folder "/Folder"
And user "Alice" has uploaded file with content "hello world inside folder" to "/Folder/file2.txt"
And user "Alice" has created folder "/Folder/SubFolder"
And user "Alice" has uploaded file with content "hello world inside sub-folder" to "/Folder/SubFolder/file3.txt"
When user "Alice" searches for "file" inside folder "/Folder" using the WebDAV API
Then the HTTP status code should be "207"
And the search result of user "Alice" should contain only these entries:
| file2.txt |
| file3.txt |
But the search result of user "Alice" should not contain these entries:
| file1.txt |
Examples:
| dav-path-version |
| old |
| new |
| spaces |