public static function loadAllPlugins($testEnvironment = null, $testCaseClass = false, $extraPluginsToLoad = array())
{
if (empty($testEnvironment)) {
$testEnvironment = new Piwik_TestingEnvironment();
}
DbHelper::createTables();
$pluginsManager = \Piwik\Plugin\Manager::getInstance();
$plugins = $testEnvironment->getCoreAndSupportedPlugins();
// make sure the plugin that executed this method is included in the plugins to load
$extraPlugins = array_merge($extraPluginsToLoad, array(\Piwik\Plugin::getPluginNameFromBacktrace(debug_backtrace()), \Piwik\Plugin::getPluginNameFromNamespace($testCaseClass), \Piwik\Plugin::getPluginNameFromNamespace(get_called_class())));
foreach ($extraPlugins as $pluginName) {
if (empty($pluginName)) {
continue;
}
if (in_array($pluginName, $plugins)) {
continue;
}
$plugins[] = $pluginName;
if ($testEnvironment) {
$testEnvironment->pluginsToLoad = array_merge($testEnvironment->pluginsToLoad ?: array(), array($pluginName));
}
}
Log::debug("Plugins to load during tests: " . implode(', ', $plugins));
$pluginsManager->loadPlugins($plugins);
}