test(ExternalStorage): Send basic auth during integrations tests

Signed-off-by: Louis Chemineau <louis@chmn.me>

[skip ci]
pull/49547/head
Louis Chemineau 2024-11-28 11:12:29 +07:00
parent d224b3fed2
commit d3274bc6d2
No known key found for this signature in database
2 changed files with 38 additions and 19 deletions

@ -48,7 +48,7 @@ trait ExternalStorage {
* @param TableNode $fields
*/
public function loggedInUserCreatesExternalGlobalStorage(TableNode $fields): void {
$this->sendJsonWithRequestToken('POST', '/index.php/apps/files_external/globalstorages', $fields);
$this->sendJsonWithRequestTokenAndBasicAuth('POST', '/index.php/apps/files_external/globalstorages', $fields);
$this->theHTTPStatusCodeShouldBe('201');
$this->lastExternalStorageData = json_decode($this->response->getBody(), $asAssociativeArray = true);
@ -62,7 +62,7 @@ trait ExternalStorage {
* @param TableNode $fields
*/
public function loggedInUserUpdatesLastExternalUserglobalStorage(TableNode $fields): void {
$this->sendJsonWithRequestToken('PUT', '/index.php/apps/files_external/userglobalstorages/' . $this->lastExternalStorageData['id'], $fields);
$this->sendJsonWithRequestTokenAndBasicAuth('PUT', '/index.php/apps/files_external/userglobalstorages/' . $this->lastExternalStorageData['id'], $fields);
$this->theHTTPStatusCodeShouldBe('200');
$this->lastExternalStorageData = json_decode($this->response->getBody(), $asAssociativeArray = true);
@ -100,4 +100,23 @@ trait ExternalStorage {
];
$this->sendingAToWithRequesttoken($method, $url, $body);
}
private function sendJsonWithRequestTokenAndBasicAuth(string $method, string $url, TableNode $fields): void {
$isFirstField = true;
$fieldsAsJsonString = '{';
foreach ($fields->getRowsHash() as $key => $value) {
$fieldsAsJsonString .= ($isFirstField ? '' : ',') . '"' . $key . '":' . $value;
$isFirstField = false;
}
$fieldsAsJsonString .= '}';
$body = [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Basic ' . base64_encode('admin:admin'),
],
'body' => $fieldsAsJsonString,
];
$this->sendingAToWithRequesttoken($method, $url, $body);
}
}

@ -17,14 +17,14 @@ Feature: external-storage
And As an "user1"
And accepting last share
When creating a share with
| path | foo |
| shareType | 3 |
| path | foo |
| shareType | 3 |
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And Share fields of last share match with
| id | A_NUMBER |
| url | AN_URL |
| token | A_TOKEN |
| id | A_NUMBER |
| url | AN_URL |
| token | A_TOKEN |
| mimetype | httpd/unix-directory |
Scenario: Shares don't overwrite external storage
@ -69,9 +69,9 @@ Feature: external-storage
Scenario: Save an external storage with password provided by user
Given Logging in using web as "admin"
And logged in user creates external global storage
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::userprovided" |
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::userprovided" |
| backendOptions | {"host":"http://localhost:8080","secure":false} |
And fields of last external storage match with
| status | 2 |
@ -83,9 +83,9 @@ Feature: external-storage
Scenario: Save an external storage again with an unmodified password provided by user
Given Logging in using web as "admin"
And logged in user creates external global storage
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::userprovided" |
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::userprovided" |
| backendOptions | {"host":"http://localhost:8080","secure":false} |
And fields of last external storage match with
| status | 2 |
@ -99,9 +99,9 @@ Feature: external-storage
Scenario: Save an external storage with global credentials provided by user
Given Logging in using web as "admin"
And logged in user creates external global storage
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::global::user" |
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::global::user" |
| backendOptions | {"host":"http://localhost:8080","secure":false} |
And fields of last external storage match with
| status | 2 |
@ -113,9 +113,9 @@ Feature: external-storage
Scenario: Save an external storage again with unmodified global credentials provided by user
Given Logging in using web as "admin"
And logged in user creates external global storage
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::global::user" |
| mountPoint | "ExternalStorageTest" |
| backend | "owncloud" |
| authMechanism | "password::global::user" |
| backendOptions | {"host":"http://localhost:8080","secure":false} |
And fields of last external storage match with
| status | 2 |