trackVisit(1, '2024-01-16 10:00:00'); $this->trackVisit(1, '2024-01-17 10:00:00'); $this->trackVisit(2, '2024-01-16 11:00:00'); $this->trackVisit(2, '2024-01-17 11:00:00'); } public function testGetPluginShouldSupportMultiSiteAndMultiPeriodRequests(): void { $result = API::getInstance()->getPlugin('1,2', 'day', '2024-01-16,2024-01-17'); self::assertInstanceOf(DataTable\Map::class, $result); $result->applyQueuedFilters(); foreach ($result->getDataTables() as $siteTable) { self::assertInstanceOf(DataTable\Map::class, $siteTable); foreach ($siteTable->getDataTables() as $periodTable) { self::assertInstanceOf(DataTable::class, $periodTable); self::assertNotEmpty( array_filter( $periodTable->getMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME) ?: [], function ($metric) { return $metric instanceof VisitsPercent; } ) ); self::assertGreaterThan(0, $periodTable->getRowsCount()); } } } private function trackVisit(int $idSite, string $dateTime): void { $tracker = Fixture::getTracker($idSite, $dateTime, true, true); $tracker->setIp(sprintf('10.0.0.%d', $idSite)); $tracker->setPlugins(true, false, true, false, true); $tracker->setUrl(sprintf('https://example.org/site-%d', $idSite)); Fixture::checkResponse($tracker->doTrackPageView('Plugin Report Visit')); } }