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:
authordiosmosis <benaka@piwik.pro>2015-04-06 02:15:57 +0300
committerdiosmosis <benaka@piwik.pro>2015-04-06 02:15:57 +0300
commit2c087e9c8e454747efb35c9fd22a815bd2093470 (patch)
tree3c840b8f5f9c4eb589eb6e857e88d637047623f3
parent3661b2c763438e4d64420d4b9c12d54f838469bb (diff)
Fixing unit tests, includes environment creation/destruction to UnitTestCase base class + ability to override environment in UnitTestCase.
-rw-r--r--core/Application/Environment.php14
-rw-r--r--core/Config/IniFileChainFactory.php17
-rwxr-xr-xtests/PHPUnit/Framework/TestCase/UnitTestCase.php33
-rw-r--r--tests/PHPUnit/Unit/AssetManagerTest.php18
-rw-r--r--tests/PHPUnit/Unit/Columns/DimensionTest.php6
-rw-r--r--tests/PHPUnit/Unit/Container/IniConfigDefinitionSourceTest.php17
-rw-r--r--tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterByLabelMappingTest.php2
-rw-r--r--tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterBySegmentValueTest.php2
-rw-r--r--tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php9
-rw-r--r--tests/PHPUnit/Unit/Plugin/Dimension/ActionDimensionTest.php11
-rw-r--r--tests/PHPUnit/Unit/Plugin/Dimension/ConversionDimensionTest.php11
-rw-r--r--tests/PHPUnit/Unit/Plugin/Dimension/VisitDimensionTest.php11
-rw-r--r--tests/resources/Config/config.written.ini.php6
13 files changed, 100 insertions, 57 deletions
diff --git a/core/Application/Environment.php b/core/Application/Environment.php
index cabf9273a9..08cdf9cc17 100644
--- a/core/Application/Environment.php
+++ b/core/Application/Environment.php
@@ -22,9 +22,17 @@ use Piwik\Piwik;
*/
class Environment
{
+ /**
+ * @var string
+ */
private $environment;
/**
+ * @var array
+ */
+ private $definitions;
+
+ /**
* @var Container
*/
private $container;
@@ -39,9 +47,10 @@ class Environment
*/
private $pluginList;
- public function __construct($environment)
+ public function __construct($environment, array $definitions = array())
{
$this->environment = $environment;
+ $this->definitions = $definitions;
}
public function init()
@@ -70,8 +79,9 @@ class Environment
{
$pluginList = $this->getPluginListCached();
$settings = $this->getGlobalSettingsCached();
+ $definitions = array_merge(StaticContainer::getDefinitons(), $this->definitions);
- $containerFactory = new ContainerFactory($pluginList, $settings, $this->environment, StaticContainer::getDefinitons());
+ $containerFactory = new ContainerFactory($pluginList, $settings, $this->environment, $definitions);
return $containerFactory->create();
}
diff --git a/core/Config/IniFileChainFactory.php b/core/Config/IniFileChainFactory.php
index d4b0e12d32..46025b374c 100644
--- a/core/Config/IniFileChainFactory.php
+++ b/core/Config/IniFileChainFactory.php
@@ -10,8 +10,6 @@ use Piwik\SettingsServer;
class IniFileChainFactory
{
- static $instance = null;
-
/**
* TODO should not be a static eventually
*
@@ -21,11 +19,7 @@ class IniFileChainFactory
*/
public static function get($pathGlobal = null, $pathLocal = null, $pathCommon = null)
{
- if (self::$instance) {
- return self::$instance;
- }
-
- self::$instance = new IniFileChain();
+ $instance = new IniFileChain();
$inTrackerRequest = SettingsServer::isTrackerApiRequest();
@@ -40,7 +34,7 @@ class IniFileChainFactory
}
try {
- self::$instance->reload(array($pathGlobal, $pathCommon), $pathLocal);
+ $instance->reload(array($pathGlobal, $pathCommon), $pathLocal);
} catch (IniReadingException $e) {
// TODO why a different behavior here? This needs a comment
if ($inTrackerRequest) {
@@ -48,11 +42,6 @@ class IniFileChainFactory
}
}
- return self::$instance;
- }
-
- public static function unsetInstance()
- {
- self::$instance = null;
+ return $instance;
}
}
diff --git a/tests/PHPUnit/Framework/TestCase/UnitTestCase.php b/tests/PHPUnit/Framework/TestCase/UnitTestCase.php
index 8e07c39cc7..69347c99c7 100755
--- a/tests/PHPUnit/Framework/TestCase/UnitTestCase.php
+++ b/tests/PHPUnit/Framework/TestCase/UnitTestCase.php
@@ -7,10 +7,12 @@
*/
namespace Piwik\Tests\Framework\TestCase;
+
+use Piwik\Application\Environment;
+use Piwik\Container\StaticContainer;
use Piwik\EventDispatcher;
use Piwik\Tests\Framework\Mock\File;
-
/**
* Base class for Unit tests.
*
@@ -18,16 +20,43 @@ use Piwik\Tests\Framework\Mock\File;
*/
abstract class UnitTestCase extends \PHPUnit_Framework_TestCase
{
+ /**
+ * @var Environment
+ */
+ private $environment;
+
public function setUp()
{
parent::setUp();
+
+ $this->environment = new Environment('test', $this->provideContainerConfig());
+ $this->environment->init();
+
File::reset();
EventDispatcher::getInstance()->clearAllObservers();
}
public function tearDown()
{
- parent::tearDown();
File::reset();
+
+ StaticContainer::clearContainer();
+
+ // make sure the global container exists for the next test case that is executed (since logging can be done
+ // before a test sets up an environment)
+ $nextTestEnviornment = new Environment('test');
+ $nextTestEnviornment->init();
+
+ parent::tearDown();
+ }
+
+ /**
+ * TODO
+ *
+ * @return array
+ */
+ protected function provideContainerConfig()
+ {
+ return array();
}
}
diff --git a/tests/PHPUnit/Unit/AssetManagerTest.php b/tests/PHPUnit/Unit/AssetManagerTest.php
index 658331bcdb..b455273578 100644
--- a/tests/PHPUnit/Unit/AssetManagerTest.php
+++ b/tests/PHPUnit/Unit/AssetManagerTest.php
@@ -18,6 +18,7 @@ use Piwik\Plugin;
use Piwik\Plugin\Manager;
use Piwik\EventDispatcher;
use Piwik\Tests\Framework\Mock\TestConfig;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
use Piwik\Tests\Unit\AssetManager\PluginManagerMock;
use Piwik\Tests\Unit\AssetManager\PluginMock;
use Piwik\Tests\Unit\AssetManager\ThemeMock;
@@ -26,7 +27,7 @@ use Piwik\Tests\Unit\AssetManager\UIAssetCacheBusterMock;
/**
* @group AssetManagerTest
*/
-class AssetManagerTest extends PHPUnit_Framework_TestCase
+class AssetManagerTest extends UnitTestCase
{
// todo Theme->rewriteAssetPathIfOverridesFound is not tested
@@ -65,6 +66,8 @@ class AssetManagerTest extends PHPUnit_Framework_TestCase
public function setUp()
{
+ parent::setUp();
+
$this->activateMergedAssets();
$this->setUpCacheBuster();
@@ -81,7 +84,15 @@ class AssetManagerTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
$this->assetManager->removeMergedAssets();
- Manager::unsetInstance();
+
+ parent::tearDown();
+ }
+
+ protected function provideContainerConfig()
+ {
+ return array(
+ 'Piwik\Plugin\Manager' => \DI\object('Piwik\Tests\Unit\AssetManager\PluginManagerMock')
+ );
}
private function activateMergedAssets()
@@ -121,8 +132,7 @@ class AssetManagerTest extends PHPUnit_Framework_TestCase
private function setUpPluginManager()
{
- $this->pluginManager = PluginManagerMock::getInstance();
- Manager::setSingletonInstance($this->pluginManager);
+ $this->pluginManager = Manager::getInstance();
EventDispatcher::unsetInstance(); // EventDispatcher stores a reference to Plugin Manager
}
diff --git a/tests/PHPUnit/Unit/Columns/DimensionTest.php b/tests/PHPUnit/Unit/Columns/DimensionTest.php
index f38863a520..3855f1186a 100644
--- a/tests/PHPUnit/Unit/Columns/DimensionTest.php
+++ b/tests/PHPUnit/Unit/Columns/DimensionTest.php
@@ -51,11 +51,12 @@ namespace Piwik\Tests\Unit\Columns
use Piwik\Plugin\Manager;
use Piwik\Plugins\Test\Columns\DimensionTest;
use Piwik\Plugins\Test\FakeActionDimension;
+ use Piwik\Tests\Framework\TestCase\UnitTestCase;
/**
* @group Core
*/
- class ColumnDimensionTest extends \PHPUnit_Framework_TestCase
+ class ColumnDimensionTest extends UnitTestCase
{
/**
* @var FakeActionDimension
@@ -64,6 +65,8 @@ namespace Piwik\Tests\Unit\Columns
public function setUp()
{
+ parent::setUp();
+
Config::unsetInstance();
Manager::getInstance()->unloadPlugins();
@@ -75,7 +78,6 @@ namespace Piwik\Tests\Unit\Columns
public function tearDown()
{
Config::unsetInstance();
- Manager::unsetInstance();
parent::tearDown();
}
diff --git a/tests/PHPUnit/Unit/Container/IniConfigDefinitionSourceTest.php b/tests/PHPUnit/Unit/Container/IniConfigDefinitionSourceTest.php
index 7f2af07fd3..72b3cd6a97 100644
--- a/tests/PHPUnit/Unit/Container/IniConfigDefinitionSourceTest.php
+++ b/tests/PHPUnit/Unit/Container/IniConfigDefinitionSourceTest.php
@@ -9,7 +9,8 @@
namespace Piwik\Tests\Unit\Container;
use DI\Definition\ValueDefinition;
-use Piwik\Config\IniFileChain;
+use Piwik\Application\Kernel\GlobalSettingsProvider;
+use Piwik\Application\Kernel\GlobalSettingsProvider\IniSettingsProvider;
use Piwik\Container\IniConfigDefinitionSource;
class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
@@ -29,7 +30,7 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
*/
public function getDefinition_withUnknownConfigSection_shouldReturnEmptyArray()
{
- $definitionSource = new IniConfigDefinitionSource(new IniFileChain());
+ $definitionSource = new IniConfigDefinitionSource(new IniSettingsProvider());
/** @var ValueDefinition $definition */
$definition = $definitionSource->getDefinition('ini.foo');
@@ -44,7 +45,7 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
*/
public function getDefinition_withUnknownConfigSectionAndKey_shouldReturnNull()
{
- $definitionSource = new IniConfigDefinitionSource(new IniFileChain());
+ $definitionSource = new IniConfigDefinitionSource(new IniSettingsProvider());
$this->assertNull($definitionSource->getDefinition('ini.foo.bar'));
}
@@ -54,7 +55,7 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
*/
public function getDefinition_withUnknownConfigKey_shouldReturnNull()
{
- $definitionSource = new IniConfigDefinitionSource(new IniFileChain());
+ $definitionSource = new IniConfigDefinitionSource(new IniSettingsProvider());
$this->assertNull($definitionSource->getDefinition('ini.General.foo'));
}
@@ -66,7 +67,7 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
{
$config = $this->createConfig();
$config->expects($this->once())
- ->method('get')
+ ->method('getSection')
->with('General')
->willReturn(array('foo' => 'bar'));
@@ -88,7 +89,7 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
{
$config = $this->createConfig();
$config->expects($this->once())
- ->method('get')
+ ->method('getSection')
->with('General')
->willReturn(array('foo' => 'bar'));
@@ -103,10 +104,10 @@ class IniConfigDefinitionSourceTest extends \PHPUnit_Framework_TestCase
}
/**
- * @return \PHPUnit_Framework_MockObject_MockObject|IniFileChain
+ * @return \PHPUnit_Framework_MockObject_MockObject|GlobalSettingsProvider
*/
private function createConfig()
{
- return $this->getMock('Piwik\Config\IniFileChain', array(), array(), '', false);
+ return $this->getMock('Piwik\Application\Kernel\GlobalSettingsProvider', array(), array(), '', false);
}
}
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterByLabelMappingTest.php b/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterByLabelMappingTest.php
index fae1dc46b3..55083fd23b 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterByLabelMappingTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterByLabelMappingTest.php
@@ -30,6 +30,8 @@ class AddSegmentByLabelMappingTest extends UnitTestCase
public function setUp()
{
+ parent::setUp();
+
$this->table = new DataTable();
$this->addRow(array('label' => 1));
$this->addRow(array('label' => ''));
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterBySegmentValueTest.php b/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterBySegmentValueTest.php
index 2815818070..1ad9e58e22 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterBySegmentValueTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/AddSegmentFilterBySegmentValueTest.php
@@ -36,6 +36,8 @@ class AddSegmentBySegmentValueTest extends UnitTestCase
public function setUp()
{
+ parent::setUp();
+
$this->report = new GetCity();
$this->table = new DataTable();
$this->addRowWithMetadata(array('test' => '1'));
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php b/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
index b347edd62f..fb66358ba1 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
@@ -13,14 +13,14 @@ use Piwik\DataTable;
use Piwik\DataTable\Filter\PivotByDimension;
use Piwik\DataTable\Row;
use Piwik\Plugin\Manager as PluginManager;
-use PHPUnit_Framework_TestCase;
use Exception;
use Piwik\Tests\Framework\Mock\TestConfig;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
/**
* @group DataTableTest
*/
-class PivotByDimensionTest extends PHPUnit_Framework_TestCase
+class PivotByDimensionTest extends UnitTestCase
{
/**
* The number of segment tables that have been created. Used when injecting API results to make sure each
@@ -40,6 +40,8 @@ class PivotByDimensionTest extends PHPUnit_Framework_TestCase
public function setUp()
{
+ parent::setUp();
+
$self = $this;
$proxyMock = $this->getMock('stdClass', array('call'));
@@ -63,8 +65,9 @@ class PivotByDimensionTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
- PluginManager::unsetInstance();
Proxy::unsetInstance();
+
+ parent::tearDown();
}
/**
diff --git a/tests/PHPUnit/Unit/Plugin/Dimension/ActionDimensionTest.php b/tests/PHPUnit/Unit/Plugin/Dimension/ActionDimensionTest.php
index 5ea77cca84..7e79190971 100644
--- a/tests/PHPUnit/Unit/Plugin/Dimension/ActionDimensionTest.php
+++ b/tests/PHPUnit/Unit/Plugin/Dimension/ActionDimensionTest.php
@@ -12,6 +12,7 @@ namespace Piwik\Plugins\Test;
use Piwik\Plugin\Dimension\ActionDimension;
use Piwik\Plugin\Segment;
use Piwik\Plugin\Manager;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
class FakeActionDimension extends ActionDimension
{
@@ -45,7 +46,7 @@ class FakeActionDimension extends ActionDimension
/**
* @group Core
*/
-class Plugin_ActionDimensionTest extends \PHPUnit_Framework_TestCase
+class Plugin_ActionDimensionTest extends UnitTestCase
{
/**
* @var FakeActionDimension
@@ -54,18 +55,14 @@ class Plugin_ActionDimensionTest extends \PHPUnit_Framework_TestCase
public function setUp()
{
+ parent::setUp();
+
Manager::getInstance()->unloadPlugins();
Manager::getInstance()->doNotLoadAlwaysActivatedPlugins();
$this->dimension = new FakeActionDimension();
}
- public function tearDown()
- {
- Manager::unsetInstance();
- parent::tearDown();
- }
-
public function test_install_shouldNotReturnAnything_IfColumnTypeNotSpecified()
{
$this->dimension->set('columnType', '');
diff --git a/tests/PHPUnit/Unit/Plugin/Dimension/ConversionDimensionTest.php b/tests/PHPUnit/Unit/Plugin/Dimension/ConversionDimensionTest.php
index 3b8b2d9049..9e7950b253 100644
--- a/tests/PHPUnit/Unit/Plugin/Dimension/ConversionDimensionTest.php
+++ b/tests/PHPUnit/Unit/Plugin/Dimension/ConversionDimensionTest.php
@@ -12,6 +12,7 @@ namespace Piwik\Plugins\Test;
use Piwik\Plugin\Dimension\ConversionDimension;
use Piwik\Plugin\Segment;
use Piwik\Plugin\Manager;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
class FakeConversionDimension extends ConversionDimension
{
@@ -45,7 +46,7 @@ class FakeConversionDimension extends ConversionDimension
/**
* @group Core
*/
-class Plugin_ConversionDimensionTest extends \PHPUnit_Framework_TestCase
+class Plugin_ConversionDimensionTest extends UnitTestCase
{
/**
* @var FakeConversionDimension
@@ -54,18 +55,14 @@ class Plugin_ConversionDimensionTest extends \PHPUnit_Framework_TestCase
public function setUp()
{
+ parent::setUp();
+
Manager::getInstance()->unloadPlugins();
Manager::getInstance()->doNotLoadAlwaysActivatedPlugins();
$this->dimension = new FakeConversionDimension();
}
- public function tearDown()
- {
- Manager::unsetInstance();
- parent::tearDown();
- }
-
public function test_install_shouldNotReturnAnything_IfColumnTypeNotSpecified()
{
$this->dimension->set('columnType', '');
diff --git a/tests/PHPUnit/Unit/Plugin/Dimension/VisitDimensionTest.php b/tests/PHPUnit/Unit/Plugin/Dimension/VisitDimensionTest.php
index e34806371e..dc47ee1e41 100644
--- a/tests/PHPUnit/Unit/Plugin/Dimension/VisitDimensionTest.php
+++ b/tests/PHPUnit/Unit/Plugin/Dimension/VisitDimensionTest.php
@@ -12,6 +12,7 @@ namespace Piwik\Plugins\Test;
use Piwik\Plugin\Dimension\VisitDimension;
use Piwik\Plugin\Segment;
use Piwik\Plugin\Manager;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
use Piwik\Tracker\Request;
use Piwik\Tracker\Visitor;
@@ -61,7 +62,7 @@ class FakeConversionVisitDimension extends FakeVisitDimension
/**
* @group Core
*/
-class Plugin_VisitDimensionTest extends \PHPUnit_Framework_TestCase
+class Plugin_VisitDimensionTest extends UnitTestCase
{
/**
* @var FakeVisitDimension
@@ -75,6 +76,8 @@ class Plugin_VisitDimensionTest extends \PHPUnit_Framework_TestCase
public function setUp()
{
+ parent::setUp();
+
Manager::getInstance()->unloadPlugins();
Manager::getInstance()->doNotLoadAlwaysActivatedPlugins();
@@ -82,12 +85,6 @@ class Plugin_VisitDimensionTest extends \PHPUnit_Framework_TestCase
$this->conversionDimension = new FakeConversionVisitDimension();
}
- public function tearDown()
- {
- Manager::unsetInstance();
- parent::tearDown();
- }
-
public function test_install_shouldNotReturnAnything_IfColumnTypeNotSpecified()
{
$this->dimension->set('columnType', '');
diff --git a/tests/resources/Config/config.written.ini.php b/tests/resources/Config/config.written.ini.php
index b503701229..a412b689db 100644
--- a/tests/resources/Config/config.written.ini.php
+++ b/tests/resources/Config/config.written.ini.php
@@ -1,6 +1,10 @@
; <?php exit; ?> DO NOT REMOVE THIS LINE
; file automatically generated or modified by Piwik; you can manually override the default values in global.ini.php by redefining them in this file.
+[Development]
+disable_merged_assets = 0
+
[Category]
test = "&amp;6^ geagea'''&quot;;;&amp;"
-test2 = "&amp;6^ geagea'''&quot;;;&amp;"
+
+[PluginsInstalled]