File size: 3,524 Bytes
bf8c0ce | 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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | <?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\Tests\Integration\ViewDataTable;
use Piwik\Plugin\ReportsProvider;
use Piwik\Tests\Framework\Fixture;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
use Piwik\ViewDataTable\Factory as ViewDataTableFactory;
/**
* @group Core
* @group ViewDataTable
*/
class ConfigTest extends IntegrationTestCase
{
public function setUp(): void
{
parent::setUp();
Fixture::createWebsite('2014-01-01 00:00:00');
$_GET['idSite'] = 1;
$_GET['date'] = '2014-01-01';
$_GET['period'] = 'day';
}
public function tearDown(): void
{
unset($_GET['idSite'], $_GET['date'], $_GET['period']);
parent::tearDown();
}
/**
* @dataProvider provideReportsThatHideFlattenInTheUi
*/
public function testViewFactoryDisablesFlattenUiAndExportForReportsThatHideFlattenInTheUi(string $apiAction): void
{
$view = ViewDataTableFactory::build(
$defaultType = null,
$apiAction,
$controllerAction = $apiAction,
$forceDefault = false,
$loadViewDataTableParametersForUser = false
);
$report = ReportsProvider::factory(...explode('.', $apiAction));
$this->assertTrue($report->supportsFlatten(), $apiAction);
$this->assertFalse($view->config->show_flatten_table, $apiAction);
$this->assertTrue($view->config->report_supports_flatten, $apiAction);
$this->assertFalse($view->config->show_flatten_table_export, $apiAction);
}
public function testViewFactoryKeepsFlattenExportEnabledForReportsThatSupportFlattening(): void
{
$view = ViewDataTableFactory::build(
$defaultType = null,
'Actions.getPageUrls',
$controllerAction = 'Actions.getPageUrls',
$forceDefault = false,
$loadViewDataTableParametersForUser = false
);
$this->assertTrue($view->config->show_flatten_table);
$this->assertTrue($view->config->report_supports_flatten);
$this->assertTrue($view->config->show_flatten_table_export);
}
public function testViewFactoryDisablesFlattenUiAndExportForReportsThatDoNotSupportFlattening(): void
{
$view = ViewDataTableFactory::build(
$defaultType = null,
'Referrers.getReferrerType',
$controllerAction = 'Referrers.getReferrerType',
$forceDefault = false,
$loadViewDataTableParametersForUser = false
);
$this->assertFalse($view->config->show_flatten_table);
$this->assertFalse($view->config->report_supports_flatten);
$this->assertFalse($view->config->show_flatten_table_export);
}
public function provideReportsThatHideFlattenInTheUi(): iterable
{
yield ['UserLanguage.getLanguage'];
yield ['VisitTime.getVisitInformationPerLocalTime'];
yield ['VisitTime.getVisitInformationPerServerTime'];
yield ['DevicesDetection.getOsVersions'];
yield ['DevicesDetection.getBrowsers'];
yield ['DevicesDetection.getType'];
yield ['DevicePlugins.getPlugin'];
yield ['Resolution.getConfiguration'];
yield ['UserCountry.getCountry'];
yield ['UserCountry.getContinent'];
yield ['UserCountry.getCity'];
yield ['UserCountry.getRegion'];
}
}
|