Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-03-24 01:12:24 +0300
committerGitHub <noreply@github.com>2017-03-24 01:12:24 +0300
commit49d0507f5d1954a439a69f4d1a4e94a8cc2981dd (patch)
treeef056f3e0c36306297140982241271219c1688aa /build
parent71c80433c2921d13c4dc35f5dad7fba2efe00ba5 (diff)
parent3c1e7e5ada0710988cb6ff498ae430d9718179c4 (diff)
Merge pull request #3879 from nextcloud/downstream-26915
Added integration tests for sharees using v2.php
Diffstat (limited to 'build')
-rw-r--r--build/integration/features/bootstrap/AppConfiguration.php8
-rw-r--r--build/integration/features/bootstrap/BasicStructure.php4
-rw-r--r--build/integration/features/bootstrap/Provisioning.php8
-rw-r--r--build/integration/features/favorites.feature1
-rwxr-xr-xbuild/integration/run.sh2
-rw-r--r--build/integration/sharees_features/sharees_provisioningapiv2.feature240
6 files changed, 256 insertions, 7 deletions
diff --git a/build/integration/features/bootstrap/AppConfiguration.php b/build/integration/features/bootstrap/AppConfiguration.php
index 2f84dce3f1b..39fee5e361a 100644
--- a/build/integration/features/bootstrap/AppConfiguration.php
+++ b/build/integration/features/bootstrap/AppConfiguration.php
@@ -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');
diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php
index 8961efc6f31..ec23916d614 100644
--- a/build/integration/features/bootstrap/BasicStructure.php
+++ b/build/integration/features/bootstrap/BasicStructure.php
@@ -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;
}
/**
diff --git a/build/integration/features/bootstrap/Provisioning.php b/build/integration/features/bootstrap/Provisioning.php
index 0055ff15de0..2e17508120c 100644
--- a/build/integration/features/bootstrap/Provisioning.php
+++ b/build/integration/features/bootstrap/Provisioning.php
@@ -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);
}
diff --git a/build/integration/features/favorites.feature b/build/integration/features/favorites.feature
index 9722948dac2..3f90b7b42b7 100644
--- a/build/integration/features/favorites.feature
+++ b/build/integration/features/favorites.feature
@@ -133,4 +133,3 @@ Feature: favorite
Then user "user0" in folder "/subfolder" should have favorited the following elements
| /subfolder/textfile0.txt |
| /subfolder/textfile2.txt |
-
diff --git a/build/integration/run.sh b/build/integration/run.sh
index f423c3e6fb7..282a4303395 100755
--- a/build/integration/run.sh
+++ b/build/integration/run.sh
@@ -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
diff --git a/build/integration/sharees_features/sharees_provisioningapiv2.feature b/build/integration/sharees_features/sharees_provisioningapiv2.feature
new file mode 100644
index 00000000000..37ab896ee28
--- /dev/null
+++ b/build/integration/sharees_features/sharees_provisioningapiv2.feature
@@ -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