Merge pull request #3879 from nextcloud/downstream-26915
Added integration tests for sharees using v2.php
This commit is contained in:
commit
49d0507f5d
10
.drone.yml
10
.drone.yml
|
@ -387,6 +387,15 @@ pipeline:
|
|||
when:
|
||||
matrix:
|
||||
TESTS: integration-sharees-features
|
||||
integration-sharees-v2-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh sharees_features/sharees_provisioningapiv2.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-sharees-v2-features
|
||||
integration-setup-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
|
@ -487,6 +496,7 @@ matrix:
|
|||
- TESTS: integration-provisioning-v2
|
||||
- TESTS: integration-webdav-related
|
||||
- TESTS: integration-sharees-features
|
||||
- TESTS: integration-sharees-v2-features
|
||||
- TESTS: integration-setup-features
|
||||
- TESTS: integration-filesdrop-features
|
||||
- TESTS: integration-transfer-ownership-features
|
||||
|
|
|
@ -164,7 +164,7 @@ class GroupsController extends OCSController {
|
|||
throw new OCSException('', 102);
|
||||
}
|
||||
|
||||
return new DataResponse(null, 100);
|
||||
return new DataResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -62,13 +62,17 @@ trait AppConfiguration {
|
|||
$body = new \Behat\Gherkin\Node\TableNode([['value', $value]]);
|
||||
$this->sendingToWith('post', "/apps/testing/api/v1/app/{$app}/{$parameter}", $body);
|
||||
$this->theHTTPStatusCodeShouldBe('200');
|
||||
$this->theOCSStatusCodeShouldBe('100');
|
||||
if ($this->apiVersion === 1) {
|
||||
$this->theOCSStatusCodeShouldBe('100');
|
||||
}
|
||||
}
|
||||
|
||||
protected function setStatusTestingApp($enabled) {
|
||||
$this->sendingTo(($enabled ? 'post' : 'delete'), '/cloud/apps/testing');
|
||||
$this->theHTTPStatusCodeShouldBe('200');
|
||||
$this->theOCSStatusCodeShouldBe('100');
|
||||
if ($this->apiVersion === 1) {
|
||||
$this->theOCSStatusCodeShouldBe('100');
|
||||
}
|
||||
|
||||
$this->sendingTo('get', '/cloud/apps?filter=enabled');
|
||||
$this->theHTTPStatusCodeShouldBe('200');
|
||||
|
|
|
@ -83,11 +83,11 @@ trait BasicStructure {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Given /^using api version "([^"]*)"$/
|
||||
* @Given /^using api version "(\d+)"$/
|
||||
* @param string $version
|
||||
*/
|
||||
public function usingApiVersion($version) {
|
||||
$this->apiVersion = $version;
|
||||
$this->apiVersion = (int) $version;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -331,6 +331,12 @@ trait Provisioning {
|
|||
];
|
||||
|
||||
$this->response = $client->send($client->createRequest("DELETE", $fullUrl, $options));
|
||||
|
||||
if ($this->currentServer === 'LOCAL'){
|
||||
unset($this->createdGroups[$group]);
|
||||
} elseif ($this->currentServer === 'REMOTE') {
|
||||
unset($this->createdRemoteGroups[$group]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -748,7 +754,7 @@ trait Provisioning {
|
|||
}
|
||||
$this->usingServer('REMOTE');
|
||||
foreach($this->createdRemoteGroups as $remoteGroup) {
|
||||
$this->deleteUser($remoteGroup);
|
||||
$this->deleteGroup($remoteGroup);
|
||||
}
|
||||
$this->usingServer($previousServer);
|
||||
}
|
||||
|
|
|
@ -133,4 +133,3 @@ Feature: favorite
|
|||
Then user "user0" in folder "/subfolder" should have favorited the following elements
|
||||
| /subfolder/textfile0.txt |
|
||||
| /subfolder/textfile2.txt |
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ RESULT=$?
|
|||
kill $PHPPID
|
||||
kill $PHPPID_FED
|
||||
|
||||
if [ "$INSTALLED" -eq "true" ]; then
|
||||
if [ "$INSTALLED" == "true" ]; then
|
||||
|
||||
$OCC files_external:delete -y $ID_STORAGE
|
||||
|
||||
|
|
|
@ -0,0 +1,240 @@
|
|||
Feature: sharees_provisioningapiv2
|
||||
Background:
|
||||
Given using api version "2"
|
||||
And user "test" exists
|
||||
And user "Sharee1" exists
|
||||
And group "ShareeGroup" exists
|
||||
And user "test" belongs to group "ShareeGroup"
|
||||
|
||||
Scenario: Search without exact match
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | Sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search without exact match not-exact casing
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search only with group members - denied
|
||||
Given As an "test"
|
||||
And parameter "shareapi_only_share_with_group_members" of app "core" is set to "yes"
|
||||
When getting sharees for
|
||||
| search | sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned is empty
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search only with group members - allowed
|
||||
Given As an "test"
|
||||
And parameter "shareapi_only_share_with_group_members" of app "core" is set to "yes"
|
||||
And user "Sharee1" belongs to group "ShareeGroup"
|
||||
When getting sharees for
|
||||
| search | sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search only with group members - no group as non-member
|
||||
Given As an "Sharee1"
|
||||
And parameter "shareapi_only_share_with_group_members" of app "core" is set to "yes"
|
||||
When getting sharees for
|
||||
| search | sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned is empty
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned is empty
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search without exact match no iteration allowed
|
||||
Given As an "test"
|
||||
And parameter "shareapi_allow_share_dialog_user_enumeration" of app "core" is set to "no"
|
||||
When getting sharees for
|
||||
| search | Sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned is empty
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned is empty
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with exact match no iteration allowed
|
||||
Given As an "test"
|
||||
And parameter "shareapi_allow_share_dialog_user_enumeration" of app "core" is set to "no"
|
||||
When getting sharees for
|
||||
| search | Sharee1 |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
And "users" sharees returned is empty
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned is empty
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with exact match group no iteration allowed
|
||||
Given As an "test"
|
||||
And parameter "shareapi_allow_share_dialog_user_enumeration" of app "core" is set to "no"
|
||||
When getting sharees for
|
||||
| search | ShareeGroup |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned is empty
|
||||
And "exact groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
And "groups" sharees returned is empty
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with exact match
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | Sharee1 |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned is empty
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned is empty
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with exact match not-exact casing
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | sharee1 |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned is empty
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned is empty
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with exact match not-exact casing group
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | shareegroup |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned is empty
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned are
|
||||
| ShareeGroup | 1 | ShareeGroup |
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned is empty
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Search with "self"
|
||||
Given As an "Sharee1"
|
||||
When getting sharees for
|
||||
| search | Sharee1 |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned is empty
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned is empty
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Remote sharee for files
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | test@localhost |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned is empty
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned is empty
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned are
|
||||
| test@localhost | 6 | test@localhost |
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Remote sharee for calendars not allowed
|
||||
Given As an "test"
|
||||
When getting sharees for
|
||||
| search | test@localhost |
|
||||
| itemType | calendar |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
Then "exact users" sharees returned is empty
|
||||
Then "users" sharees returned is empty
|
||||
Then "exact groups" sharees returned is empty
|
||||
Then "groups" sharees returned is empty
|
||||
Then "exact remotes" sharees returned is empty
|
||||
Then "remotes" sharees returned is empty
|
||||
|
||||
Scenario: Group sharees not returned when group sharing is disabled
|
||||
Given As an "test"
|
||||
And parameter "shareapi_allow_group_sharing" of app "core" is set to "no"
|
||||
When getting sharees for
|
||||
| search | sharee |
|
||||
| itemType | file |
|
||||
Then the OCS status code should be "200"
|
||||
And the HTTP status code should be "200"
|
||||
And "exact users" sharees returned is empty
|
||||
And "users" sharees returned are
|
||||
| Sharee1 | 0 | Sharee1 |
|
||||
And "exact groups" sharees returned is empty
|
||||
And "groups" sharees returned is empty
|
||||
And "exact remotes" sharees returned is empty
|
||||
And "remotes" sharees returned is empty
|
Loading…
Reference in New Issue