add test to check settings api response

Signed-off-by: prashant-gurung899 <prasantgrg777@gmail.com>
This commit is contained in:
prashant-gurung899
2025-01-02 17:16:13 +05:45
parent 1f537b57fb
commit 11b5e8ccbc
6 changed files with 348 additions and 5 deletions

View File

@@ -88,6 +88,7 @@ config = {
"apiDepthInfinity",
"apiLocks",
"apiActivities",
"apiSettings",
],
"skip": False,
},

View File

@@ -63,7 +63,7 @@ class SettingsContext implements Context {
}
/**
* @When /^user "([^"]*)" tries to get all existing roles$/
* @When /^user "([^"]*)" tries to get all existing roles using the settings API$/
*
* @param string $user
*
@@ -139,6 +139,30 @@ class SettingsContext implements Context {
);
}
/**
* @When user :assigner assigns the role :role to user :assignee using the settings API
*
* @param string $assigner
* @param string $role
* @param string $assignee
*
* @return void
*
* @throws Exception
*/
public function userAssignsTheRoleToUserUsingTheSettingsApi(
string $assigner,
string $role,
string $assignee
): void {
$response = $this->assignRoleToUser(
$assigner,
$this->featureContext->getAttributeOfCreatedUser($assignee, 'id'),
$this->getRoleIdByRoleName($assigner, $role)
);
$this->featureContext->setResponse($response);
}
/**
* @param string $user
* @param string $role
@@ -232,7 +256,7 @@ class SettingsContext implements Context {
}
/**
* @When /^user "([^"]*)" tries to get list of assignment$/
* @When /^user "([^"]*)" tries to get list of assignment using the settings API$/
*
* @param string $user
*
@@ -444,6 +468,22 @@ class SettingsContext implements Context {
);
}
/**
* @When user :user switches the system language to :language using the settings API
*
* @param string $user
* @param string $language
*
* @return void
*
* @throws Exception
* @throws GuzzleException
*/
public function userSwitchesTheSystemLanguageUsingTheSettingsApi(string $user, string $language): void {
$response = $this->sendRequestToSwitchSystemLanguage($user, $language);
$this->featureContext->setResponse($response);
}
/**
* @param string $user
*
@@ -497,4 +537,20 @@ class SettingsContext implements Context {
);
$this->featureContext->rememberUserAutoSyncSetting($user, false);
}
/**
* @When user :user disables the auto-sync share using the settings API
*
* @param string $user
*
* @return void
*
* @throws Exception
* @throws GuzzleException
*/
public function userDisablesAutoAcceptingUsingSettingsApi(string $user): void {
$response = $this->sendRequestToDisableAutoAccepting($user);
$this->featureContext->setResponse($response);
$this->featureContext->rememberUserAutoSyncSetting($user, false);
}
}

View File

@@ -351,6 +351,15 @@ default:
- OcisConfigContext:
- SettingsContext:
apiSettings:
paths:
- "%paths.base%/../features/apiSettings"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params
- GraphContext:
- SettingsContext:
apiSharingNgShareInvitation:
paths:
- "%paths.base%/../features/apiSharingNgShareInvitation"

View File

@@ -7,7 +7,7 @@ Feature: assign role
Scenario Outline: only admin user can see all existing roles
Given user "Alice" has been created with default attributes
And the administrator has given "Alice" the role "<user-role>" using the settings api
When user "Alice" tries to get all existing roles
When user "Alice" tries to get all existing roles using the settings API
Then the HTTP status code should be "<http-status-code>"
Examples:
| user-role | http-status-code |
@@ -19,7 +19,7 @@ Feature: assign role
Scenario Outline: only admin user can see assignments list
Given user "Alice" has been created with default attributes
And the administrator has given "Alice" the role "<user-role>" using the settings api
When user "Alice" tries to get list of assignment
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "<http-status-code>"
Examples:
| user-role | http-status-code |

View File

