Download tests/PHPUnit/Integration/Application/Kernel/PluginListTest.php from Leon4gr45/matomo: direct link, hf CLI and curl.
- Browser
- Download file 4.01 kB
-
https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/tests/PHPUnit/Integration/Application/Kernel/PluginListTest.php
- Command line
-
hf download hf://spaces/Leon4gr45/matomo/tests/PHPUnit/Integration/Application/Kernel/PluginListTest.php
-
curl -L -o PluginListTest.php https://huggingface.co/spaces/Leon4gr45/matomo/resolve/main/tests/PHPUnit/Integration/Application/Kernel/PluginListTest.php
4.01 kB
| /** | |
| * Matomo - free/libre analytics platform | |
| * | |
| * @link https://matomo.org | |
| * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later | |
| */ | |
| namespace Piwik\Tests\Integration\Application\Kernel; | |
| use Piwik\Application\Kernel\PluginList; | |
| use Piwik\Container\StaticContainer; | |
| /** | |
| * @group PluginListTest | |
| * @group Core | |
| */ | |
| class PluginListTest extends \PHPUnit\Framework\TestCase | |
| { | |
| /** | |
| * @var PluginList | |
| */ | |
| private $pluginList = array(); | |
| public function setUp(): void | |
| { | |
| parent::setUp(); | |
| $this->pluginList = $this->makePluginList(); | |
| } | |
| public function testSortPlugins() | |
| { | |
| $pluginList = $this->makePluginList(); | |
| $sorted = $pluginList->sortPlugins(array('UsersManager', 'CoreHome', 'MyCustomPlugin', 'ExampleCommand', 'MyCustomPlugin2', 'Abcdef')); | |
| $this->assertSame(array( | |
| 'CoreHome', // core plugins loaded first | |
| 'UsersManager', | |
| 'ExampleCommand', // a "by default disabled plugin" is loaded before custom plugins | |
| 'Abcdef', // then we load custom plugins | |
| 'MyCustomPlugin', | |
| 'MyCustomPlugin2', | |
| ), $sorted); | |
| } | |
| public function testSortPluginsOnlyCorePlugins() | |
| { | |
| $pluginList = $this->makePluginList(); | |
| $sorted = $pluginList->sortPlugins(array('UsersManager', 'CoreHome')); | |
| $this->assertSame(array('CoreHome','UsersManager'), $sorted); | |
| } | |
| public function testSortPluginsAndRespectDependenciesSortsPluginsAlphabetically() | |
| { | |
| $pluginList = $this->makePluginList(); | |
| $sorted = $pluginList->sortPluginsAndRespectDependencies(array( | |
| 'UsersManager', 'MyCustomPlugin', 'ExampleCommand', 'MyCustomPlugin2', 'CoreHome', 'Abcdef', | |
| )); | |
| $this->assertSame(array( | |
| 'CoreHome', // core plugins loaded first | |
| 'UsersManager', | |
| 'ExampleCommand', // a "by default disabled plugin" is loaded before custom plugins | |
| 'Abcdef', // then we load custom plugins | |
| 'MyCustomPlugin', | |
| 'MyCustomPlugin2', | |
| ), $sorted); | |
| } | |
| public function testSortPluginsAndRespectDependenciesMakesSureToListRequiredDependencyFirst() | |
| { | |
| $pluginJsonInfo = array( | |
| 'Abcdef' => array('require' => array('MyCustomPlugin2' => '2.2.1')), | |
| 'MyCustomPlugin2' => array('require' => array('CoreHome' => '4.2.1', 'MyCustomPlugin3' => '3.0.3')), | |
| 'fooBar' => array('require' => array('Ast' => '1.2.1', 'MyCustomPlugin3' => '3.0.3')), | |
| ); | |
| $pluginList = $this->makePluginList(); | |
| $sorted = $pluginList->sortPluginsAndRespectDependencies(array( | |
| 'UsersManager', 'MyCustomPlugin', | |
| 'ExampleCommand', 'MyCustomPlugin2', 'Ast', | |
| 'Acc', 'MyCustomPlugin3', 'CoreHome', 'Abcdef', 'fooBar', | |
| ), $pluginJsonInfo); | |
| $this->assertSame(array( | |
| 'CoreHome', // core plugins loaded first | |
| 'UsersManager', | |
| 'ExampleCommand', // a "by default disabled plugin" is loaded before custom plugins | |
| 'MyCustomPlugin3', | |
| 'MyCustomPlugin2', | |
| 'Abcdef', | |
| 'Acc', | |
| 'Ast', | |
| 'fooBar', | |
| 'MyCustomPlugin', | |
| ), $sorted); | |
| } | |
| public function testSortPluginsAndRespectDependenciesOnlyCorePlugins() | |
| { | |
| $pluginList = $this->makePluginList(); | |
| $sorted = $pluginList->sortPluginsAndRespectDependencies(array('UsersManager', 'CoreHome')); | |
| $this->assertSame(array('CoreHome','UsersManager'), $sorted); | |
| } | |
| private function makePluginList() | |
| { | |
| $globalSettingsProvider = StaticContainer::get('Piwik\Application\Kernel\GlobalSettingsProvider'); | |
| $section = $globalSettingsProvider->getSection('Plugins'); | |
| // $section['Plugins'] = $pluginsToLoad; | |
| $globalSettingsProvider->setSection('Plugins', $section); | |
| return new PluginList($globalSettingsProvider); | |
| } | |
| } | |