summaryrefslogtreecommitdiffstats
path: root/tests/lib/OCS
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2016-05-20 15:38:20 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-05-20 15:38:20 +0200
commit94ad54ec9b96d41a614fbbad4a97b34c41a6901f (patch)
treef3eb7cdda2704aaf0cd59d58efe66bcbd34cb67d /tests/lib/OCS
parent2ef751b1ec28f7b5c7113af60ec8c9fa0ae1cf87 (diff)
downloadnextcloud-server-94ad54ec9b96d41a614fbbad4a97b34c41a6901f.tar.gz
nextcloud-server-94ad54ec9b96d41a614fbbad4a97b34c41a6901f.zip
Move tests/ to PSR-4 (#24731)
* Move a-b to PSR-4 * Move c-d to PSR-4 * Move e+g to PSR-4 * Move h-l to PSR-4 * Move m-r to PSR-4 * Move s-u to PSR-4 * Move files/ to PSR-4 * Move remaining tests to PSR-4 * Remove Test\ from old autoloader
Diffstat (limited to 'tests/lib/OCS')
-rw-r--r--tests/lib/OCS/MapStatusCodeTest.php44
-rw-r--r--tests/lib/OCS/PrivatedataTest.php172
-rw-r--r--tests/lib/OCS/ProviderTest.php178
3 files changed, 394 insertions, 0 deletions
diff --git a/tests/lib/OCS/MapStatusCodeTest.php b/tests/lib/OCS/MapStatusCodeTest.php
new file mode 100644
index 00000000000..27ebfe209f7
--- /dev/null
+++ b/tests/lib/OCS/MapStatusCodeTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\OCS;
+
+use OCP\AppFramework\Http;
+
+class MapStatusCodeTest extends \Test\TestCase {
+
+ /**
+ * @dataProvider providesStatusCodes
+ */
+ public function testStatusCodeMapper($expected, $sc) {
+ $result = \OC_API::mapStatusCodes($sc);
+ $this->assertEquals($expected, $result);
+ }
+
+ public function providesStatusCodes() {
+ return [
+ [Http::STATUS_OK, 100],
+ [Http::STATUS_BAD_REQUEST, 104],
+ [Http::STATUS_BAD_REQUEST, 1000],
+ [201, 201],
+ ];
+ }
+}
diff --git a/tests/lib/OCS/PrivatedataTest.php b/tests/lib/OCS/PrivatedataTest.php
new file mode 100644
index 00000000000..0b3b23b8804
--- /dev/null
+++ b/tests/lib/OCS/PrivatedataTest.php
@@ -0,0 +1,172 @@
+<?php
+ /**
+ * ownCloud
+ *
+ * @author Thomas Müller
+ * @copyright 2013 Thomas Müller deepdiver@owncloud.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Test\OCS;
+
+use OC_OCS_Privatedata;
+
+/**
+ * Class PrivatedataTest
+ *
+ * @group DB
+ */
+class PrivatedataTest extends \Test\TestCase {
+ private $appKey;
+
+ protected function setUp() {
+ parent::setUp();
+ \OC::$server->getSession()->set('user_id', 'user1');
+ $this->appKey = $this->getUniqueID('app');
+ }
+
+ public function testGetEmptyOne() {
+ $params = array('app' => $this->appKey, 'key' => '123');
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(0, $result);
+ }
+
+ public function testGetEmptyAll() {
+ $params = array('app' => $this->appKey);
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(0, $result);
+ }
+
+ public function testSetOne() {
+ $_POST = array('value' => 123456789);
+ $params = array('app' => $this->appKey, 'key' => 'k-1');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(1, $result);
+ }
+
+ public function testSetExisting() {
+ $_POST = array('value' => 123456789);
+ $params = array('app' => $this->appKey, 'key' => 'k-10');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(1, $result);
+ $data = $result->getData();
+ $data = $data[0];
+ $this->assertEquals('123456789', $data['value']);
+
+ $_POST = array('value' => 'updated');
+ $params = array('app' => $this->appKey, 'key' => 'k-10');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(1, $result);
+ $data = $result->getData();
+ $data = $data[0];
+ $this->assertEquals('updated', $data['value']);
+ }
+
+ public function testSetSameValue() {
+ $_POST = array('value' => 123456789);
+ $params = array('app' => $this->appKey, 'key' => 'k-10');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(1, $result);
+ $data = $result->getData();
+ $data = $data[0];
+ $this->assertEquals('123456789', $data['value']);
+
+ // set the same value again
+ $_POST = array('value' => 123456789);
+ $params = array('app' => $this->appKey, 'key' => 'k-10');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(1, $result);
+ $data = $result->getData();
+ $data = $data[0];
+ $this->assertEquals('123456789', $data['value']);
+ }
+
+ public function testSetMany() {
+ $_POST = array('value' => 123456789);
+
+ // set key 'k-1'
+ $params = array('app' => $this->appKey, 'key' => 'k-1');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ // set key 'k-2'
+ $params = array('app' => $this->appKey, 'key' => 'k-2');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ // query for all
+ $params = array('app' => $this->appKey);
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(2, $result);
+ }
+
+ public function testDelete() {
+ $_POST = array('value' => 123456789);
+
+ // set key 'k-1'
+ $params = array('app' => $this->appKey, 'key' => 'k-3');
+ $result = OC_OCS_Privatedata::set($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::delete($params);
+ $this->assertEquals(100, $result->getStatusCode());
+
+ $result = OC_OCS_Privatedata::get($params);
+ $this->assertOcsResult(0, $result);
+ }
+
+ /**
+ * @dataProvider deleteWithEmptyKeysProvider
+ */
+ public function testDeleteWithEmptyKeys($params) {
+ $result = OC_OCS_Privatedata::delete($params);
+ $this->assertEquals(101, $result->getStatusCode());
+ }
+
+ public function deleteWithEmptyKeysProvider() {
+ return array(
+ array(array()),
+ array(array('app' => '123')),
+ array(array('key' => '123')),
+ );
+ }
+
+ /**
+ * @param \OC_OCS_Result $result
+ * @param integer $expectedArraySize
+ */
+ public function assertOcsResult($expectedArraySize, $result) {
+ $this->assertEquals(100, $result->getStatusCode());
+ $data = $result->getData();
+ $this->assertTrue(is_array($data));
+ $this->assertEquals($expectedArraySize, sizeof($data));
+ }
+}
diff --git a/tests/lib/OCS/ProviderTest.php b/tests/lib/OCS/ProviderTest.php
new file mode 100644
index 00000000000..399fd3933d9
--- /dev/null
+++ b/tests/lib/OCS/ProviderTest.php
@@ -0,0 +1,178 @@
+<?php
+/**
+ * @author Lukas Reschke <lukas@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\OCS;
+
+use OC\OCS\Provider;
+
+class ProviderTest extends \Test\TestCase {
+ /** @var \OCP\IRequest */
+ private $request;
+ /** @var \OCP\App\IAppManager */
+ private $appManager;
+ /** @var Provider */
+ private $ocsProvider;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->request = $this->getMockBuilder('\\OCP\\IRequest')->getMock();
+ $this->appManager = $this->getMockBuilder('\\OCP\\App\\IAppManager')->getMock();
+ $this->ocsProvider = new Provider('ocs_provider', $this->request, $this->appManager);
+ }
+
+ public function testBuildProviderListWithoutAnythingEnabled() {
+ $this->appManager
+ ->expects($this->at(0))
+ ->method('isEnabledForUser')
+ ->with('files_sharing')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(1))
+ ->method('isEnabledForUser')
+ ->with('activity')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(2))
+ ->method('isEnabledForUser')
+ ->with('provisioning_api')
+ ->will($this->returnValue(false));
+
+ $expected = new \OCP\AppFramework\Http\JSONResponse(
+ [
+ 'version' => 2,
+ 'services' => [
+ 'PRIVATE_DATA' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'store' => '/ocs/v2.php/privatedata/setattribute',
+ 'read' => '/ocs/v2.php/privatedata/getattribute',
+ 'delete' => '/ocs/v2.php/privatedata/deleteattribute',
+ ],
+ ],
+ ],
+ ]
+ );
+
+ $this->assertEquals($expected, $this->ocsProvider->buildProviderList());
+ }
+
+ public function testBuildProviderListWithSharingEnabled() {
+ $this->appManager
+ ->expects($this->at(0))
+ ->method('isEnabledForUser')
+ ->with('files_sharing')
+ ->will($this->returnValue(true));
+ $this->appManager
+ ->expects($this->at(1))
+ ->method('isEnabledForUser')
+ ->with('activity')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(2))
+ ->method('isEnabledForUser')
+ ->with('provisioning_api')
+ ->will($this->returnValue(false));
+
+ $expected = new \OCP\AppFramework\Http\JSONResponse(
+ [
+ 'version' => 2,
+ 'services' => [
+ 'PRIVATE_DATA' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'store' => '/ocs/v2.php/privatedata/setattribute',
+ 'read' => '/ocs/v2.php/privatedata/getattribute',
+ 'delete' => '/ocs/v2.php/privatedata/deleteattribute',
+ ],
+ ],
+ 'FEDERATED_SHARING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'share' => '/ocs/v2.php/cloud/shares',
+ 'webdav' => '/public.php/webdav/',
+ ],
+ ],
+ 'SHARING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'share' => '/ocs/v2.php/apps/files_sharing/api/v1/shares',
+ ],
+ ],
+ ],
+ ]
+ );
+
+ $this->assertEquals($expected, $this->ocsProvider->buildProviderList());
+ }
+
+ public function testBuildProviderListWithEverythingEnabled() {
+ $this->appManager
+ ->expects($this->any())
+ ->method('isEnabledForUser')
+ ->will($this->returnValue(true));
+
+ $expected = new \OCP\AppFramework\Http\JSONResponse(
+ [
+ 'version' => 2,
+ 'services' => [
+ 'PRIVATE_DATA' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'store' => '/ocs/v2.php/privatedata/setattribute',
+ 'read' => '/ocs/v2.php/privatedata/getattribute',
+ 'delete' => '/ocs/v2.php/privatedata/deleteattribute',
+ ],
+ ],
+ 'FEDERATED_SHARING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'share' => '/ocs/v2.php/cloud/shares',
+ 'webdav' => '/public.php/webdav/',
+ ],
+ ],
+ 'SHARING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'share' => '/ocs/v2.php/apps/files_sharing/api/v1/shares',
+ ],
+ ],
+ 'ACTIVITY' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'list' => '/ocs/v2.php/cloud/activity',
+ ],
+ ],
+ 'PROVISIONING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'user' => '/ocs/v2.php/cloud/users',
+ 'groups' => '/ocs/v2.php/cloud/groups',
+ 'apps' => '/ocs/v2.php/cloud/apps',
+ ],
+ ],
+ ],
+ ]
+ );
+
+ $this->assertEquals($expected, $this->ocsProvider->buildProviderList());
+ }
+}