Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/PHPUnit/Framework/Fixture.php')
-rw-r--r--tests/PHPUnit/Framework/Fixture.php71
1 files changed, 53 insertions, 18 deletions
diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php
index 29b4625465..f421ba5658 100644
--- a/tests/PHPUnit/Framework/Fixture.php
+++ b/tests/PHPUnit/Framework/Fixture.php
@@ -181,7 +181,7 @@ class Fixture extends \PHPUnit_Framework_Assert
return $id;
}
- return Config::getInstance()->database_tests['dbname'];
+ return self::getConfig()->database_tests['dbname'];
}
public function performSetUp($setupEnvironmentOnly = false)
@@ -213,7 +213,7 @@ class Fixture extends \PHPUnit_Framework_Assert
$this->createEnvironmentInstance();
if ($this->dbName === false) { // must be after test config is created
- $this->dbName = Config::getInstance()->database['dbname'];
+ $this->dbName = self::getConfig()->database['dbname'];
}
try {
@@ -230,14 +230,14 @@ class Fixture extends \PHPUnit_Framework_Assert
Tracker::disconnectCachedDbConnection();
// reconnect once we're sure the database exists
- Config::getInstance()->database['dbname'] = $this->dbName;
+ self::getConfig()->database['dbname'] = $this->dbName;
Db::createDatabaseObject();
Db::get()->query("SET wait_timeout=28800;");
DbHelper::createTables();
- Manager::getInstance()->unloadPlugins();
+ self::getPluginManager()->unloadPlugins();
} catch (Exception $e) {
static::fail("TEST INITIALIZATION FAILED: " . $e->getMessage() . "\n" . $e->getTraceAsString());
@@ -254,11 +254,12 @@ class Fixture extends \PHPUnit_Framework_Assert
Cache::deleteTrackerCache();
- static::loadAllPlugins($this->getTestEnvironment(), $this->testCaseClass, $this->extraPluginsToLoad);
+ self::resetPluginsInstalledConfig();
+ $testEnvironment = $this->getTestEnvironment();
+ static::loadAllPlugins($testEnvironment, $this->testCaseClass, $this->extraPluginsToLoad);
self::updateDatabase();
-
- self::installAndActivatePlugins();
+ self::installAndActivatePlugins($testEnvironment);
$_GET = $_REQUEST = array();
$_SERVER['HTTP_REFERER'] = '';
@@ -364,10 +365,26 @@ class Fixture extends \PHPUnit_Framework_Assert
$_GET = $_REQUEST = array();
Translate::reset();
- Config::getInstance()->Plugins; // make sure Plugins exists in a config object for next tests that use Plugin\Manager
+ self::getConfig()->Plugins; // make sure Plugins exists in a config object for next tests that use Plugin\Manager
// since Plugin\Manager uses getFromGlobalConfig which doesn't init the config object
}
+ protected static function resetPluginsInstalledConfig()
+ {
+ $config = self::getConfig();
+ $installed = $config->PluginsInstalled;
+ $installed['PluginsInstalled'] = array();
+ $config->PluginsInstalled = $installed;
+ }
+
+ protected static function rememberCurrentlyInstalledPluginsAcrossRequests(TestingEnvironmentVariables $testEnvironment)
+ {
+ $plugins = self::getPluginManager()->getInstalledPluginsName();
+
+ $testEnvironment->overrideConfig('PluginsInstalled', 'PluginsInstalled', $plugins);
+ $testEnvironment->save();
+ }
+
/**
* @param \Piwik\Tests\Framework\TestingEnvironmentVariables|null $testEnvironment Ignored.
* @param bool|false $testCaseClass Ignored.
@@ -376,12 +393,12 @@ class Fixture extends \PHPUnit_Framework_Assert
public static function loadAllPlugins(TestingEnvironmentVariables $testEnvironment = null, $testCaseClass = false, $extraPluginsToLoad = array())
{
DbHelper::createTables();
- Plugin\Manager::getInstance()->loadActivatedPlugins();
+ self::getPluginManager()->loadActivatedPlugins();
}
- public static function installAndActivatePlugins()
+ public static function installAndActivatePlugins(TestingEnvironmentVariables $testEnvironment)
{
- $pluginsManager = Manager::getInstance();
+ $pluginsManager = self::getPluginManager();
// Install plugins
$messages = $pluginsManager->installLoadedPlugins();
@@ -398,19 +415,35 @@ class Fixture extends \PHPUnit_Framework_Assert
}
$pluginsManager->loadPluginTranslations();
+
+ self::rememberCurrentlyInstalledPluginsAcrossRequests($testEnvironment);
+ }
+
+ private static function getPluginManager()
+ {
+ return Manager::getInstance();
+ }
+
+ private static function getConfig()
+ {
+ return Config::getInstance();
}
public static function unloadAllPlugins()
{
try {
- $manager = Manager::getInstance();
+ $manager = self::getPluginManager();
$plugins = $manager->getLoadedPlugins();
foreach ($plugins as $plugin) {
$plugin->uninstall();
}
- Manager::getInstance()->unloadPlugins();
+
+ $manager->unloadPlugins();
} catch (Exception $e) {
}
+
+ self::resetPluginsInstalledConfig();
+ self::rememberCurrentlyInstalledPluginsAcrossRequests(new TestingEnvironmentVariables());
}
/**
@@ -460,6 +493,7 @@ class Fixture extends \PHPUnit_Framework_Assert
// Clear the memory Website cache
Site::clearCache();
+ Cache::deleteCacheWebsiteAttributes($idSite);
return $idSite;
}
@@ -471,9 +505,10 @@ class Fixture extends \PHPUnit_Framework_Assert
*/
public static function getRootUrl()
{
- $piwikUrl = Config::getInstance()->tests['http_host'];
- $piwikUri = Config::getInstance()->tests['request_uri'];
- $piwikPort = Config::getInstance()->tests['port'];
+ $config = self::getConfig();
+ $piwikUrl = $config->tests['http_host'];
+ $piwikUri = $config->tests['request_uri'];
+ $piwikPort = $config->tests['port'];
if($piwikUri == '@REQUEST_URI@') {
throw new Exception("Piwik is mis-configured. Remove (or fix) the 'request_uri' entry below [tests] section in your config.ini.php. ");
@@ -870,7 +905,7 @@ class Fixture extends \PHPUnit_Framework_Assert
*/
public static function connectWithoutDatabase()
{
- $dbConfig = Config::getInstance()->database;
+ $dbConfig = self::getConfig()->database;
$oldDbName = $dbConfig['dbname'];
$dbConfig['dbname'] = null;
@@ -888,7 +923,7 @@ class Fixture extends \PHPUnit_Framework_Assert
public function dropDatabase($dbName = null)
{
- $dbName = $dbName ?: $this->dbName ?: Config::getInstance()->database_tests['dbname'];
+ $dbName = $dbName ?: $this->dbName ?: self::getConfig()->database_tests['dbname'];
$this->log("Dropping database '$dbName'...");