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
path: root/tests
diff options
context:
space:
mode:
authorMatthieu Napoli <matthieu@mnapoli.fr>2015-03-13 03:36:51 +0300
committerMatthieu Napoli <matthieu@mnapoli.fr>2015-03-16 00:35:51 +0300
commitfa55ac8a79cccdab6704e20b513fb0bc6d898b00 (patch)
tree4d4b47c2584a6d7dc7820d602f4247878c90ef65 /tests
parentca2f0d3047cee0e084bf02d1e6bae4761eb7c3c0 (diff)
Tests fixtures can provide DI configuration
Diffstat (limited to 'tests')
-rw-r--r--tests/PHPUnit/Framework/Fixture.php10
-rw-r--r--tests/PHPUnit/TestingEnvironment.php15
-rw-r--r--tests/lib/screenshot-testing/support/test-environment.js3
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) {