diff --git a/config/environment/test.php b/config/environment/test.php index ce71427b5026773ea7de7133bc250124d720ac17..8174e8b057ba9081db37192b8e268d576279bdc6 100644 --- a/config/environment/test.php +++ b/config/environment/test.php @@ -4,7 +4,6 @@ use Interop\Container\ContainerInterface; use Piwik\Common; use Piwik\Tests\Framework\Mock\FakeAccess; use Piwik\Tests\Framework\Mock\TestConfig; -use Piwik\Tests\Framework\TestingEnvironmentVariables; return array( @@ -18,8 +17,8 @@ return array( // Disable loading core translations 'Piwik\Translation\Translator' => DI\decorate(function ($previous, ContainerInterface $c) { - $testingEnvironment = $c->get('Piwik\Tests\Framework\TestingEnvironmentVariables'); - if (!$testingEnvironment->loadRealTranslations) { + $loadRealTranslations = $c->get('test.vars.loadRealTranslations'); + if (!$loadRealTranslations) { return new \Piwik\Translation\Translator($c->get('Piwik\Translation\Loader\LoaderInterface'), $directories = array()); } else { return $previous; @@ -28,7 +27,9 @@ return array( 'Piwik\Config' => DI\decorate(function ($previous, ContainerInterface $c) { $testingEnvironment = $c->get('Piwik\Tests\Framework\TestingEnvironmentVariables'); - if (!$testingEnvironment->dontUseTestConfig) { + + $dontUseTestConfig = $c->get('test.vars.dontUseTestConfig'); + if (!$dontUseTestConfig) { $settingsProvider = $c->get('Piwik\Application\Kernel\GlobalSettingsProvider'); return new TestConfig($settingsProvider, $testingEnvironment, $allowSave = false, $doSetTestEnvironment = true); } else { @@ -37,8 +38,8 @@ return array( }), 'Piwik\Access' => DI\decorate(function ($previous, ContainerInterface $c) { - $testingEnvironment = $c->get('Piwik\Tests\Framework\TestingEnvironmentVariables'); - if ($testingEnvironment->testUseMockAuth) { + $testUseMockAuth = $c->get('test.vars.testUseMockAuth'); + if ($testUseMockAuth) { $access = new FakeAccess(); FakeAccess::$superUser = true; FakeAccess::$superUserLogin = 'superUserLogin'; @@ -51,15 +52,15 @@ return array( 'observers.global' => DI\add(array( array('AssetManager.getStylesheetFiles', function (&$stylesheets) { - $testingEnvironment = new TestingEnvironmentVariables(); - if ($testingEnvironment->useOverrideCss) { + $useOverrideCss = \Piwik\Container\StaticContainer::get('test.vars.useOverrideCss'); + if ($useOverrideCss) { $stylesheets[] = 'tests/resources/screenshot-override/override.css'; } }), array('AssetManager.getJavaScriptFiles', function (&$jsFiles) { - $testingEnvironment = new TestingEnvironmentVariables(); - if ($testingEnvironment->useOverrideJs) { + $useOverrideJs = \Piwik\Container\StaticContainer::get('test.vars.useOverrideJs'); + if ($useOverrideJs) { $jsFiles[] = 'tests/resources/screenshot-override/override.js'; } }), diff --git a/core/Container/ContainerFactory.php b/core/Container/ContainerFactory.php index 83a081f4484f98ca58eee4d135b2acb026966c7a..9586fe098e4e545225b504d48b1afd181117882e 100644 --- a/core/Container/ContainerFactory.php +++ b/core/Container/ContainerFactory.php @@ -14,6 +14,8 @@ use Doctrine\Common\Cache\ArrayCache; use Piwik\Application\Kernel\GlobalSettingsProvider; use Piwik\Application\Kernel\PluginList; use Piwik\Plugin\Manager; +use Piwik\Tests\Framework\TestingEnvironmentVariables; +use Piwik\Tests\Framework\TestingEnvironmentVariablesDefinitionSource; /** * Creates a configured DI container. @@ -92,6 +94,9 @@ class ContainerFactory // Test config if (defined('PIWIK_TEST_MODE')) { + $vars = new TestingEnvironmentVariables(); + $builder->addDefinitions(new TestingEnvironmentVariablesDefinitionSource($vars)); + $this->addEnvironmentConfig($builder, 'test'); } diff --git a/tests/PHPUnit/Framework/TestingEnvironmentVariablesDefinitionSource.php b/tests/PHPUnit/Framework/TestingEnvironmentVariablesDefinitionSource.php new file mode 100644 index 0000000000000000000000000000000000000000..41034dd0d9c62bfd9b352c82bca8d1c8c5f01a7f --- /dev/null +++ b/tests/PHPUnit/Framework/TestingEnvironmentVariablesDefinitionSource.php @@ -0,0 +1,58 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Framework; + +use DI\Definition\Source\DefinitionSource; +use DI\Definition\ValueDefinition; + +/** + * PHP DI definition source that accesses variables defined in TestingEnvironmentVariables. + */ +class TestingEnvironmentVariablesDefinitionSource implements DefinitionSource +{ + /** + * @var TestingEnvironmentVariables + */ + private $vars; + + /** + * @var string + */ + private $prefix; + + /** + * @param TestingEnvironmentVariables $vars + * @param string $prefix + */ + public function __construct(TestingEnvironmentVariables $vars, $prefix = 'test.vars.') + { + $this->vars = $vars; + $this->prefix = $prefix; + } + + /** + * {@inheritdoc} + */ + public function getDefinition($name) + { + if (strpos($name, $this->prefix) !== 0) { + return null; + } + + $variableName = $this->parseVariableName($name); + + return new ValueDefinition($name, $this->vars->$variableName); + } + + private function parseVariableName($name) + { + $parts = explode('.', $name, 3); + return @$parts[2]; + } +} \ No newline at end of file diff --git a/tests/PHPUnit/System/AutoSuggestAPITest.php b/tests/PHPUnit/System/AutoSuggestAPITest.php index 2b08d2ef7058f566f63118ba14f8b3717c70a8b6..d08209b1d8878e4d895907dddacd6457b71cdf3d 100644 --- a/tests/PHPUnit/System/AutoSuggestAPITest.php +++ b/tests/PHPUnit/System/AutoSuggestAPITest.php @@ -164,7 +164,6 @@ class AutoSuggestAPITest extends SystemTestCase $segments = \Piwik\Plugins\API\API::getInstance()->getSegmentsMetadata($idSite); return $segments; } - } AutoSuggestAPITest::$fixture = new ManyVisitsWithGeoIP();