diff options
author | diosmosis <benaka@piwik.pro> | 2015-05-26 22:56:15 +0300 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2015-06-02 01:05:28 +0300 |
commit | 5e8641bd3e2ef3901cb0e8ecf7a82db1b1352a25 (patch) | |
tree | 1ef3d4bc7701023c95e3ff049f6b050c758c54c2 /config/environment | |
parent | ba2f86b2c7c20fa1f8994b5496cbed217ac0cc3f (diff) |
Move DI config overrides in TestingEnvironment to test.php DI config.
Diffstat (limited to 'config/environment')
-rw-r--r-- | config/environment/test.php | 108 |
1 files changed, 107 insertions, 1 deletions
diff --git a/config/environment/test.php b/config/environment/test.php index 95200e0e97..6ff1e10982 100644 --- a/config/environment/test.php +++ b/config/environment/test.php @@ -1,5 +1,13 @@ <?php +use Interop\Container\ContainerInterface; +use Piwik\Common; +use Piwik\DbHelper; +use Piwik\Option; +use Piwik\Tests\Framework\Mock\TestConfig; +use Piwik\Tests\Framework\Piwik_MockAccess; +use Piwik\Tests\Framework\TestingEnvironment; + return array( // Disable logging @@ -14,5 +22,103 @@ return array( 'Piwik\Translation\Translator' => DI\object() ->constructorParameter('directories', array()), - 'Piwik\Config' => DI\object('Piwik\Tests\Framework\Mock\TestConfig'), + 'Piwik\Config' => DI\decorate(function ($previous, ContainerInterface $c) { + $testingEnvironment = $c->get('Piwik\Tests\Framework\TestingEnvironment'); + if (!$testingEnvironment->dontUseTestConfig) { + $settingsProvider = $c->get('Piwik\Application\Kernel\GlobalSettingsProvider'); + return new TestConfig($settingsProvider, $testingEnvironment, $allowSave = false, $doSetTestEnvironment = true); + } else { + return $previous; + } + }), + + 'observers.global' => DI\add(array( + + array('Access.createAccessSingleton', function ($access) { + $testingEnvironment = new TestingEnvironment(); + if (!$testingEnvironment->testUseRegularAuth) { + $access = new Piwik_MockAccess($access); + \Piwik\Access::setSingletonInstance($access); + } + }), + + array('Environment.bootstrapped', function () { + $testingEnvironment = new TestingEnvironment(); + $testingEnvironment->logVariables(); + $testingEnvironment->executeSetupTestEnvHook(); + }), + + array('Request.dispatch', function () { + if (empty($_GET['ignoreClearAllViewDataTableParameters'])) { // TODO: should use testingEnvironment variable, not query param + try { + \Piwik\ViewDataTable\Manager::clearAllViewDataTableParameters(); + } catch (\Exception $ex) { + // ignore (in case DB is not setup) + } + } + + $testingEnvironment = new TestingEnvironment(); + if ($testingEnvironment->optionsOverride) { + try { + foreach ($testingEnvironment->optionsOverride as $name => $value) { + Option::set($name, $value); + } + } catch (\Exception $ex) { + // ignore (in case DB is not setup) + } + } + + \Piwik\Plugins\CoreVisualizations\Visualizations\Cloud::$debugDisableShuffle = true; + \Piwik\Visualization\Sparkline::$enableSparklineImages = false; + \Piwik\Plugins\ExampleUI\API::$disableRandomness = true; + }), + + array('AssetManager.getStylesheetFiles', function (&$stylesheets) { + $testingEnvironment = new TestingEnvironment(); + if ($testingEnvironment->useOverrideCss) { + $stylesheets[] = 'tests/resources/screenshot-override/override.css'; + } + }), + + array('AssetManager.getJavaScriptFiles', function (&$jsFiles) { + $testingEnvironment = new TestingEnvironment(); + if ($testingEnvironment->useOverrideJs) { + $jsFiles[] = 'tests/resources/screenshot-override/override.js'; + } + }), + + array('Updater.checkForUpdates', function () { + try { + @\Piwik\Filesystem::deleteAllCacheOnUpdate(); + } catch (Exception $ex) { + // pass + } + }), + + array('Test.Mail.send', function (\Zend_Mail $mail) { + $outputFile = PIWIK_INCLUDE_PATH . '/tmp/' . Common::getRequestVar('module', '') . '.' . Common::getRequestVar('action', '') . '.mail.json'; + $outputContent = str_replace("=\n", "", $mail->getBodyText($textOnly = true)); + $outputContent = str_replace("=0A", "\n", $outputContent); + $outputContent = str_replace("=3D", "=", $outputContent); + $outputContents = array( + 'from' => $mail->getFrom(), + 'to' => $mail->getRecipients(), + 'subject' => $mail->getSubject(), + 'contents' => $outputContent + ); + file_put_contents($outputFile, json_encode($outputContents)); + }), + + array('Platform.initialized', function () { + static $archivingTablesDeleted = false; + + $testingEnvironment = new TestingEnvironment(); + if ($testingEnvironment->deleteArchiveTables + && !$archivingTablesDeleted + ) { + $archivingTablesDeleted = true; + DbHelper::deleteArchiveTables(); + } + }), + )), ); |