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-09-03 00:12:24 +0300
committerdiosmosis <benaka@piwik.pro>2015-09-03 01:42:51 +0300
commit173259c446a6446936f3cfdea4735124a0d346b7 (patch)
tree4aa7a8f80605955ddfc31c10dab46ff4d59bc629 /tests/PHPUnit/System/AutoSuggestAPITest.php
parent76adbdc804d8ab9e2c7e938bf28b7ba0ff4481b7 (diff)
Refactor API.getSegmentsMetadata and Plugin\Segment so segments are all defined through Plugin\Segment class in dimensions & make sure AutoSuggestAPITest data providers do not use database.
Diffstat (limited to 'tests/PHPUnit/System/AutoSuggestAPITest.php')
-rw-r--r--tests/PHPUnit/System/AutoSuggestAPITest.php58
1 files changed, 44 insertions, 14 deletions
diff --git a/tests/PHPUnit/System/AutoSuggestAPITest.php b/tests/PHPUnit/System/AutoSuggestAPITest.php
index d08209b1d8..c803556876 100644
--- a/tests/PHPUnit/System/AutoSuggestAPITest.php
+++ b/tests/PHPUnit/System/AutoSuggestAPITest.php
@@ -8,8 +8,11 @@
namespace Piwik\Tests\System;
use Piwik\API\Request;
+use Piwik\Application\Environment;
+use Piwik\Columns\Dimension;
use Piwik\Common;
use Piwik\Date;
+use Piwik\Plugins\CustomVariables\Model;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
use Piwik\Tests\Fixtures\ManyVisitsWithGeoIP;
use Piwik\Tests\Framework\Fixture;
@@ -45,15 +48,12 @@ class AutoSuggestAPITest extends SystemTestCase
public function getApiForTesting()
{
- // we will test all segments from all plugins
- Fixture::loadAllPlugins();
-
$idSite = self::$fixture->idSite;
- $apiForTesting = array();
+ $segments = self::getSegmentsMetadata();
- $segments = \Piwik\Plugins\API\API::getInstance()->getSegmentsMetadata(self::$fixture->idSite);
+ $apiForTesting = array();
foreach ($segments as $segment) {
- $apiForTesting[] = $this->getApiForTestingForSegment($idSite, $segment['segment']);
+ $apiForTesting[] = $this->getApiForTestingForSegment($idSite, $segment);
}
if (self::isMysqli() || self::isTravisCI()) {
@@ -119,11 +119,11 @@ class AutoSuggestAPITest extends SystemTestCase
public function getAnotherApiForTesting()
{
- $segments = self::getSegmentsMetadata(self::$fixture->idSite);
+ $segments = self::getSegmentsMetadata();
$apiForTesting = array();
foreach ($segments as $segment) {
- if(self::isTravisCI() && $segment['segment'] == 'deviceType') {
+ if(self::isTravisCI() && $segment == 'deviceType') {
// test started failing after bc19503 and I cannot understand why
continue;
}
@@ -131,8 +131,8 @@ class AutoSuggestAPITest extends SystemTestCase
array('idSite' => self::$fixture->idSite,
'date' => date("Y-m-d", strtotime(self::$fixture->dateTime)) . ',today',
'period' => 'range',
- 'testSuffix' => '_' . $segment['segment'],
- 'segmentToComplete' => $segment['segment']));
+ 'testSuffix' => '_' . $segment,
+ 'segmentToComplete' => $segment));
}
return $apiForTesting;
}
@@ -153,15 +153,45 @@ class AutoSuggestAPITest extends SystemTestCase
$this->assertGreaterThan($minimumSegmentsToTest, self::$processed, $message);
}
- public static function getSegmentsMetadata($idSite)
+ public static function getSegmentsMetadata()
{
// Refresh cache for CustomVariables\Model
Cache::clearCacheGeneral();
- \Piwik\Plugins\CustomVariables\Model::install();
+ $segments = array();
+
+ $environment = new Environment(null);
+
+ $exception = null;
+ try {
+ $environment->init();
+ $environment->getContainer()->get('Piwik\Plugin\Manager')->loadActivatedPlugins();
+
+ foreach (Dimension::getAllDimensions() as $dimension) {
+ foreach ($dimension->getSegments() as $segment) {
+ $segments[] = $segment->getSegment();
+ }
+ }
+
+ // add CustomVariables manually since the data provider may not have access to the DB
+ for ($i = 1; $i != Model::DEFAULT_CUSTOM_VAR_COUNT + 1; ++$i) {
+ $segments[] = 'customVariableName' . $i;
+ $segments[] = 'customVariableValue' . $i;
+ $segments[] = 'customVariablePageName' . $i;
+ $segments[] = 'customVariablePageValue' . $i;
+ }
+ } catch (\Exception $ex) {
+ $exception = $ex;
+
+ echo $ex->getMessage()."\n".$ex->getTraceAsString()."\n";
+ }
+
+ $environment->destroy();
+
+ if (!empty($exception)) {
+ throw $exception;
+ }
- // Segment matching NONE
- $segments = \Piwik\Plugins\API\API::getInstance()->getSegmentsMetadata($idSite);
return $segments;
}
}