diff options
Diffstat (limited to 'apps/provisioning_api/tests/AppsTest.php')
-rw-r--r-- | apps/provisioning_api/tests/AppsTest.php | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/apps/provisioning_api/tests/AppsTest.php b/apps/provisioning_api/tests/AppsTest.php new file mode 100644 index 00000000000..7dc6ec8a371 --- /dev/null +++ b/apps/provisioning_api/tests/AppsTest.php @@ -0,0 +1,127 @@ +<?php +/** + * @author Joas Schilling <nickvergessen@owncloud.com> + * @author Lukas Reschke <lukas@owncloud.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <rullzer@owncloud.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Tom Needham <tom@owncloud.com> + * + * @copyright Copyright (c) 2016, 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 OCA\Provisioning_API\Tests; + + +use OC\OCSClient; +use OCA\Provisioning_API\Apps; +use OCP\API; +use OCP\App\IAppManager; +use OCP\IUserSession; + +/** + * Class AppsTest + * + * @group DB + * + * @package OCA\Provisioning_API\Tests + */ +class AppsTest extends TestCase { + /** @var IAppManager */ + private $appManager; + /** @var Apps */ + private $api; + /** @var IUserSession */ + private $userSession; + /** @var OCSClient|\PHPUnit_Framework_MockObject_MockObject */ + private $ocsClient; + + protected function setUp() { + parent::setUp(); + + $this->appManager = \OC::$server->getAppManager(); + $this->groupManager = \OC::$server->getGroupManager(); + $this->userSession = \OC::$server->getUserSession(); + $this->ocsClient = $this->getMockBuilder('OC\OCSClient') + ->disableOriginalConstructor() + ->getMock(); + + $this->api = new Apps($this->appManager, $this->ocsClient); + } + + public function testGetAppInfo() { + $result = $this->api->getAppInfo(['appid' => 'provisioning_api']); + $this->assertInstanceOf('OC_OCS_Result', $result); + $this->assertTrue($result->succeeded()); + } + + public function testGetAppInfoOnBadAppID() { + $result = $this->api->getAppInfo(['appid' => 'not_provisioning_api']); + $this->assertInstanceOf('OC_OCS_Result', $result); + $this->assertFalse($result->succeeded()); + $this->assertEquals(API::RESPOND_NOT_FOUND, $result->getStatusCode()); + } + + public function testGetApps() { + $this->ocsClient + ->expects($this->any()) + ->method($this->anything()) + ->will($this->returnValue(null)); + $user = $this->generateUsers(); + $this->groupManager->get('admin')->addUser($user); + $this->userSession->setUser($user); + + $result = $this->api->getApps([]); + + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals(count(\OC_App::listAllApps(false, true, $this->ocsClient)), count($data['apps'])); + } + + public function testGetAppsEnabled() { + $_GET['filter'] = 'enabled'; + $result = $this->api->getApps(['filter' => 'enabled']); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals(count(\OC_App::getEnabledApps()), count($data['apps'])); + } + + public function testGetAppsDisabled() { + $this->ocsClient + ->expects($this->any()) + ->method($this->anything()) + ->will($this->returnValue(null)); + $_GET['filter'] = 'disabled'; + $result = $this->api->getApps(['filter' => 'disabled']); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $apps = \OC_App::listAllApps(false, true, $this->ocsClient); + $list = array(); + foreach($apps as $app) { + $list[] = $app['id']; + } + $disabled = array_diff($list, \OC_App::getEnabledApps()); + $this->assertEquals(count($disabled), count($data['apps'])); + } + + public function testGetAppsInvalidFilter() { + $_GET['filter'] = 'foo'; + $result = $this->api->getApps([]); + $this->assertFalse($result->succeeded()); + $this->assertEquals(101, $result->getStatusCode()); + } +} |