diff options
author | diosmosis <benaka@piwik.pro> | 2015-09-03 00:12:24 +0300 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2015-09-03 01:42:51 +0300 |
commit | 173259c446a6446936f3cfdea4735124a0d346b7 (patch) | |
tree | 4aa7a8f80605955ddfc31c10dab46ff4d59bc629 /tests/PHPUnit/System/AutoSuggestAPITest.php | |
parent | 76adbdc804d8ab9e2c7e938bf28b7ba0ff4481b7 (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.php | 58 |
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; } } |