@@ -22,7 +22,7 @@ Feature: assign role
@issue-5032
Scenario Outline: get assigned role of a user via setting api
Given the administrator has assigned the role "<user-role>" to user "Alice" using the Graph API
When user "Alice" tries to get list of assignment
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "<http-status-code>"
And the setting API response should have the role "<user-role>"
Examples:

View File

@@ -0,0 +1,277 @@
Feature: settings api
As a user,
I want to use settings api
So that I can manage user specific settings
Background:
Given these users have been created with default attributes:
| username |
| Alice |
| Brian |
And using spaces DAV path
Scenario: disable auto-sync share
When user "Brian" disables the auto-sync share using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["value"],
"properties": {
"value" : {
"type": "object",
"required": ["identifier","value"],
"properties": {
"identifier": {
"type": "object",
"required": [ "extension", "bundle", "setting"],
"properties": {
"extension": { "const": "ocis-accounts" },
"bundle": { "const": "profile" },
"setting": { "const": "auto-accept-shares" }
}
},
"value": {
"type": "object",
"required": [ "id", "bundleId", "settingId", "accountUuid", "resource", "boolValue" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"bundleId": { "pattern": "^%user_id_pattern%$" },
"settingId": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_USER" }
}
},
"boolValue": { "const": false }
}
}
}
}
}
}
"""
Scenario: assign role to user
When user "Admin" assigns the role "Admin" to user "Alice" using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["assignment"],
"properties": {
"assignment" : {
"type": "object",
"required": [ "id", "accountUuid", "roleId" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"roleId": { "pattern": "^%user_id_pattern%$" }
}
}
}
}
"""
@issue-5032
Scenario: user lists assignments
Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API
When user "Alice" tries to get list of assignment using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["assignments"],
"properties": {
"assignments" : {
"type": "array",
"minItems": 1,
"maxItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": ["id","accountUuid","roleId"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"roleId": { "pattern": "^%user_id_pattern%$" }
}
}
}
}
}
"""
Scenario: switch language
When user "Alice" switches the system language to "de" using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["value"],
"properties": {
"value" : {
"type": "object",
"required": [ "identifier", "value"],
"properties": {
"identifier": {
"type": "object",
"required": [ "extension", "bundle", "setting"],
"properties": {
"extension": { "const": "ocis-accounts" },
"bundle": { "const": "profile" },
"setting": { "const": "language" }
}
},
"value": {
"type": "object",
"required": [ "id", "bundleId", "settingId", "accountUuid", "resource", "listValue" ],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"bundleId": { "pattern": "^%user_id_pattern%$" },
"settingId": { "pattern": "^%user_id_pattern%$" },
"accountUuid": { "pattern": "^%user_id_pattern%$" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_USER" }
}
},
"listValue": {
"type": "object",
"required": ["values"],
"properties": {
"values": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"items": {
"type": "object",
"required": ["stringValue"],
"properties": {
"stringValue": { "const": "de" }
}
}
}
}
}
}
}
}
}
}
}
"""
@issue-5079
Scenario Outline: user lists existing roles
Given the administrator has assigned the role "<user-role>" to user "Alice" using the Graph API
When user "Alice" tries to get all existing roles using the settings API
Then the HTTP status code should be "201"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["bundles"],
"properties": {
"bundles" : {
"type": "array",
"minItems": 4,
"maxItems": 4,
"uniqueItems": true,
"items": {
"oneOf": [
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "spaceadmin" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "Space Admin" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "admin"},
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "Admin" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "user-light" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "User Light" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
},
{
"type": "object",
"required": ["id", "name", "type", "extension", "displayName", "settings", "resource"],
"properties": {
"id": { "pattern": "^%user_id_pattern%$" },
"name": { "const": "user" },
"type": { "const": "TYPE_ROLE" },
"extension": { "const": "ocis-roles" },
"displayName": { "const": "User" },
"resource": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "const": "TYPE_SYSTEM" }
}
}
}
}
]
}
}
}
}
"""
Examples:
| user-role |
| Admin |
| Space Admin |
| User |