From accb37555018eb619db4a4be24083d6161f5462a Mon Sep 17 00:00:00 2001 From: Stefan Giehl <stefan@piwik.org> Date: Mon, 6 Jun 2016 11:33:08 +0200 Subject: [PATCH] ensure to reset translated categories for each system test (#10210) --- plugins/API/ProcessedReport.php | 22 ++++++++++++++----- tests/PHPUnit/Framework/Fixture.php | 3 +++ .../Framework/TestCase/SystemTestCase.php | 1 - 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/plugins/API/ProcessedReport.php b/plugins/API/ProcessedReport.php index 9c6893057d..772ff911f4 100644 --- a/plugins/API/ProcessedReport.php +++ b/plugins/API/ProcessedReport.php @@ -339,6 +339,17 @@ class ProcessedReport return $actualReports; // make sure array has contiguous key values } + private static $translatedOrderOfReports = null; + + /** + * Resets translated reports. + * FOR TESTING ONLY + */ + public static function reset() + { + self::$translatedOrderOfReports = null; + } + /** * API metadata are sorted by category/name, * with a little tweak to replicate the standard Piwik category ordering @@ -349,16 +360,15 @@ class ProcessedReport */ private static function sortReports($a, $b) { - static $order = null; - if (is_null($order)) { - $order = array(); + if (is_null(self::$translatedOrderOfReports)) { + self::$translatedOrderOfReports = array(); foreach (Report::$orderOfReports as $category) { - $order[] = Piwik::translate($category); + self::$translatedOrderOfReports[] = Piwik::translate($category); } } - $posA = array_search($a['category'], $order); - $posB = array_search($b['category'], $order); + $posA = array_search($a['category'], self::$translatedOrderOfReports); + $posB = array_search($b['category'], self::$translatedOrderOfReports); if ($posA === false && $posB === false) { return strcmp($a['category'], $b['category']); diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php index fdd4ceb1e0..2da59d83e0 100644 --- a/tests/PHPUnit/Framework/Fixture.php +++ b/tests/PHPUnit/Framework/Fixture.php @@ -28,6 +28,7 @@ use Piwik\Option; use Piwik\Piwik; use Piwik\Plugin; use Piwik\Plugin\Manager; +use Piwik\Plugins\API\ProcessedReport; use Piwik\Plugins\LanguagesManager\API as APILanguageManager; use Piwik\Plugins\MobileMessaging\MobileMessaging; use Piwik\Plugins\PrivacyManager\DoNotTrackHeaderChecker; @@ -255,6 +256,8 @@ class Fixture extends \PHPUnit_Framework_Assert Cache::deleteTrackerCache(); + ProcessedReport::reset(); + self::resetPluginsInstalledConfig(); $testEnvironment = $this->getTestEnvironment(); diff --git a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php index 0dd79873ab..470582cbbd 100755 --- a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php +++ b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php @@ -22,7 +22,6 @@ use Piwik\Tests\Framework\Constraint\HttpResponseText; use Piwik\Tests\Framework\TestRequest\ApiTestConfig; use Piwik\Tests\Framework\TestRequest\Collection; use Piwik\Tests\Framework\TestRequest\Response; -use Piwik\Translate; use Piwik\Log; use PHPUnit_Framework_TestCase; use Piwik\Tests\Framework\Fixture; -- GitLab