mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-04 11:19:39 -06:00
178 lines
4.8 KiB
Gherkin
Executable File
178 lines
4.8 KiB
Gherkin
Executable File
@ocm
|
|
Feature: create invitation
|
|
As a user
|
|
I can create an invitations and send it to the person I want to share with
|
|
|
|
Background:
|
|
Given user "Alice" has been created with default attributes and without skeleton files
|
|
|
|
|
|
Scenario: user creates invitation
|
|
Given using server "LOCAL"
|
|
When "Alice" creates the federation share invitation
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"expiration",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"expiration": {
|
|
"type": "integer",
|
|
"pattern": "^[0-9]{10}$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"pattern": "%fed_invitation_token%"
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
When "Alice" lists the created invitations
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"expiration",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"expiration": {
|
|
"type": "integer",
|
|
"pattern": "^[0-9]{10}$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"pattern": "%fed_invitation_token%"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
@issue-9591
|
|
Scenario: user creates invitation with email and description
|
|
Given using server "LOCAL"
|
|
When "Alice" creates the federation share invitation with email "brian@example.com" and description "a share invitation from Alice"
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"expiration",
|
|
"token",
|
|
"description",
|
|
"recipient"
|
|
],
|
|
"properties": {
|
|
"expiration": {
|
|
"type": "integer",
|
|
"pattern": "^[0-9]{10}$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"pattern": "%fed_invitation_token%"
|
|
},
|
|
"description": {
|
|
"const": "a share invitation from Alice"
|
|
},
|
|
"description": {
|
|
"const": "brian@example.com"
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
When "Alice" lists the created invitations
|
|
And the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"expiration",
|
|
"token",
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"expiration": {
|
|
"type": "integer",
|
|
"pattern": "^[0-9]{10}$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"pattern": "%fed_invitation_token%"
|
|
},
|
|
"description": {
|
|
"const": "a share invitation from Alice"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
|
|
@email
|
|
Scenario: federated user gets an email notification if their email was specified when creating the federation share invitation
|
|
Given using server "LOCAL"
|
|
When "Alice" has created the federation share invitation with email "brian@example.com" and description "a share invitation from Alice"
|
|
And user "Brian" should have received the following email from user "Alice"
|
|
"""
|
|
Hi,
|
|
|
|
Alice Hansen (alice@example.org) wants to start sharing collaboration resources with you.
|
|
|
|
Please visit your federation provider and use the following details:
|
|
Token: %fed_invitation_token%
|
|
ProviderDomain: https://ocis-server:9200
|
|
"""
|
|
|
|
@env-config
|
|
Scenario: user cannot see expired invitation tokens
|
|
Given using server "LOCAL"
|
|
And the config "OCM_OCM_INVITE_MANAGER_TOKEN_EXPIRATION" has been set to "1s"
|
|
When "Alice" creates the federation share invitation
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "object",
|
|
"required": [
|
|
"expiration",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"expiration": {
|
|
"type": "integer",
|
|
"pattern": "^[0-9]{10}$"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"pattern": "%fed_invitation_token%"
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
And the user waits "2" seconds for the token to expire
|
|
When "Alice" lists the created invitations
|
|
Then the HTTP status code should be "200"
|
|
And the JSON data of the response should match
|
|
"""
|
|
{
|
|
"type": "array",
|
|
"minItems": 0,
|
|
"maxItems": 0
|
|
}
|
|
""" |