diff --git a/tests/lib/App/AppStore/Bundles/BundleBase.php b/tests/lib/App/AppStore/Bundles/BundleBase.php new file mode 100644 index 0000000000..23af1cda92 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/BundleBase.php @@ -0,0 +1,60 @@ + + * + * @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 . + * + */ + +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 0000000000..fc98a85417 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/BundleFetcherTest.php @@ -0,0 +1,76 @@ + + * + * @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 . + * + */ + +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 0000000000..235e2ec84f --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/CoreBundleTest.php @@ -0,0 +1,36 @@ + + * + * @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 . + * + */ + +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 0000000000..e75486b3ed --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/EnterpriseBundleTest.php @@ -0,0 +1,41 @@ + + * + * @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 . + * + */ + +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 0000000000..a682207e72 --- /dev/null +++ b/tests/lib/App/AppStore/Bundles/GroupwareBundleTest.php @@ -0,0 +1,37 @@ + + * + * @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 . + * + */ + +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', + ]; + } +}