Skip to content

Commit

Permalink
Merge pull request #4492 from owncloud/reuseCodeFromCodeForFavourites
Browse files Browse the repository at this point in the history
[tests-only][full-ci]Reuse code from code for `favorites.feature` in ocis
  • Loading branch information
amrita-shrestha authored Sep 5, 2022
2 parents c87de76 + 84c4806 commit e27e5a2
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 44 deletions.
2 changes: 1 addition & 1 deletion .drone.env
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 1 addition & 0 deletions tests/acceptance/config/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ default:
- FilesVersionsContext:
- OCSContext:
- PublicWebDavContext:
- FavoritesContext:
- TrashbinContext:
- WebDavPropertiesContext:

Expand Down
66 changes: 23 additions & 43 deletions tests/acceptance/features/bootstrap/SpacesContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ class SpacesContext implements Context {
*/
private WebDavPropertiesContext $webDavPropertiesContext;

/**
* @var FavoritesContext
*/
private FavoritesContext $favoritesContext;

/**
* @var string
*/
Expand Down Expand Up @@ -264,6 +269,21 @@ public function getSpaceByName(string $user, string $spaceName): array {
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
*
Expand Down Expand Up @@ -430,6 +450,7 @@ public function setUpScenario(BeforeScenarioScope $scope): void {
$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(), "/");
Expand Down Expand Up @@ -618,28 +639,6 @@ public function sendCreateFolderRequest(
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 "([^"]*)"$/
Expand Down Expand Up @@ -3275,26 +3274,7 @@ public function asUserFileInsideSpaceShouldContainAPropertyWithValue(
* @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);
}
}

0 comments on commit e27e5a2

Please sign in to comment.