diff options
author | AltamashShaikh <altamash@innocraft.com> | 2021-11-02 12:44:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-02 12:44:34 +0300 |
commit | 1ff74449e73517b1d93bfdaab346ba5e5dd36d78 (patch) | |
tree | 13350c39e293a4eed51a26340ba0a7d27f8049fd /tests/PHPUnit/Framework | |
parent | bd326ab72947aeef0dbef67aba459b1650f5516c (diff) |
Added code to filter response for API.getReportPagesMetadata and API.getWidgetMetadata (#18233)
* Added code to filter response for API.getReportPagesMetadata and API.getWidgetMetadata, #DEV-2366
* Updated filters check when the filterkey is array
* Added testcases with filter for API.getWidgetMetadata and API.getReportPagesMetadata
Diffstat (limited to 'tests/PHPUnit/Framework')
-rw-r--r-- | tests/PHPUnit/Framework/TestCase/SystemTestCase.php | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php index 40cc36ff89..65b0d83880 100644 --- a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php +++ b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php @@ -62,6 +62,24 @@ abstract class SystemTestCase extends TestCase private static $allowedModulesApiWise = array(); private static $allowedCategoriesApiWise = array(); + private static $apisToFilterResponse = array( + 'API.getReportMetadata' => array( + 'actionName' => 'API.getReportMetadata.end', + 'filterKey' => 'module' + ), + 'API.getSegmentsMetadata' => array( + 'actionName' => 'API.API.getSegmentsMetadata.end', + 'filterKey' => 'category' + ), + 'API.getReportPagesMetadata' => array( + 'actionName' => 'API.API.getReportPagesMetadata.end', + 'filterKey' => 'category' + ), + 'API.getWidgetMetadata' => array( + 'actionName' => 'API.API.getWidgetMetadata.end', + 'filterKey' => 'module' + ), + ); public function setGroups(array $groups): void { @@ -105,21 +123,19 @@ abstract class SystemTestCase extends TestCase static::fail("Failed to setup fixture: " . $e->getMessage() . "\n" . $e->getTraceAsString()); } - Piwik::addAction('API.getReportMetadata.end', function (&$reports, $info) { - $allowedModuleForApiMetadataReport = self::getAllowedModulesToFilterApiResponse('API.getReportMetadata'); - if ($allowedModuleForApiMetadataReport) { - $filterKey = 'module'; - self::filterReportsCallback($reports, $info, $filterKey, $allowedModuleForApiMetadataReport); - } - }); - - Piwik::addAction('API.API.getSegmentsMetadata.end', function (&$reports, $info) { - $allowedCategoryForApiSegmentsReport = self::getAllowedCategoriesToFilterApiResponse('API.getSegmentsMetadata'); - if ($allowedCategoryForApiSegmentsReport) { - $filterKey = 'category'; - self::filterReportsCallback($reports, $info, $filterKey, $allowedCategoryForApiSegmentsReport); - } - }); + foreach (self::$apisToFilterResponse as $api => $apiValue) { + Piwik::addAction($apiValue['actionName'], function (&$reports, $info) use ($api, $apiValue) { + $filterValues = array(); + if ($apiValue['filterKey'] === 'module') { + $filterValues = self::getAllowedModulesToFilterApiResponse($api); + } else if ($apiValue['filterKey'] === 'category') { + $filterValues = self::getAllowedCategoriesToFilterApiResponse($api); + } + if ($filterValues) { + self::filterReportsCallback($reports, $info, $api, $apiValue['filterKey'], $filterValues); + } + }); + } } public static function tearDownAfterClass(): void @@ -889,11 +905,19 @@ abstract class SystemTestCase extends TestCase return (self::$allowedCategoriesApiWise[$api] ?? NULL); } - private static function filterReportsCallback(&$reports, $info, $filterKey, $filterValues) + private static function filterReportsCallback(&$reports, $info, $api, $filterKey, $filterValues) { if (!empty($reports)) { foreach ($reports as $key => $row) { - if (!isset($row[$filterKey]) || !in_array($row[$filterKey], $filterValues)) { + if ( + !isset($row[$filterKey]) || + ( + is_array($row[$filterKey]) && + isset($row[$filterKey]['name']) && + !in_array($row[$filterKey]['name'], $filterValues) + ) || + !is_array($row[$filterKey]) && !in_array($row[$filterKey], $filterValues) + ) { unset($reports[$key]); } } |