Merge pull request #4492 from owncloud/reuseCodeFromCodeForFavourites

[tests-only][full-ci]Reuse code from code for `favorites.feature` in ocis
This commit is contained in:
Amrita
2022-09-05 11:55:12 +05:45
committed by GitHub
3 changed files with 25 additions and 44 deletions

View File

@@ -1,5 +1,5 @@
# The test runner source for API tests
CORE_COMMITID=d8ed82769fc422c38d6f6bc21253a052eef5e239
CORE_COMMITID=b51fb4c01f08763e023aece4f90308e07a7ac73f
CORE_BRANCH=master
# The test runner source for UI tests

View File

@@ -61,6 +61,7 @@ default:
- FilesVersionsContext:
- OCSContext:
- PublicWebDavContext:
- FavoritesContext:
- TrashbinContext:
- WebDavPropertiesContext:

View File

@@ -60,6 +60,11 @@ class SpacesContext implements Context {
*/
private WebDavPropertiesContext $webDavPropertiesContext;
/**
* @var FavoritesContext
*/
private FavoritesContext $favoritesContext;
/**
* @var string
*/
@@ -264,6 +269,21 @@ class SpacesContext implements Context {
return $spaces[$spaceName];
}
/**
* This method sets space id by Space Name
* This is currently used to set space id from ocis in core so that we can reuse available resource (code) and avoid duplication
*
* @param string $user
* @param string $spaceName
*
* @return void
* @throws GuzzleException
*/
public function setSpaceIDByName(string $user, string $spaceName): void {
$space = $this->getSpaceByName($user, $spaceName);
WebDavHelper::$SPACE_ID_FROM_OCIS = $space['id'];
}
/**
* The method finds available spaces to the manager user and returns the space by spaceName
*
@@ -430,6 +450,7 @@ class SpacesContext implements Context {
$this->ocsContext = $environment->getContext('OCSContext');
$this->trashbinContext = $environment->getContext('TrashbinContext');
$this->webDavPropertiesContext = $environment->getContext('WebDavPropertiesContext');
$this->favoritesContext = $environment->getContext('FavoritesContext');
// Run the BeforeScenario function in OCSContext to set it up correctly
$this->ocsContext->before($scope);
$this->baseUrl = \trim($this->featureContext->getBaseUrl(), "/");
@@ -618,28 +639,6 @@ class SpacesContext implements Context {
return HttpRequestHelper::sendRequest($fullUrl, $xRequestId, $method, $user, $password, $headers);
}
/**
* send proppatch request to url
*
* @param string $fullUrl
* @param string $user
* @param string $password
* @param string $xRequestId
* @param array $headers
* @param mixed|null $body
* @return ResponseInterface
*/
public function sendPropPatchRequest(
string $fullUrl,
string $user,
string $password,
string $xRequestId = '',
array $headers = [],
$body
): ResponseInterface {
return HttpRequestHelper::sendRequest($fullUrl, $xRequestId, 'PROPPATCH', $user, $password, $headers, $body);
}
/**
* @When /^user "([^"]*)" lists all available spaces via the GraphApi$/
* @When /^user "([^"]*)" lists all available spaces via the GraphApi with query "([^"]*)"$/
@@ -3275,26 +3274,7 @@ class SpacesContext implements Context {
* @throws GuzzleException
*/
public function userFavoritesElementInSpaceUsingTheWebdavApi(string $user, string $path, string $spaceName): void {
$space = $this->getSpaceByName($user, $spaceName);
$fullUrl = $space["root"]["webDavUrl"] . '/' . ltrim($path, "/");
$body = '<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:"
xmlns:oc="http://owncloud.org/ns">
<d:set>
<d:prop>
<oc:favorite xmlns:oc="http://owncloud.org/ns">1</oc:favorite>
</d:prop>
</d:set>
</d:propertyupdate>';
$this->featureContext->setResponse(
$this->sendProppatchRequest(
$fullUrl,
$user,
$this->featureContext->getPasswordForUser($user),
$this->featureContext->getStepLineRef(),
[],
$body
)
);
$this->setSpaceIDByName($user, $spaceName);
$this->favoritesContext->userFavoritesElement($user, $path);
}
}