1
0
قرینه از https://github.com/matomo-org/matomo.git synced 2025-08-22 06:57:53 +00:00
Files
matomo/plugins/CoreVisualizations/tests/Unit/GraphTest.php
Michal Kleiner 9a3ef94df6 [Coding Style] Enable rule PSR12.Files.FileHeader + unify file headers (#22132)
* [Coding Style] Enable rule PSR12.Files.FileHeader

* Apply CS

* Replace Piwik with Matomo in file headers

* Unify file headers (position, no. of lines, https links)

* Rebuild dist files

* Apply CS

* Fix system test that relies on line numbers in a file that had the file header updated

---------

Co-authored-by: Stefan Giehl <stefan@matomo.org>
2024-04-20 20:50:47 +02:00

154 خطوط
4.5 KiB
PHP

<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CoreVisualizations\tests\Unit;
use Piwik\DataTable;
/**
* @group CoreVisualizations
* @group SparklinesConfigTest
* @group Sparklines
* @group Plugins
*/
class GraphTest extends \PHPUnit\Framework\TestCase
{
public function testSelectableColumnsAlreadySet()
{
$bar = $this->getMockGraph(array());
$bar->config->selectable_columns = array('nb_abc', 'nb_xyz');
$bar->afterAllFiltersAreApplied();
$columns = array_column($bar->config->selectable_columns, 'column');
$this->assertEquals(array('nb_abc', 'nb_xyz'), $columns);
}
public function testSelectableColumnsNbVisitsOnlyPresent()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'nb_visits' => 0,
));
$bar->afterAllFiltersAreApplied();
$columns = array_column($bar->config->selectable_columns, 'column');
$this->assertEquals(array('nb_visits'), $columns);
}
public function testSelectableColumnsUniqueVisitorsPresent()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'nb_visits' => 5,
'nb_uniq_visitors' => 2,
'nb_something_else' => 1
));
$bar->afterAllFiltersAreApplied();
$columns = array_column($bar->config->selectable_columns, 'column');
$this->assertEquals(array('nb_visits', 'nb_uniq_visitors'), $columns);
}
public function testSelectableColumnsNoDefaultColumnsPresent()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'foo' => 5,
'bar' => 2
));
$bar->afterAllFiltersAreApplied();
$columns = array_column($bar->config->selectable_columns, 'column');
$this->assertEquals(array('foo', 'bar'), $columns);
}
public function testSelectableColumnsNoDefaultColumnsPresentLabelNotPresent()
{
$bar = $this->getMockGraph(array(
'foo' => 5,
'bar' => 2
));
$bar->afterAllFiltersAreApplied();
$columns = array_column($bar->config->selectable_columns, 'column');
$this->assertEquals(array('foo', 'bar'), $columns);
}
public function testSelectableColumnsAlreadySetToEmptyArray()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'foo' => 5,
'bar' => 2
));
$bar->config->selectable_columns = array();
$bar->afterAllFiltersAreApplied();
$this->assertEmpty($bar->config->selectable_columns);
}
public function testColumnsToDisplayNotInDataset()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'nb_visits' => 25,
'nb_actions' => 80
));
// Not present in the dataset = should be thrown out and replaced with first value from dataset
$bar->config->columns_to_display = array('nb_uniq_visitors');
$bar->afterAllFiltersAreApplied();
$this->assertEquals(array('nb_visits'), $bar->config->columns_to_display);
}
public function testColumnsToDisplayNotInSelectableColumns()
{
$bar = $this->getMockGraph(array(
'label' => 'abc',
'nb_visits' => 25,
'nb_actions' => 80
));
// columns_to_display is not present in selectable_columbs, but as long as it's in the data set that's OK
$bar->config->selectable_columns = array('nb_visits');
$bar->config->columns_to_display = array('nb_actions');
$bar->afterAllFiltersAreApplied();
$this->assertEquals(array('nb_actions'), $bar->config->columns_to_display);
}
/**
* @return \Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Bar
*/
private function getMockGraph(array $firstDataRow)
{
$row = new DataTable\Row(array(
DataTable\Row::COLUMNS => $firstDataRow
));
$dataTable = new DataTable();
$dataTable->setRows(array($row));
$bar = $this->getMockBuilder('Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Bar')
->setMethods(['getDataTable'])
->setConstructorArgs(['', ''])
->getMock();
$bar->expects($this->any())
->method('getDataTable')
->will($this->returnValue($dataTable));
return $bar;
}
}