Skip to content

Commit

Permalink
add tests for file version with OCIS_DISABLE_VERSIONING config
Browse files Browse the repository at this point in the history
  • Loading branch information
amrita-shrestha committed Sep 30, 2024
1 parent fa80fbe commit af8c3b9
Show file tree
Hide file tree
Showing 5 changed files with 140 additions and 12 deletions.
1 change: 1 addition & 0 deletions .drone.star
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ config = {
"apiSharingNgLinkSharePermission",
"apiSharingNgLinkShareRoot",
"apiActivities",
"apiVersions",
],
"skip": False,
},
Expand Down
46 changes: 36 additions & 10 deletions tests/acceptance/bootstrap/FilesVersionsContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,25 @@
*/
class FilesVersionsContext implements Context {
private FeatureContext $featureContext;
private SpacesContext $spacesContext;

/**
* This will run before EVERY scenario.
* It will set the properties for this object.
*
* @BeforeScenario
*
* @param BeforeScenarioScope $scope
*
* @return void
*/
public function before(BeforeScenarioScope $scope):void {
// Get the environment
$environment = $scope->getEnvironment();
// Get all the contexts you need in this context
$this->featureContext = $environment->getContext('FeatureContext');
$this->spacesContext = $environment->getContext('SpacesContext');
}

/**
* @param string $fileId
Expand Down Expand Up @@ -549,19 +568,26 @@ public function listVersionFolder(
}

/**
* This will run before EVERY scenario.
* It will set the properties for this object.
* @When user :user gets the number of versions of file :file inside space :space
* @When user :user tries to get the number of versions of file :file inside space :space
*
* @BeforeScenario
*
* @param BeforeScenarioScope $scope
* @param string $user
* @param string $file
* @param string $space
*
* @return void
*/
public function before(BeforeScenarioScope $scope):void {
// Get the environment
$environment = $scope->getEnvironment();
// Get all the contexts you need in this context
$this->featureContext = $environment->getContext('FeatureContext');
public function userGetsTheNumberOfVersionsOfFileInsideSpace(string $user, string $file, string $space): void {
$fileId = $this->spacesContext->getFileId($user, $space, $file);
$response = $this->featureContext->makeDavRequest(
$user,
"PROPFIND",
"/meta/$fileId/v",
null,
null,
null,
'2'
);
$this->featureContext->setResponse($response);
}
}
9 changes: 9 additions & 0 deletions tests/acceptance/config/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,15 @@ default:
- CollaborationContext:
- TrashbinContext:

apiVersions:
paths:
- "%paths.base%/../features/apiVersions"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params
- SharingNgContext:
- FilesVersionsContext:
- OcisConfigContext:

cliCommands:
paths:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Feature: checking file versions using file id
As a user
I want to share file outside of the space
So that other users can access the file
I want the versions of files to be available
So that I can manage the changes made to the files

Background:
Given these users have been created with default attributes and without skeleton files:
Expand Down
92 changes: 92 additions & 0 deletions tests/acceptance/features/apiVersions/fileVersion.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
@env-config
Feature: checking file versions
As a user
I want the versions of files to be available
So that I can manage the changes made to the files

Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And using spaces DAV path


Scenario: check version of a file when versioning is disabled
Given the config "OCIS_DISABLE_VERSIONING" has been set to "true"
And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt"
And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt"
When user "Alice" gets the number of versions of file "/testfile.txt"
Then the HTTP status code should be "207"
And the number of versions should be "0"


Scenario: first disable versioning and create version of a file, then enabling versioning to check file version
Given the config "OCIS_DISABLE_VERSIONING" has been set to "true"
And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt"
And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt"
And the config "OCIS_DISABLE_VERSIONING" has been set to "false"
And user "Alice" has uploaded file with content "test file version 3" to "/testfile.txt"
And user "Alice" has uploaded file with content "test file version 4" to "/testfile.txt"
When user "Alice" gets the number of versions of file "/testfile.txt"
Then the HTTP status code should be "207"
And the number of versions should be "2"


Scenario: file version should not updated after versioning disabled
Given user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt"
And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt"
When user "Alice" gets the number of versions of file "/testfile.txt"
Then the HTTP status code should be "207"
And the number of versions should be "1"
And the config "OCIS_DISABLE_VERSIONING" has been set to "true"
And user "Alice" has uploaded file with content "test file version 3" to "/testfile.txt"
And user "Alice" has uploaded file with content "test file version 4" to "/testfile.txt"
When user "Alice" gets the number of versions of file "/testfile.txt"
Then the HTTP status code should be "207"
And the number of versions should be "1"


Scenario Outline: check version of a file shared from project space when versioning is disabled
Given the config "OCIS_DISABLE_VERSIONING" has been set to "true"
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "Project1" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "Project1" with content "hello world version 1" to "text.txt"
And user "Alice" has uploaded a file inside space "Project1" with content "hello world version 1.1" to "text.txt"
And user "Alice" has sent the following resource share invitation:
| resource | text.txt |
| space | Project1 |
| sharee | Brian |
| shareType | user |
| permissionsRole | <role> |
And user "Brian" has a share "text.txt" synced
When user "Alice" gets the number of versions of file "/text.txt" inside space "Project1"
Then the HTTP status code should be "207"
And the number of versions should be "0"
When user "Brian" tries to get the number of versions of file "/text.txt" inside space "Shares"
Then the HTTP status code should be "403"
Examples:
| role |
| File Editor |
| Viewer |


Scenario Outline: check version of a file shared from personal space when versioning is disabled
Given the config "OCIS_DISABLE_VERSIONING" has been set to "true"
And user "Alice" has uploaded file with content "test file version 2" to "/text.txt"
And user "Alice" has sent the following resource share invitation:
| resource | text.txt |
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | <permissionsRole> |
And user "Brian" has a share "text.txt" synced
When user "Alice" gets the number of versions of file "/text.txt" inside space "Personal"
Then the HTTP status code should be "207"
And the number of versions should be "0"
When user "Brian" tries to get the number of versions of file "/text.txt" inside space "Shares"
Then the HTTP status code should be "403"
Examples:
| permissionsRole |
| File Editor |
| Viewer |

0 comments on commit af8c3b9

Please sign in to comment.