1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
<?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\VisitFrequency\tests;
use Piwik\DataTable\DataTableInterface;
use Piwik\Plugins\VisitFrequency\API;
use Piwik\Tests\Framework\Fixture;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
class APITest extends IntegrationTestCase
{
private $api;
private $idSite;
public function setUp(): void
{
parent::setUp();
$this->api = API::getInstance();
$this->idSite = Fixture::createWebsite('2018-12-01');
}
public function testNewMetricsOnly()
{
$columns = array('nb_visits_new', 'nb_actions_new');
/** @var DataTableInterface $dataTable */
$dataTable = $this->api->get($this->idSite, 'week', '2019-01-01', false, $columns);
$this->assertEquals($dataTable->getRowsCount(), 1);
$columnsReturned = array_keys($dataTable->getFirstRow()->getArrayCopy());
$this->assertEquals($columns, $columnsReturned);
}
public function testReturningMetricsOnly()
{
$columns = array('nb_visits_returning', 'nb_uniq_visitors_returning');
/** @var DataTableInterface $dataTable */
$dataTable = $this->api->get($this->idSite, 'week', '2019-01-01', false, $columns);
$this->assertEquals($dataTable->getRowsCount(), 1);
$columnsReturned = array_keys($dataTable->getFirstRow()->getArrayCopy());
$this->assertEquals($columns, $columnsReturned);
}
public function testNoNewOrReturningMetrics()
{
$columns = array('nb_visits');
/** @var DataTableInterface $dataTable */
$dataTable = $this->api->get($this->idSite, 'week', '2019-01-01', false, $columns);
$this->assertEquals($dataTable->getRowsCount(), 0);
}
public function testDifferentNewAndReturningMetrics()
{
$columns = array('nb_visits_new', 'nb_actions_per_visit_new', 'nb_actions_returning', 'avg_time_on_site_returning');
/** @var DataTableInterface $dataTable */
$dataTable = $this->api->get($this->idSite, 'week', '2019-01-01', false, $columns);
$this->assertEquals($dataTable->getRowsCount(), 1);
$columnsReturned = array_keys($dataTable->getFirstRow()->getArrayCopy());
$this->assertEquals($columns, $columnsReturned);
}
public function testNoColumnsPassed()
{
/** @var DataTableInterface $dataTable */
$dataTable = $this->api->get($this->idSite, 'week', '2019-01-01');
$this->assertEquals($dataTable->getRowsCount(), 1);
$columnsReturned = array_keys($dataTable->getFirstRow()->getArrayCopy());
$this->assertCount(22, $columnsReturned);
}
}
|