Files
luos/features/backend/oauth/main_tests_authorization_code.feature
2014-10-31 16:41:48 -04:00

161 lines
8.2 KiB
Gherkin

@ProcessMakerMichelangelo @RestAPI
Feature: Generate token Grant type - Authorization Code
Requirements:
a workspace with open session and installed application
Scenario Outline: Create new CLIENT_ID and CLIENT_SECRET
Given OAUTH register an application
"""
{
"name":"<application_name>",
"description":"<application_description>",
"webSite":"<application_website>",
"redirectUri":"<application_redirectUri>",
"applicationNumber":"<application_number>"
}
"""
Examples:
| Description | application_number | application_name | application_description | application_website | application_redirectUri |
| Create token normal | 1 | Demo3 | Demo3 desc | http://www.demowendy3.com | www.demowendy3.com/auth |
| Create token normal | 2 | Demo4 | Demo4 desc | http://www.demowendy4.com | http://www.processmaker.com |
#Endpoint para verificar el correcto funcionamiento del token generado en este script
Scenario Outline: Get the Output Documents List both process
Given that I assign an access token from session variable "access_token_<application_number>"
And I request "project/<project>/output-documents"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "out_doc_title" property in row 0 equals "<out_doc_title>"
Examples:
| test_description | project | records | out_doc_title | application_number |
| List Outputs in process "Test Users-Step-Properties End Point" | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version (base) | 1 |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 2 |
Scenario Outline: Get the Output Documents List both process (without valid token)
Given I request "project/<project>/output-documents"
Then the response status code should be 401
Examples:
| test_description | project | records | out_doc_title | application_number |
| List Outputs in process "Test Users-Step-Properties End Point" | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version (base) | 1 |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 2 |
#Endpoint para hacer que expire los token creados en este script
Scenario Outline: Expire token created in this script
Given POST this data:
"""
{
}
"""
And I request "oauth2/access_token/expire" with the key "access_token" stored in session array as variable "access_token_<application_number>"
Then the response status code should be 200
Examples:
| Description | application_number |
| Expire token 1 | 1 |
| Expire token 2 | 2 |
#Endpoint para verificar que el token haya expirado
Scenario Outline: Get the Output Documents List both process
Given that I assign an access token from session variable "access_token_<application_number>"
And I request "project/<project>/output-documents"
Then the response status code should be 401
And the response status message should have the following text "<error_message>"
Examples:
| test_description | project | records | out_doc_title | application_number | error_message |
| List Outputs in process "Test Users-Step-Properties End Point" | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version (base) | 1 | Unauthorized |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 2 | Unauthorized |
#Grant type Refresh Token
Scenario Outline: Refresh token
Given POST this data:
"""
{
}
"""
And I request a refresh token for "refresh_token_<grant_number>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
And store "access_token" in session array as variable "access_token_<refresh_token_number>"
And store "expires_in" in session array as variable "expires_in_<refresh_token_number>"
And store "token_type" in session array as variable "token_type_<refresh_token_number>"
And store "scope" in session array as variable "scope_<refresh_token_number>"
Examples:
| Description | grant_number | refresh_token_number |
| Create token normal | 1 | 3 |
| Create token normal | 2 | 4 |
#Endpoint para verificar el correcto funcionamiento del Refresh Token generado en este script
Scenario Outline: Get the Output Documents List both process
Given that I assign an access token from session variable "access_token_<application_number>"
And I request "project/<project>/output-documents"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "out_doc_title" property in row 0 equals "<out_doc_title>"
Examples:
| test_description | project | records | out_doc_title | application_number |
| List Outputs in process "Test Users-Step-Properties End Point" | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version (base) | 3 |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 4 |
#Endpoint para borrar el token creado en este script
Scenario Outline: Delete all tokens created previously in this script
Given that I want to delete a resource with the key "access_token_<application_number>" stored in session array
And I request "oauth2"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
Examples:
| application_number |
| 1 |
| 2 |
| 3 |
| 4 |
#Endpoint para verificar que el token ya no existe
Scenario Outline: Get the Output Documents List both process
Given that I assign an access token from session variable "access_token_<application_number>"
And I request "project/<project>/output-documents"
Then the response status code should be 401
And the response status message should have the following text "<error_message>"
Examples:
| test_description | project | records | out_doc_title | application_number | error_message |
| List Outputs in process "Test Users-Step-Properties End Point" | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version (base) | 1 | Unauthorized |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 2 | Unauthorized |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 3 | Unauthorized |
| List Outputs in process "Process Complete BPMN" | 1455892245368ebeb11c1a5001393784 | 1 | Output Document | 4 | Unauthorized |