diff options
author | Matthieu Napoli <matthieu@mnapoli.fr> | 2015-03-13 03:36:51 +0300 |
---|---|---|
committer | Matthieu Napoli <matthieu@mnapoli.fr> | 2015-03-16 00:35:51 +0300 |
commit | fa55ac8a79cccdab6704e20b513fb0bc6d898b00 (patch) | |
tree | 4d4b47c2584a6d7dc7820d602f4247878c90ef65 /tests | |
parent | ca2f0d3047cee0e084bf02d1e6bae4761eb7c3c0 (diff) |
Tests fixtures can provide DI configuration
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Framework/Fixture.php | 10 | ||||
-rw-r--r-- | tests/PHPUnit/TestingEnvironment.php | 15 | ||||
-rw-r--r-- | tests/lib/screenshot-testing/support/test-environment.js | 3 |
3 files changed, 28 insertions, 0 deletions
diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php index d5f9aa397c..302d1192e2 100644 --- a/tests/PHPUnit/Framework/Fixture.php +++ b/tests/PHPUnit/Framework/Fixture.php @@ -882,4 +882,14 @@ class Fixture extends \PHPUnit_Framework_Assert return $result; } + + /** + * Use this method to return custom container configuration that you want to apply for the tests. + * + * @return array + */ + public function provideContainerConfig() + { + return array(); + } } diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php index 97d98dbff8..3acc202a91 100644 --- a/tests/PHPUnit/TestingEnvironment.php +++ b/tests/PHPUnit/TestingEnvironment.php @@ -2,10 +2,12 @@ use Piwik\Common; use Piwik\Config; +use Piwik\Container\StaticContainer; use Piwik\Piwik; use Piwik\Option; use Piwik\Plugin\Manager as PluginManager; use Piwik\DbHelper; +use Piwik\Tests\Framework\Fixture; require_once PIWIK_INCLUDE_PATH . "/core/Config.php"; @@ -148,6 +150,19 @@ class Piwik_TestingEnvironment $testingEnvironment->configFileGlobal, $testingEnvironment->configFileLocal, $testingEnvironment->configFileCommon )); + // Apply DI config from the fixture + if ($testingEnvironment->fixtureClass) { + $fixtureClass = $testingEnvironment->fixtureClass; + if (class_exists($fixtureClass)) { + /** @var Fixture $fixture */ + $fixture = new $fixtureClass; + $diConfig = $fixture->provideContainerConfig(); + if (!empty($diConfig)) { + StaticContainer::addDefinitions($diConfig); + } + } + } + \Piwik\Cache\Backend\File::$invalidateOpCacheBeforeRead = true; Piwik::addAction('Access.createAccessSingleton', function($access) use ($testingEnvironment) { diff --git a/tests/lib/screenshot-testing/support/test-environment.js b/tests/lib/screenshot-testing/support/test-environment.js index 9379ab88da..8a8dc183bf 100644 --- a/tests/lib/screenshot-testing/support/test-environment.js +++ b/tests/lib/screenshot-testing/support/test-environment.js @@ -153,6 +153,9 @@ TestingEnvironment.prototype.setupFixture = function (fixtureClass, done) { self.reload(); self.addPluginOnCmdLineToTestEnv(); + self.fixtureClass = fixtureClass; + self.save(); + console.log(); if (code) { |