mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-28 08:38:12 -05:00
501 lines
18 KiB
Gherkin
501 lines
18 KiB
Gherkin
@tikaServiceNeeded
|
|
Feature: propfind extracted props
|
|
As a user
|
|
I want to get extracted properties of resource
|
|
So that I can make sure that the response contains audio, location, image and photo properties
|
|
|
|
Background:
|
|
Given user "Alice" has been created with default attributes
|
|
And using spaces DAV path
|
|
|
|
|
|
Scenario: check extracted properties of a file from project space
|
|
Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
|
And user "Alice" has uploaded a file "filesForUpload/testaudio.mp3" to "testaudio.mp3" in space "new-space"
|
|
And user "Alice" has uploaded a file "filesForUpload/testavatar.jpg" to "testavatar.jpg" in space "new-space"
|
|
When user "Alice" gets the following extracted properties of resource "testaudio.mp3" inside space "new-space" using the WebDAV API
|
|
| propertyName |
|
|
| oc:audio |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Alice" the REPORT response should contain a resource "testaudio.mp3" with these key and value pairs:
|
|
| key | value |
|
|
| oc:audio/oc:album | ALBUM1234567890123456789012345 |
|
|
| oc:audio/oc:artist | ARTIST123456789012345678901234 |
|
|
| oc:audio/oc:genre | Pop |
|
|
| oc:audio/oc:title | TITLE1234567890123456789012345 |
|
|
| oc:audio/oc:track | 1 |
|
|
| oc:audio/oc:year | 2001 |
|
|
When user "Alice" gets the following extracted properties of resource "testavatar.jpg" inside space "new-space" using the WebDAV API
|
|
| propertyName |
|
|
| oc:image |
|
|
| oc:location |
|
|
| oc:photo |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Alice" the REPORT response should contain a resource "testavatar.jpg" with these key and value pairs:
|
|
| key | value |
|
|
| oc:image/oc:width | 1402 |
|
|
| oc:image/oc:height | 500 |
|
|
| oc:location/oc:latitude | 52.437804 |
|
|
| oc:location/oc:longitude | 13.341866 |
|
|
| oc:photo/oc:camera-make | NIKON |
|
|
| oc:photo/oc:camera-model | COOLPIX P6000 |
|
|
| oc:photo/oc:f-number | 4.5 |
|
|
| oc:photo/oc:focal-length | 6 |
|
|
|
|
|
|
Scenario: check extracted properties of a file from personal space
|
|
Given user "Alice" has uploaded file "filesForUpload/testaudio.mp3" to "testaudio.mp3"
|
|
And user "Alice" has uploaded file "filesForUpload/testavatar.jpg" to "testavatar.jpg"
|
|
When user "Alice" gets the following extracted properties of resource "testaudio.mp3" inside space "Personal" using the WebDAV API
|
|
| propertyName |
|
|
| oc:audio |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Alice" the REPORT response should contain a resource "testaudio.mp3" with these key and value pairs:
|
|
| key | value |
|
|
| oc:audio/oc:album | ALBUM1234567890123456789012345 |
|
|
| oc:audio/oc:artist | ARTIST123456789012345678901234 |
|
|
| oc:audio/oc:genre | Pop |
|
|
| oc:audio/oc:title | TITLE1234567890123456789012345 |
|
|
| oc:audio/oc:track | 1 |
|
|
| oc:audio/oc:year | 2001 |
|
|
When user "Alice" gets the following extracted properties of resource "testavatar.jpg" inside space "Personal" using the WebDAV API
|
|
| propertyName |
|
|
| oc:image |
|
|
| oc:location |
|
|
| oc:photo |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Alice" the REPORT response should contain a resource "testavatar.jpg" with these key and value pairs:
|
|
| key | value |
|
|
| oc:image/oc:width | 1402 |
|
|
| oc:image/oc:height | 500 |
|
|
| oc:location/oc:latitude | 52.437804 |
|
|
| oc:location/oc:longitude | 13.341866 |
|
|
| oc:photo/oc:camera-make | NIKON |
|
|
| oc:photo/oc:camera-model | COOLPIX P6000 |
|
|
| oc:photo/oc:f-number | 4.5 |
|
|
| oc:photo/oc:focal-length | 6 |
|
|
|
|
|
|
Scenario: check extracted properties of a file by sharee from shares space
|
|
Given these users have been created with default attributes:
|
|
| username |
|
|
| Brian |
|
|
And user "Alice" has uploaded file "filesForUpload/testaudio.mp3" to "testaudio.mp3"
|
|
And user "Alice" has uploaded file "filesForUpload/testavatar.jpg" to "testavatar.jpg"
|
|
And user "Alice" has sent the following resource share invitation:
|
|
| resource | testaudio.mp3 |
|
|
| space | Personal |
|
|
| sharee | Brian |
|
|
| shareType | user |
|
|
| permissionsRole | Viewer |
|
|
And user "Brian" has a share "testaudio.mp3" synced
|
|
And user "Alice" has sent the following resource share invitation:
|
|
| resource | testavatar.jpg |
|
|
| space | Personal |
|
|
| sharee | Brian |
|
|
| shareType | user |
|
|
| permissionsRole | Viewer |
|
|
And user "Brian" has a share "testavatar.jpg" synced
|
|
When user "Brian" gets the following extracted properties of resource "testaudio.mp3" inside space "Shares" using the WebDAV API
|
|
| propertyName |
|
|
| oc:audio |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Brian" the REPORT response should contain a resource "testaudio.mp3" with these key and value pairs:
|
|
| key | value |
|
|
| oc:audio/oc:album | ALBUM1234567890123456789012345 |
|
|
| oc:audio/oc:artist | ARTIST123456789012345678901234 |
|
|
| oc:audio/oc:genre | Pop |
|
|
| oc:audio/oc:title | TITLE1234567890123456789012345 |
|
|
| oc:audio/oc:track | 1 |
|
|
| oc:audio/oc:year | 2001 |
|
|
When user "Brian" gets the following extracted properties of resource "testavatar.jpg" inside space "Shares" using the WebDAV API
|
|
| propertyName |
|
|
| oc:image |
|
|
| oc:location |
|
|
| oc:photo |
|
|
Then the HTTP status code should be "207"
|
|
And as user "Brian" the REPORT response should contain a resource "testavatar.jpg" with these key and value pairs:
|
|
| key | value |
|
|
| oc:image/oc:width | 1402 |
|
|
| oc:image/oc:height | 500 |
|
|
| oc:location/oc:latitude | 52.437804 |
|
|
| oc:location/oc:longitude | 13.341866 |
|
|
| oc:photo/oc:camera-make | NIKON |
|
|
| oc:photo/oc:camera-model | COOLPIX P6000 |
|
|
| oc:photo/oc:f-number | 4.5 |
|
|
| oc:photo/oc:focal-length | 6 |
|
|
|
|
|
|
Scenario: GET extracted properties of an audio file (Personal space)
|
|
Given user "Alice" has uploaded a file "filesForUpload/testaudio.mp3" to "testaudio.mp3" in space "Personal"
|
|
When user "Alice" gets the file "testaudio.mp3" from space "Personal" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"audio"
|
|
],
|
|
"properties": {
|
|
"audio": {
|
|
"type": "object",
|
|
"required": [
|
|
"album",
|
|
"artist",
|
|
"genre",
|
|
"title",
|
|
"track",
|
|
"year"
|
|
],
|
|
"properties": {
|
|
"album": {
|
|
"const": "ALBUM1234567890123456789012345"
|
|
},
|
|
"artist": {
|
|
"const": "ARTIST123456789012345678901234"
|
|
},
|
|
"genre": {
|
|
"const": "Pop"
|
|
},
|
|
"title": {
|
|
"const": "TITLE1234567890123456789012345"
|
|
},
|
|
"track": {
|
|
"const": 1
|
|
},
|
|
"year": {
|
|
"const": 2001
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
|
|
Scenario: GET extracted properties of an image file (Personal space)
|
|
Given user "Alice" has uploaded a file "filesForUpload/testavatar.jpg" to "testavatar.jpg" in space "Personal"
|
|
When user "Alice" gets the file "testavatar.jpg" from space "Personal" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"image",
|
|
"location",
|
|
"photo"
|
|
],
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"required": [ "height", "width" ],
|
|
"properties": {
|
|
"height": {
|
|
"const": 500
|
|
},
|
|
"width": {
|
|
"const": 1402
|
|
}
|
|
}
|
|
},
|
|
"location": {
|
|
"type": "object",
|
|
"required": [ "latitude", "longitude" ],
|
|
"properties": {
|
|
"latitude": {
|
|
"const": 52.437804
|
|
},
|
|
"longitude": {
|
|
"const": 13.341866
|
|
}
|
|
}
|
|
},
|
|
"photo": {
|
|
"type": "object",
|
|
"required": [
|
|
"cameraMake",
|
|
"cameraModel",
|
|
"fNumber",
|
|
"focalLength",
|
|
"orientation"
|
|
],
|
|
"properties": {
|
|
"cameraMake": {
|
|
"const": "NIKON"
|
|
},
|
|
"cameraModel": {
|
|
"const": "COOLPIX P6000"
|
|
},
|
|
"fNumber": {
|
|
"const": 4.5
|
|
},
|
|
"focalLength": {
|
|
"const": 6
|
|
},
|
|
"orientation": {
|
|
"const": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
|
|
Scenario: GET extracted properties of an audio file (Project space)
|
|
Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
|
And user "Alice" has uploaded a file "filesForUpload/testaudio.mp3" to "testaudio.mp3" in space "new-space"
|
|
When user "Alice" gets the file "testaudio.mp3" from space "new-space" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"audio"
|
|
],
|
|
"properties": {
|
|
"audio": {
|
|
"type": "object",
|
|
"required": [
|
|
"album",
|
|
"artist",
|
|
"genre",
|
|
"title",
|
|
"track",
|
|
"year"
|
|
],
|
|
"properties": {
|
|
"album": {
|
|
"const": "ALBUM1234567890123456789012345"
|
|
},
|
|
"artist": {
|
|
"const": "ARTIST123456789012345678901234"
|
|
},
|
|
"genre": {
|
|
"const": "Pop"
|
|
},
|
|
"title": {
|
|
"const": "TITLE1234567890123456789012345"
|
|
},
|
|
"track": {
|
|
"const": 1
|
|
},
|
|
"year": {
|
|
"const": 2001
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
|
|
Scenario: GET extracted properties of an image file (Project space)
|
|
Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
|
And user "Alice" has created a space "new-space" with the default quota using the Graph API
|
|
And user "Alice" has uploaded a file "filesForUpload/testavatar.jpg" to "testavatar.jpg" in space "new-space"
|
|
When user "Alice" gets the file "testavatar.jpg" from space "new-space" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"image",
|
|
"location",
|
|
"photo"
|
|
],
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"required": [ "height", "width" ],
|
|
"properties": {
|
|
"height": {
|
|
"const": 500
|
|
},
|
|
"width": {
|
|
"const": 1402
|
|
}
|
|
}
|
|
},
|
|
"location": {
|
|
"type": "object",
|
|
"required": [ "latitude", "longitude" ],
|
|
"properties": {
|
|
"latitude": {
|
|
"const": 52.437804
|
|
},
|
|
"longitude": {
|
|
"const": 13.341866
|
|
}
|
|
}
|
|
},
|
|
"photo": {
|
|
"type": "object",
|
|
"required": [
|
|
"cameraMake",
|
|
"cameraModel",
|
|
"fNumber",
|
|
"focalLength",
|
|
"orientation"
|
|
],
|
|
"properties": {
|
|
"cameraMake": {
|
|
"const": "NIKON"
|
|
},
|
|
"cameraModel": {
|
|
"const": "COOLPIX P6000"
|
|
},
|
|
"fNumber": {
|
|
"const": 4.5
|
|
},
|
|
"focalLength": {
|
|
"const": 6
|
|
},
|
|
"orientation": {
|
|
"const": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
|
|
Scenario: GET extracted properties of an audio file (Shares space)
|
|
Given user "Brian" has been created with default attributes
|
|
And user "Alice" has uploaded a file "filesForUpload/testaudio.mp3" to "testaudio.mp3" in space "Personal"
|
|
And user "Alice" has sent the following resource share invitation:
|
|
| resource | testaudio.mp3 |
|
|
| space | Personal |
|
|
| sharee | Brian |
|
|
| shareType | user |
|
|
| permissionsRole | Viewer |
|
|
And user "Brian" has a share "testaudio.mp3" synced
|
|
When user "Brian" gets the file "testaudio.mp3" from space "Shares" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"audio"
|
|
],
|
|
"properties": {
|
|
"audio": {
|
|
"type": "object",
|
|
"required": [
|
|
"album",
|
|
"artist",
|
|
"genre",
|
|
"title",
|
|
"track",
|
|
"year"
|
|
],
|
|
"properties": {
|
|
"album": {
|
|
"const": "ALBUM1234567890123456789012345"
|
|
},
|
|
"artist": {
|
|
"const": "ARTIST123456789012345678901234"
|
|
},
|
|
"genre": {
|
|
"const": "Pop"
|
|
},
|
|
"title": {
|
|
"const": "TITLE1234567890123456789012345"
|
|
},
|
|
"track": {
|
|
"const": 1
|
|
},
|
|
"year": {
|
|
"const": 2001
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
|
|
Scenario: GET extracted properties of an image file (Shares space)
|
|
Given user "Brian" has been created with default attributes
|
|
And user "Alice" has uploaded a file "filesForUpload/testavatar.jpg" to "testavatar.jpg" in space "Personal"
|
|
And user "Alice" has sent the following resource share invitation:
|
|
| resource | testavatar.jpg |
|
|
| space | Personal |
|
|
| sharee | Brian |
|
|
| shareType | user |
|
|
| permissionsRole | Viewer |
|
|
And user "Brian" has a share "testavatar.jpg" synced
|
|
When user "Brian" gets the file "testavatar.jpg" from space "Shares" using the Graph API
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"image",
|
|
"location",
|
|
"photo"
|
|
],
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"required": [ "height", "width" ],
|
|
"properties": {
|
|
"height": {
|
|
"const": 500
|
|
},
|
|
"width": {
|
|
"const": 1402
|
|
}
|
|
}
|
|
},
|
|
"location": {
|
|
"type": "object",
|
|
"required": [ "latitude", "longitude" ],
|
|
"properties": {
|
|
"latitude": {
|
|
"const": 52.437804
|
|
},
|
|
"longitude": {
|
|
"const": 13.341866
|
|
}
|
|
}
|
|
},
|
|
"photo": {
|
|
"type": "object",
|
|
"required": [
|
|
"cameraMake",
|
|
"cameraModel",
|
|
"fNumber",
|
|
"focalLength",
|
|
"orientation"
|
|
],
|
|
"properties": {
|
|
"cameraMake": {
|
|
"const": "NIKON"
|
|
},
|
|
"cameraModel": {
|
|
"const": "COOLPIX P6000"
|
|
},
|
|
"fNumber": {
|
|
"const": 4.5
|
|
},
|
|
"focalLength": {
|
|
"const": 6
|
|
},
|
|
"orientation": {
|
|
"const": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
""" |