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:
|
when:
|
||||||
matrix:
|
matrix:
|
||||||
TESTS: integration-sharees-features
|
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:
|
integration-setup-features:
|
||||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||||
commands:
|
commands:
|
||||||
|
@ -487,6 +496,7 @@ matrix:
|
||||||
- TESTS: integration-provisioning-v2
|
- TESTS: integration-provisioning-v2
|
||||||
- TESTS: integration-webdav-related
|
- TESTS: integration-webdav-related
|
||||||
- TESTS: integration-sharees-features
|
- TESTS: integration-sharees-features
|
||||||
|
- TESTS: integration-sharees-v2-features
|
||||||
- TESTS: integration-setup-features
|
- TESTS: integration-setup-features
|
||||||
- TESTS: integration-filesdrop-features
|
- TESTS: integration-filesdrop-features
|
||||||
- TESTS: integration-transfer-ownership-features
|
- TESTS: integration-transfer-ownership-features
|
||||||
|
|
|
@ -164,7 +164,7 @@ class GroupsController extends OCSController {
|
||||||
throw new OCSException('', 102);
|
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]]);
|
$body = new \Behat\Gherkin\Node\TableNode([['value', $value]]);
|
||||||
$this->sendingToWith('post', "/apps/testing/api/v1/app/{$app}/{$parameter}", $body);
|
$this->sendingToWith('post', "/apps/testing/api/v1/app/{$app}/{$parameter}", $body);
|
||||||
$this->theHTTPStatusCodeShouldBe('200');
|
$this->theHTTPStatusCodeShouldBe('200');
|
||||||
$this->theOCSStatusCodeShouldBe('100');
|
if ($this->apiVersion === 1) {
|
||||||
|
$this->theOCSStatusCodeShouldBe('100');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setStatusTestingApp($enabled) {
|
protected function setStatusTestingApp($enabled) {
|
||||||
$this->sendingTo(($enabled ? 'post' : 'delete'), '/cloud/apps/testing');
|
$this->sendingTo(($enabled ? 'post' : 'delete'), '/cloud/apps/testing');
|
||||||
$this->theHTTPStatusCodeShouldBe('200');
|
$this->theHTTPStatusCodeShouldBe('200');
|
||||||
$this->theOCSStatusCodeShouldBe('100');
|
if ($this->apiVersion === 1) {
|
||||||
|
$this->theOCSStatusCodeShouldBe('100');
|
||||||
|
}
|
||||||
|
|
||||||
$this->sendingTo('get', '/cloud/apps?filter=enabled');
|
$this->sendingTo('get', '/cloud/apps?filter=enabled');
|
||||||
$this->theHTTPStatusCodeShouldBe('200');
|
$this->theHTTPStatusCodeShouldBe('200');
|
||||||
|
|
|
@ -83,11 +83,11 @@ trait BasicStructure {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Given /^using api version "([^"]*)"$/
|
* @Given /^using api version "(\d+)"$/
|
||||||
* @param string $version
|
* @param string $version
|
||||||
*/
|
*/
|
||||||
public function usingApiVersion($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));
|
$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');
|
$this->usingServer('REMOTE');
|
||||||
foreach($this->createdRemoteGroups as $remoteGroup) {
|
foreach($this->createdRemoteGroups as $remoteGroup) {
|
||||||
$this->deleteUser($remoteGroup);
|
$this->deleteGroup($remoteGroup);
|
||||||
}
|
}
|
||||||
$this->usingServer($previousServer);
|
$this->usingServer($previousServer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,4 +133,3 @@ Feature: favorite
|
||||||
Then user "user0" in folder "/subfolder" should have favorited the following elements
|
Then user "user0" in folder "/subfolder" should have favorited the following elements
|
||||||
| /subfolder/textfile0.txt |
|
| /subfolder/textfile0.txt |
|
||||||
| /subfolder/textfile2.txt |
|
| /subfolder/textfile2.txt |
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ RESULT=$?
|
||||||
kill $PHPPID
|
kill $PHPPID
|
||||||
kill $PHPPID_FED
|
kill $PHPPID_FED
|
||||||
|
|
||||||
if [ "$INSTALLED" -eq "true" ]; then
|
if [ "$INSTALLED" == "true" ]; then
|
||||||
|
|
||||||
$OCC files_external:delete -y $ID_STORAGE
|
$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