diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2016-05-20 15:38:20 +0200 |
---|---|---|
committer | Thomas Müller <DeepDiver1975@users.noreply.github.com> | 2016-05-20 15:38:20 +0200 |
commit | 94ad54ec9b96d41a614fbbad4a97b34c41a6901f (patch) | |
tree | f3eb7cdda2704aaf0cd59d58efe66bcbd34cb67d /tests/lib/OCS | |
parent | 2ef751b1ec28f7b5c7113af60ec8c9fa0ae1cf87 (diff) | |
download | nextcloud-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.php | 44 | ||||
-rw-r--r-- | tests/lib/OCS/PrivatedataTest.php | 172 | ||||
-rw-r--r-- | tests/lib/OCS/ProviderTest.php | 178 |
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()); + } +} |