add tests to check 425 too early behavior

add tests to check 425 too early behavior

add delay postprocessing suite pipeline

add step def
This commit is contained in:
Saw-jan
2023-01-06 11:47:35 +05:45
parent c37d76ffbf
commit 335144e50b
6 changed files with 165 additions and 19 deletions
+16
View File
@@ -152,6 +152,22 @@ default:
- OCSContext:
- TrashbinContext:
apiAsyncUpload:
paths:
- '%paths.base%/../features/apiAsyncUpload'
context: *common_ldap_suite_context
contexts:
- SpacesContext:
- FeatureContext: *common_feature_context_params
- OccContext:
- WebDavPropertiesContext:
- FavoritesContext:
- ChecksumContext:
- FilesVersionsContext:
- OCSContext:
- TrashbinContext:
extensions:
rdx\behatvars\BehatVariablesExtension: ~
@@ -93,3 +93,13 @@ The expected failures in this file are from features in the owncloud/ocis repo.
#### [A User can get information of another user with Graph API](https://github.com/owncloud/ocis/issues/5125)
- [apiGraph/getUser.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiGraph/getUser.feature#L23)
#### [GET a file while it's in processing doesn't return 425 code (async uploads)](https://github.com/owncloud/ocis/issues/5326)
- [apiAsyncUpload/delayPostprocessing.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L14)
- [apiAsyncUpload/delayPostprocessing.feature:15](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L15)
- [apiAsyncUpload/delayPostprocessing.feature:16](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L16)
#### [PROPFIND a file while it's in processing doesn't return 425 code (async uploads)](https://github.com/owncloud/ocis/issues/5327)
- [apiAsyncUpload/delayPostprocessing.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L24)
- [apiAsyncUpload/delayPostprocessing.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L25)
- [apiAsyncUpload/delayPostprocessing.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAsyncUpload/delayPostprocessing.feature#L26)
@@ -0,0 +1,26 @@
@api
Feature: delay post-processing of uploaded files
Background:
Given user "Alice" has been created with default attributes and without skeleton files
And user "Alice" has uploaded file with content "uploaded content" to "/file.txt"
Scenario Outline: user sends GET request to the file while it's still being processed
When user "Alice" requests "<dav_path>" with "GET" without retrying
Then the HTTP status code should be "425"
Examples:
| dav_path |
| /remote.php/webdav/file.txt |
| /remote.php/dav/files/%username%/file.txt |
| /dav/spaces/%spaceid%/file.txt |
Scenario Outline: user sends PROPFIND request to the file while it's still being processed
When user "Alice" requests "<dav_path>" with "PROPFIND" without retrying
Then the HTTP status code should be "425"
Examples:
| dav_path |
| /remote.php/webdav/file.txt |
| /remote.php/dav/files/%username%/file.txt |
| /dav/spaces/%spaceid%/file.txt |
@@ -1155,4 +1155,34 @@ class AuthContext implements Context {
$this->tokenAuthHasBeenSetTo = '';
}
}
/**
* @When user :user requests :endpoint with :method without retrying
*
* @param string $user
* @param string $endpoint
* @param string $method
*
* @return void
*/
public function userRequestsURLWithoutRetry(
string $user,
string $endpoint,
string $method
):void {
$username = $this->featureContext->getActualUsername($user);
$endpoint = $this->featureContext->substituteInLineCodes(
$endpoint,
$username
);
$fullUrl = $this->featureContext->getBaseUrl() . $endpoint;
$response = HttpRequestHelper::sendRequestOnce(
$fullUrl,
$this->featureContext->getStepLineRef(),
$method,
$username,
$this->featureContext->getPasswordForUser($user)
);
$this->featureContext->setResponse($response);
}
}