From f96c0f12e80428e912ba730f420da15ddd232ee4 Mon Sep 17 00:00:00 2001 From: mattab <matthieu.aubry@gmail.com> Date: Mon, 3 Mar 2014 14:38:34 +1300 Subject: [PATCH] Fixes #4357 Merging branch into master, let's see if the build stays green --- core/ArchiveProcessor/PluginsArchiver.php | 2 +- core/EventDispatcher.php | 2 +- core/Plugin/Manager.php | 16 ++++++++++++++-- tests/LocalTracker.php | 2 +- tests/PHPUnit/Core/TaskSchedulerTest.php | 8 ++++---- tests/PHPUnit/DatabaseTestCase.php | 1 - .../Integration/Plugins/MobileMessagingTest.php | 4 ++-- .../Integration/Plugins/ScheduledReportsTest.php | 4 ++-- 8 files changed, 25 insertions(+), 14 deletions(-) diff --git a/core/ArchiveProcessor/PluginsArchiver.php b/core/ArchiveProcessor/PluginsArchiver.php index cfccad3583..56096079ea 100644 --- a/core/ArchiveProcessor/PluginsArchiver.php +++ b/core/ArchiveProcessor/PluginsArchiver.php @@ -121,7 +121,7 @@ class PluginsArchiver protected function getPluginArchivers() { if (empty(static::$archivers)) { - $pluginNames = \Piwik\Plugin\Manager::getInstance()->getActivatedPlugins(); + $pluginNames = \Piwik\Plugin\Manager::getInstance()->getActivatedAndLoadedPlugins(); $archivers = array(); foreach ($pluginNames as $pluginName) { $archivers[$pluginName] = self::getPluginArchiverClass($pluginName); diff --git a/core/EventDispatcher.php b/core/EventDispatcher.php index b884505177..ba6365d9f2 100644 --- a/core/EventDispatcher.php +++ b/core/EventDispatcher.php @@ -64,7 +64,7 @@ class EventDispatcher extends Singleton } if (empty($plugins)) { - $plugins = \Piwik\Plugin\Manager::getInstance()->getLoadedPlugins(); + $plugins = \Piwik\Plugin\Manager::getInstance()->getActivatedAndLoadedPlugins(); } $callbacks = array(); diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php index df7b3e7347..ed7a80297a 100644 --- a/core/Plugin/Manager.php +++ b/core/Plugin/Manager.php @@ -637,9 +637,21 @@ class Manager extends Singleton * * @return string[] */ - public function getActivatedPlugins() + public function getActivatedAndLoadedPlugins() { - return $this->pluginsToLoad; + $activatedPlugins = $this->pluginsToLoad; + + $plugins = array(); + foreach ($activatedPlugins as $activatedPlugin) { + + if ($activatedPlugin + && $this->isPluginLoaded($activatedPlugin)) { + + $plugins[] = $activatedPlugin; + } + } + + return $plugins; } /** diff --git a/tests/LocalTracker.php b/tests/LocalTracker.php index d8ca29ea44..3bd3d831ad 100755 --- a/tests/LocalTracker.php +++ b/tests/LocalTracker.php @@ -55,7 +55,7 @@ class Piwik_LocalTracker extends PiwikTracker $pluginsTracker = Config::getInstance()->Plugins_Tracker['Plugins_Tracker']; $oldTrackerConfig = Config::getInstance()->Tracker; - \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); + //\Piwik\Plugin\Manager::getInstance()->unloadPlugins(); // modify config $GLOBALS['PIWIK_TRACKER_MODE'] = true; diff --git a/tests/PHPUnit/Core/TaskSchedulerTest.php b/tests/PHPUnit/Core/TaskSchedulerTest.php index c6f937a6c3..4a47071baf 100644 --- a/tests/PHPUnit/Core/TaskSchedulerTest.php +++ b/tests/PHPUnit/Core/TaskSchedulerTest.php @@ -280,6 +280,10 @@ class TaskSchedulerTest extends PHPUnit_Framework_TestCase $plugins = \Piwik\Plugin\Manager::getInstance()->getLoadedPlugins(); $plugins = array_map(function ($p) { return $p->getPluginName(); }, $plugins); + // stub the piwik option object to control the returned option value + self::stubPiwikOption(serialize($timetableBeforeTaskExecution)); + TaskScheduler::unsetInstance(); + \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); // make sure the get tasks event returns our configured tasks @@ -287,10 +291,6 @@ class TaskSchedulerTest extends PHPUnit_Framework_TestCase $tasks = $configuredTasks; }); - // stub the piwik option object to control the returned option value - self::stubPiwikOption(serialize($timetableBeforeTaskExecution)); - TaskScheduler::unsetInstance(); - // execute tasks $executionResults = TaskScheduler::runTasks(); diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php index 1c0968539c..333971b8e1 100644 --- a/tests/PHPUnit/DatabaseTestCase.php +++ b/tests/PHPUnit/DatabaseTestCase.php @@ -48,7 +48,6 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase Db::createDatabaseObject(); DbHelper::createTables(); -// \Piwik\Manager::getInstance()->loadPlugins(array()); IntegrationTestCase::loadAllPlugins(); } catch (Exception $e) { diff --git a/tests/PHPUnit/Integration/Plugins/MobileMessagingTest.php b/tests/PHPUnit/Integration/Plugins/MobileMessagingTest.php index 4bbb959f86..e81f0790f4 100644 --- a/tests/PHPUnit/Integration/Plugins/MobileMessagingTest.php +++ b/tests/PHPUnit/Integration/Plugins/MobileMessagingTest.php @@ -34,7 +34,7 @@ class Plugins_MobileMessagingTest extends DatabaseTestCase $this->idSiteAccess = APISitesManager::getInstance()->addSite("test", "http://test"); - \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging', 'MultiSites')); + \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging', 'MultiSites', 'LanguagesManager')); \Piwik\Plugin\Manager::getInstance()->installLoadedPlugins(); } @@ -47,7 +47,7 @@ class Plugins_MobileMessagingTest extends DatabaseTestCase public function testWarnUserViaSMSMultiSitesDeactivated() { // safety net - \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging')); + \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging', 'LanguagesManager')); $this->assertFalse(\Piwik\Plugin\Manager::getInstance()->isPluginActivated('MultiSites')); $APIScheduledReports = APIScheduledReports::getInstance(); diff --git a/tests/PHPUnit/Integration/Plugins/ScheduledReportsTest.php b/tests/PHPUnit/Integration/Plugins/ScheduledReportsTest.php index 44da874c37..99dd590624 100644 --- a/tests/PHPUnit/Integration/Plugins/ScheduledReportsTest.php +++ b/tests/PHPUnit/Integration/Plugins/ScheduledReportsTest.php @@ -34,7 +34,7 @@ class Plugins_ScheduledReportsTest extends DatabaseTestCase // setup the access layer self::setSuperUser(); - \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('API', 'UserCountry', 'ScheduledReports', 'MobileMessaging')); + \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('API', 'UserCountry', 'ScheduledReports', 'MobileMessaging', 'LanguagesManager')); \Piwik\Plugin\Manager::getInstance()->installLoadedPlugins(); APISitesManager::getInstance()->addSite("Test", array("http://piwik.net")); @@ -200,7 +200,7 @@ class Plugins_ScheduledReportsTest extends DatabaseTestCase public function testGetTopMenuTranslationKeyMobileMessagingInactive() { // unload MobileMessaging plugin - \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports')); + \Piwik\Plugin\Manager::getInstance()->loadPlugins(array('ScheduledReports', 'LanguagesManager')); $pdfReportPlugin = new ScheduledReports(); $this->assertEquals( -- GitLab