Pārlūkot izejas kodu

Merge pull request #3879 from nextcloud/downstream-26915

Added integration tests for sharees using v2.php
tags/v12.0.0beta1
Morris Jobke pirms 7 gadiem
vecāks
revīzija
49d0507f5d

+ 10
- 0
.drone.yml Parādīt failu

@@ -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

+ 1
- 1
apps/provisioning_api/lib/Controller/GroupsController.php Parādīt failu

@@ -164,7 +164,7 @@ class GroupsController extends OCSController {
throw new OCSException('', 102);
}

return new DataResponse(null, 100);
return new DataResponse();
}

/**

+ 6
- 2
build/integration/features/bootstrap/AppConfiguration.php Parādīt failu

@@ -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');

+ 2
- 2
build/integration/features/bootstrap/BasicStructure.php Parādīt failu

@@ -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;
}

/**

+ 7
- 1
build/integration/features/bootstrap/Provisioning.php Parādīt failu

@@ -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);
}

+ 0
- 1
build/integration/features/favorites.feature Parādīt failu

@@ -133,4 +133,3 @@ Feature: favorite
Then user "user0" in folder "/subfolder" should have favorited the following elements
| /subfolder/textfile0.txt |
| /subfolder/textfile2.txt |


+ 1
- 1
build/integration/run.sh Parādīt failu

@@ -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


+ 240
- 0
build/integration/sharees_features/sharees_provisioningapiv2.feature Parādīt failu

@@ -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

Notiek ielāde…
Atcelt
Saglabāt