Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests-only][full-ci] tests: add api tests for changing system language using graph api #7817

Merged
merged 1 commit into from
Nov 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions tests/TestHelpers/GraphHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -1470,4 +1470,26 @@ public static function getShareMountId(
. " Cannot find share mountpoint id of '$path' for user '$user'"
);
}

/**
* @param string $baseUrl
* @param string $xRequestId
* @param string $user
* @param string $password
* @param string $language
*
* @return ResponseInterface
* @throws GuzzleException
*/
public static function switchSystemLanguage(
string $baseUrl,
string $xRequestId,
string $user,
string $password,
string $language
): ResponseInterface {
$fullUrl = self::getFullUrl($baseUrl, 'me');
$payload['preferredLanguage'] = $language;
return HttpRequestHelper::sendRequest($fullUrl, $xRequestId, 'PATCH', $user, $password, null, \json_encode($payload));
}
}
2 changes: 1 addition & 1 deletion tests/acceptance/features/apiAntivirus/antivirus.feature
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ Feature: antivirus

@issue-enterprise-5706
Scenario Outline: upload a file with virus and get notification in different languages
Given user "Alice" has switched the system language to "<language>"
Given user "Alice" has switched the system language to "<language>" using the Graph API
And using <dav-path-version> DAV path
When user "Alice" uploads file "filesForUpload/filesWithVirus/eicar.com" to "/aFileWithVirus.txt" using the WebDAV API
Then the HTTP status code should be "201"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Feature: Deprovisioning notification

Scenario Outline: get a deprovisioning notification in various languages
Given the administrator has created a deprovisioning notification
And user "Alice" has switched the system language to "<language>"
And user "Alice" has switched the system language to "<language>" using the Graph API
When user "Alice" lists all notifications
Then the HTTP status code should be "200"
And the JSON response should contain a notification message with the subject "<subject>" and the message-details should match
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ Feature: Email notification
And group "group1" has been created
And user "Brian" has been added to group "group1"
And user "Carol" has been added to group "group1"
And user "Brian" has switched the system language to "es"
And user "Carol" has switched the system language to "de"
And user "Brian" has switched the system language to "es" using the Graph API
And user "Carol" has switched the system language to "de" using the Graph API
And user "Alice" has created folder "/HelloWorld"
When user "Alice" shares folder "HelloWorld" with group "group1" using the sharing API
Then the HTTP status code should be "200"
Expand Down Expand Up @@ -107,8 +107,8 @@ Feature: Email notification
And group "group1" has been created
And user "Brian" has been added to group "group1"
And user "Carol" has been added to group "group1"
And user "Brian" has switched the system language to "es"
And user "Carol" has switched the system language to "de"
And user "Brian" has switched the system language to "es" using the Graph API
And user "Carol" has switched the system language to "de" using the Graph API
And user "Alice" has uploaded file with content "hello world" to "text.txt"
When user "Alice" shares file "text.txt" with group "group1" using the sharing API
Then the HTTP status code should be "200"
Expand Down Expand Up @@ -137,8 +137,8 @@ Feature: Email notification
And group "group1" has been created
And user "Brian" has been added to group "group1"
And user "Carol" has been added to group "group1"
And user "Brian" has switched the system language to "es"
And user "Carol" has switched the system language to "de"
And user "Brian" has switched the system language to "es" using the Graph API
And user "Carol" has switched the system language to "de" using the Graph API
And user "Alice" has created a space "new-space" with the default quota using the Graph API
When user "Alice" shares a space "new-space" with settings:
| shareWith | group1 |
Expand Down
10 changes: 6 additions & 4 deletions tests/acceptance/features/apiNotification/notification.feature
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ Feature: Notification


Scenario Outline: get a notification about a file share in various languages
Given user "Brian" has switched the system language to "<language>"
Given user "Brian" has switched the system language to "<language>" using the <api> API
And user "Alice" has shared entry "textfile1.txt" with user "Brian" with permissions "17"
When user "Brian" lists all notifications
Then the HTTP status code should be "200"
Expand All @@ -263,9 +263,11 @@ Feature: Notification
}
"""
Examples:
| language | subject | message |
| de | Neue Freigabe | Alice Hansen hat textfile1.txt mit Ihnen geteilt |
| es | Recurso compartido | Alice Hansen compartió textfile1.txt contigo |
| language | subject | message | api |
| de | Neue Freigabe | Alice Hansen hat textfile1.txt mit Ihnen geteilt | Graph |
| de | Neue Freigabe | Alice Hansen hat textfile1.txt mit Ihnen geteilt | settings |
| es | Recurso compartido | Alice Hansen compartió textfile1.txt contigo | Graph |
| es | Recurso compartido | Alice Hansen compartió textfile1.txt contigo | settings |
Comment on lines +266 to +270
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ScharfViktor I've refactored this like so ^ to include a few scenarios with settings API, if we don't need coverage for settings API I can remove the related code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fine, thanks. Since we have settings endpoint it's good to have a couple of tests for it


@env-config
Scenario: get a notification about a file share in default languages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ Feature: Notification


Scenario Outline: get a notification about a space share in various languages
Given user "Brian" has switched the system language to "<language>"
Given user "Brian" has switched the system language to "<language>" using the Graph API
And user "Alice" has shared a space "notification checking" with settings:
| shareWith | Brian |
| role | editor |
Expand Down
47 changes: 47 additions & 0 deletions tests/acceptance/features/bootstrap/GraphContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -2466,4 +2466,51 @@ public function userChangesTheRoleOfUserToRoleUsingTheGraphApi(string $user, str
)
);
}

/**
* @Given user :user has switched the system language to :language using the Graph API
*
* @param string $user
* @param string $language
*
* @return void
* @throws GuzzleException
*/
public function userHasSwitchedTheSystemLanguageUsingGraphApi(string $user, string $language): void {
$credentials = $this->getAdminOrUserCredentials($user);
$response = GraphHelper::switchSystemLanguage(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$credentials['username'],
$credentials['password'],
$language
);
$this->featureContext->theHTTPStatusCodeShouldBe(
200,
"Expected response status code should be 200",
$response
);
}

/**
* @When user :user switches the system language to :language using the Graph API
*
* @param string $user
* @param string $language
*
* @return void
* @throws GuzzleException
*/
public function userSwitchesTheSystemLanguageUsingGraphApi(string $user, string $language): void {
$credentials = $this->getAdminOrUserCredentials($user);
$this->featureContext->setResponse(
GraphHelper::switchSystemLanguage(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$credentials['username'],
$credentials['password'],
$language
)
);
}
}
2 changes: 1 addition & 1 deletion tests/acceptance/features/bootstrap/SettingsContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ public function sendRequestToSwitchSystemLanguage(string $user, string $language
}

/**
* @Given /^user "([^"]*)" has switched the system language to "([^"]*)"$/
* @Given /^user "([^"]*)" has switched the system language to "([^"]*)" using the settings API$/
nirajacharya2 marked this conversation as resolved.
Show resolved Hide resolved
*
* @param string $user
* @param string $language
Expand Down