diff --git a/plugins/API/ProcessedReport.php b/plugins/API/ProcessedReport.php index 9c6893057dba31e7a5bb74547fb4e25791efb497..772ff911f45bddf15c6a07c9a939513cb5681014 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 fdd4ceb1e06b2776e75dd50de96cef39e083ab58..2da59d83e0c9ff929ab3beb57d3014f81df78d13 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 0dd79873ab453afa8b87b7622da39a384c8fa6f1..470582cbbdc28b8fc8c1d15677b9188ca3cc57bb 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;