| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- declare(strict_types=1);
- /**
- * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- * @link https://cakephp.org CakePHP(tm) Project
- * @since 2.0.0
- * @license https://opensource.org/licenses/mit-license.php MIT License
- */
- namespace Cake\Test\TestCase\Core;
- use Cake\Core\BasePlugin;
- use Cake\Core\Exception\MissingPluginException;
- use Cake\Core\Plugin;
- use Cake\TestSuite\TestCase;
- use TestPlugin\Plugin as TestPlugin;
- /**
- * PluginTest class
- */
- class PluginTest extends TestCase
- {
- /**
- * Setup
- *
- * @return void
- */
- public function setUp(): void
- {
- parent::setUp();
- $this->clearPlugins();
- }
- /**
- * Reverts the changes done to the environment while testing
- *
- * @return void
- */
- public function tearDown(): void
- {
- parent::tearDown();
- $this->clearPlugins();
- }
- /**
- * Tests loading a plugin with a class
- *
- * @return void
- */
- public function testLoadConcreteClass()
- {
- $this->loadPlugins(['TestPlugin']);
- $instance = Plugin::getCollection()->get('TestPlugin');
- $this->assertSame(TestPlugin::class, get_class($instance));
- }
- /**
- * Tests loading a plugin without a class
- *
- * @return void
- */
- public function testLoadDynamicClass()
- {
- $this->loadPlugins(['TestPluginTwo']);
- $instance = Plugin::getCollection()->get('TestPluginTwo');
- $this->assertSame(BasePlugin::class, get_class($instance));
- }
- /**
- * Tests that Plugin::path() returns the correct path for the loaded plugins
- *
- * @return void
- */
- public function testPath()
- {
- $this->loadPlugins(['TestPlugin', 'TestPluginTwo', 'Company/TestPluginThree']);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPlugin' . DS;
- $this->assertPathEquals(Plugin::path('TestPlugin'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPluginTwo' . DS;
- $this->assertPathEquals(Plugin::path('TestPluginTwo'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'Company' . DS . 'TestPluginThree' . DS;
- $this->assertPathEquals(Plugin::path('Company/TestPluginThree'), $expected);
- }
- /**
- * Tests that Plugin::path() throws an exception on unknown plugin
- *
- * @return void
- */
- public function testPathNotFound()
- {
- $this->expectException(MissingPluginException::class);
- Plugin::path('NonExistentPlugin');
- }
- /**
- * Tests that Plugin::classPath() returns the correct path for the loaded plugins
- *
- * @return void
- */
- public function testClassPath()
- {
- $this->loadPlugins(['TestPlugin', 'TestPluginTwo', 'Company/TestPluginThree']);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPlugin' . DS . 'src' . DS;
- $this->assertPathEquals(Plugin::classPath('TestPlugin'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPluginTwo' . DS . 'src' . DS;
- $this->assertPathEquals(Plugin::classPath('TestPluginTwo'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'Company' . DS . 'TestPluginThree' . DS . 'src' . DS;
- $this->assertPathEquals(Plugin::classPath('Company/TestPluginThree'), $expected);
- }
- /**
- * Tests that Plugin::templatePath() returns the correct path for the loaded plugins
- *
- * @return void
- */
- public function testTemplatePath()
- {
- $this->loadPlugins(['TestPlugin', 'TestPluginTwo', 'Company/TestPluginThree']);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPlugin' . DS . 'templates' . DS;
- $this->assertPathEquals(Plugin::templatePath('TestPlugin'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'TestPluginTwo' . DS . 'templates' . DS;
- $this->assertPathEquals(Plugin::templatePath('TestPluginTwo'), $expected);
- $expected = TEST_APP . 'Plugin' . DS . 'Company' . DS . 'TestPluginThree' . DS . 'templates' . DS;
- $this->assertPathEquals(Plugin::templatePath('Company/TestPluginThree'), $expected);
- }
- /**
- * Tests that Plugin::classPath() throws an exception on unknown plugin
- *
- * @return void
- */
- public function testClassPathNotFound()
- {
- $this->expectException(MissingPluginException::class);
- Plugin::classPath('NonExistentPlugin');
- }
- }
|