diff --git a/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php b/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php index 8d23dae4e17..93e2fb85743 100644 --- a/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php +++ b/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php @@ -142,7 +142,7 @@ public function compute(Row $row) $ratio = self::getRatio($this->currentData, $this->pastData, $row); $period = $this->pastData->getMetadata(DataTableFactory::TABLE_METADATA_PERIOD_INDEX); $row->setMetadata('ratio', $ratio); - $row->setMetadata('currencySymbol', $row['label'] !== DataTable::ID_SUMMARY_ROW ? Site::getCurrencySymbolFor($row['label']) : API::getInstance()->getDefaultCurrency()); + $row->setMetadata('currencySymbol', $row['label'] !== DataTable::ID_SUMMARY_ROW && $row['label'] !== DataTable::LABEL_TOTALS_ROW ? Site::getCurrencySymbolFor($row['label']) : API::getInstance()->getDefaultCurrency()); $row->setMetadata('previous_'.$columnName, $pastValue); $row->setMetadata('periodName', $period->getLabel()); $row->setMetadata('previousRange', $period->getLocalizedShortString()); diff --git a/plugins/CoreHome/tests/Integration/Columns/Metrics/EvolutionMetricTest.php b/plugins/CoreHome/tests/Integration/Columns/Metrics/EvolutionMetricTest.php new file mode 100644 index 00000000000..cb379e081cd --- /dev/null +++ b/plugins/CoreHome/tests/Integration/Columns/Metrics/EvolutionMetricTest.php @@ -0,0 +1,57 @@ +assertNoFailureOnComputeForLabel(DataTable::ID_SUMMARY_ROW); + } + + public function test_shouldNotBreakIfTotalsRowGiven() + { + $this->assertNoFailureOnComputeForLabel(DataTable::LABEL_TOTALS_ROW); + } + + private function assertNoFailureOnComputeForLabel($label): void + { + $pastData = new DataTable(); + $cPeriod = new \Piwik\Period\Week(Date::factory('2021-10-10')); + $pastData->setMetadata('period', $cPeriod); + + $evolution = new EvolutionMetric('nb_visits', $pastData); + + $row = new Row([Row::COLUMNS => ['nb_visits' => 5, 'label' => $label]]); + $evolution->compute($row); + + $currency = $row->getMetadata('currencySymbol'); + $this->assertNotEmpty($currency); + } +} diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml index 5e1bf83be41..1f22f6a2cf7 100644 --- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml @@ -342,5 +342,16 @@ + 9 + 31 + 31 + 35 + <_metadata> + today-date-removed-in-tests + + 7 + 7 + 7 + 6 \ No newline at end of file