diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2017-04-25 23:36:59 +0200 |
---|---|---|
committer | Lukas Reschke <lukas@statuscode.ch> | 2017-04-26 20:07:51 +0200 |
commit | 0651d66181889e24c5667f3542544663d4f0eed1 (patch) | |
tree | 31f6f75f6a5f15b8d74aa52e59d03f89adee3dcc /tests | |
parent | 78d0bb99f77ac37ddb4d8ab33867e7b443d45700 (diff) | |
download | nextcloud-server-0651d66181889e24c5667f3542544663d4f0eed1.tar.gz nextcloud-server-0651d66181889e24c5667f3542544663d4f0eed1.zip |
Add tests for bundle code
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/App/AppStore/Bundles/BundleBase.php | 60 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Bundles/BundleFetcherTest.php | 76 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Bundles/CoreBundleTest.php | 36 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Bundles/EnterpriseBundleTest.php | 41 | ||||
-rw-r--r-- | tests/lib/App/AppStore/Bundles/GroupwareBundleTest.php | 37 |
5 files changed, 250 insertions, 0 deletions
diff --git a/tests/lib/App/AppStore/Bundles/BundleBase.php b/tests/lib/App/AppStore/Bundles/BundleBase.php new file mode 100644 index 00000000000..23af1cda927 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/BundleBase.php @@ -0,0 +1,60 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App\AppStore\Bundles; + +use OC\App\AppStore\Bundles\Bundle; +use OCP\IL10N; +use Test\TestCase; + +abstract class BundleBase extends TestCase { + /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ + protected $l10n; + /** @var Bundle */ + protected $bundle; + /** @var string */ + protected $bundleIdentifier; + /** @var string */ + protected $bundleName; + /** @var array */ + protected $bundleAppIds; + + public function setUp() { + parent::setUp(); + $this->l10n = $this->createMock(IL10N::class); + $this->l10n->method('t') + ->will($this->returnCallback(function ($text, $parameters = []) { + return vsprintf($text, $parameters); + })); + } + + public function testGetIdentifier() { + $this->assertSame($this->bundleIdentifier, $this->bundle->getIdentifier()); + } + + public function testGetName() { + $this->assertSame($this->bundleName, $this->bundle->getName()); + } + + public function testGetAppIdentifiers() { + $this->assertSame($this->bundleAppIds, $this->bundle->getAppIdentifiers()); + } +} diff --git a/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php new file mode 100644 index 00000000000..fc98a854177 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php @@ -0,0 +1,76 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App\AppStore\Bundles; + +use OC\App\AppStore\Bundles\BundleFetcher; +use OC\App\AppStore\Bundles\CoreBundle; +use OC\App\AppStore\Bundles\EnterpriseBundle; +use OC\App\AppStore\Bundles\GroupwareBundle; +use OCP\IL10N; +use Test\TestCase; + +class BundleFetcherTest extends TestCase { + /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ + private $l10n; + /** @var BundleFetcher */ + private $bundleFetcher; + + public function setUp() { + parent::setUp(); + + $this->l10n = $this->createMock(IL10N::class); + + $this->bundleFetcher = new BundleFetcher( + $this->l10n + ); + } + + public function testGetBundles() { + $expected = [ + new EnterpriseBundle($this->l10n), + new GroupwareBundle($this->l10n), + ]; + $this->assertEquals($expected, $this->bundleFetcher->getBundles()); + } + + public function testGetDefaultInstallationBundle() { + $expected = [ + new CoreBundle($this->l10n), + ]; + $this->assertEquals($expected, $this->bundleFetcher->getDefaultInstallationBundle()); + } + + public function testGetBundleByIdentifier() { + $this->assertEquals(new EnterpriseBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('EnterpriseBundle')); + $this->assertEquals(new CoreBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('CoreBundle')); + $this->assertEquals(new GroupwareBundle($this->l10n), $this->bundleFetcher->getBundleByIdentifier('GroupwareBundle')); + } + + /** + * @expectedException \BadMethodCallException + * @expectedExceptionMessage Bundle with specified identifier does not exist + */ + public function testGetBundleByIdentifierWithException() { + $this->bundleFetcher->getBundleByIdentifier('NotExistingBundle'); + } + +} diff --git a/tests/lib/App/AppStore/Bundles/CoreBundleTest.php b/tests/lib/App/AppStore/Bundles/CoreBundleTest.php new file mode 100644 index 00000000000..235e2ec84fe --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/CoreBundleTest.php @@ -0,0 +1,36 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App\AppStore\Bundles; + +use OC\App\AppStore\Bundles\CoreBundle; + +class CoreBundleTest extends BundleBase { + public function setUp() { + parent::setUp(); + $this->bundle = new CoreBundle($this->l10n); + $this->bundleIdentifier = 'CoreBundle'; + $this->bundleName = 'Core bundle'; + $this->bundleAppIds = [ + 'bruteforcesettings', + ]; + } +} diff --git a/tests/lib/App/AppStore/Bundles/EnterpriseBundleTest.php b/tests/lib/App/AppStore/Bundles/EnterpriseBundleTest.php new file mode 100644 index 00000000000..e75486b3ed5 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/EnterpriseBundleTest.php @@ -0,0 +1,41 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App\AppStore\Bundles; + +use OC\App\AppStore\Bundles\EnterpriseBundle; + +class EnterpriseBundleTest extends BundleBase { + public function setUp() { + parent::setUp(); + $this->bundle = new EnterpriseBundle($this->l10n); + $this->bundleIdentifier = 'EnterpriseBundle'; + $this->bundleName = 'Enterprise bundle'; + $this->bundleAppIds = [ + 'admin_audit', + 'user_ldap', + 'files_retention', + 'files_automatedtagging', + 'user_saml', + 'files_accesscontrol', + ]; + } +} diff --git a/tests/lib/App/AppStore/Bundles/GroupwareBundleTest.php b/tests/lib/App/AppStore/Bundles/GroupwareBundleTest.php new file mode 100644 index 00000000000..a682207e72f --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/GroupwareBundleTest.php @@ -0,0 +1,37 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App\AppStore\Bundles; + +use OC\App\AppStore\Bundles\GroupwareBundle; + +class GroupwareBundleTest extends BundleBase { + public function setUp() { + parent::setUp(); + $this->bundle = new GroupwareBundle($this->l10n); + $this->bundleIdentifier = 'GroupwareBundle'; + $this->bundleName = 'Groupware bundle'; + $this->bundleAppIds = [ + 'calendar', + 'contacts', + ]; + } +} |