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 Oct 22, 2024
1 parent 3f71d37 commit 8cc13a2
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 12 deletions.
47 changes: 37 additions & 10 deletions tests/acceptance/bootstrap/FilesVersionsContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,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 = BehatHelper::getContext($scope, $environment, 'FeatureContext');
$this->spacesContext = BehatHelper::getContext($scope, $environment, 'SpacesContext');
}

/**
* @When user :user tries to get versions of file :file from :fileOwner
Expand Down Expand Up @@ -547,19 +566,27 @@ public function listVersionFolder(
}

/**
* This will run before EVERY scenario.
* It will set the properties for this object.
*
* @BeforeScenario
* @When user :user gets the number of versions of file :file from space :space
* @When user :user tries to get the number of versions of file :file from space :space
*
* @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 = BehatHelper::getContext($scope, $environment, 'FeatureContext');
public function userGetsTheNumberOfVersionsOfFileFromSpace(string $user, string $file, string $space): void {
$fileId = $this->spacesContext->getFileId($user, $space, $file);
$this->featureContext->setResponse(
$this->featureContext->makeDavRequest(
$user,
"PROPFIND",
$fileId,
null,
null,
null,
"versions"
)
);
}
}
1 change: 1 addition & 0 deletions tests/acceptance/config/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,7 @@ default:
- WebDavPropertiesContext:
- TrashbinContext:
- SharingNgContext:
- OcisConfigContext:

coreApiWebdavDelete:
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
@env-config @skipOnReva
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 number 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: file version number should not be added after disabling versioning
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"
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: sharee tries to check version number 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 "Brian" tries to get the number of versions of file "/text.txt" from space "Shares"
Then the HTTP status code should be "403"
Examples:
| role |
| File Editor |
| Viewer |


Scenario Outline: sharee tries to check version number 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 "Brian" tries to get the number of versions of file "/text.txt" from space "Shares"
Then the HTTP status code should be "403"
Examples:
| permissionsRole |
| File Editor |
| Viewer |


Scenario: check file version number after disabling versioning, creating versions and then enabling versioning
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"

0 comments on commit 8cc13a2

Please sign in to comment.