قرینه از
https://github.com/matomo-org/matomo.git
synced 2025-08-22 15:07:44 +00:00

* Ensure to store metrics with zero value otherwise requested metrics might be missing in partial archives and new ones would be built * update tests * pass empty data collection information * update expected test results * Ensure to always use an created archive, even when there were no visits * update expected test files * clean up code * submodule update --------- Co-authored-by: Marc Neudert <marc@innocraft.com>
71 خطوط
2.9 KiB
PHP
71 خطوط
2.9 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\Diagnostics\tests\Integration\Commands;
|
|
|
|
use Piwik\Tests\Fixtures\OneVisitorTwoVisits;
|
|
use Piwik\Tests\Framework\TestCase\ConsoleCommandTestCase;
|
|
use Piwik\Plugins\VisitsSummary\API as VisitsSummaryAPI;
|
|
|
|
/**
|
|
* TODO: This could be a unit test if we could inject the ArchiveTableDao in the command
|
|
* @group AnalyzeArchiveTableTest
|
|
*/
|
|
class AnalyzeArchiveTableTest extends ConsoleCommandTestCase
|
|
{
|
|
/**
|
|
* @var OneVisitorTwoVisits
|
|
*/
|
|
public static $fixture = null;
|
|
|
|
public static function setUpBeforeClass(): void
|
|
{
|
|
parent::setUpBeforeClass();
|
|
|
|
// make sure archiving is initiated so there is data in the archive tables
|
|
VisitsSummaryAPI::getInstance()->get(self::$fixture->idSite, 'month', '2010-03-01');
|
|
VisitsSummaryAPI::getInstance()->get(self::$fixture->idSite, 'month', '2010-03-01', 'browserCode==FF');
|
|
VisitsSummaryAPI::getInstance()->get(self::$fixture->idSite, 'month', '2010-03-01', 'daysSinceFirstVisit==2');
|
|
}
|
|
|
|
public function testCommandOutputIsAsExpected()
|
|
{
|
|
$expected = <<<OUTPUT
|
|
Statistics for the archive_numeric_2010_03 and archive_blob_2010_03 tables:
|
|
|
|
+-------------------------------------------+------------+---------------+-------------+---------+-----------+----------------+-------------+-------------+
|
|
| Group | # Archives | # Invalidated | # Temporary | # Error | # Segment | # Numeric Rows | # Blob Rows | # Blob Data |
|
|
+-------------------------------------------+------------+---------------+-------------+---------+-----------+----------------+-------------+-------------+
|
|
| day[2010-03-06 - 2010-03-06] idSite = 1 | 7 | 0 | 0 | 0 | 6 | 98 | 75 | %d |
|
|
| week[2010-03-01 - 2010-03-07] idSite = 1 | 7 | 0 | 0 | 0 | 6 | 140 | 97 | %d |
|
|
| month[2010-03-01 - 2010-03-31] idSite = 1 | 7 | 0 | 0 | 0 | 6 | 140 | 97 | %d |
|
|
+-------------------------------------------+------------+---------------+-------------+---------+-----------+----------------+-------------+-------------+
|
|
|
|
Total # Archives: 21
|
|
Total # Invalidated Archives: 0
|
|
Total # Temporary Archives: 0
|
|
Total # Error Archives: 0
|
|
Total # Segment Archives: 18
|
|
Total Size of Blobs: %s K
|
|
|
|
|
|
OUTPUT;
|
|
|
|
$this->applicationTester->run(array(
|
|
'command' => 'diagnostics:analyze-archive-table',
|
|
'table-date' => '2010_03',
|
|
));
|
|
$actual = $this->applicationTester->getDisplay();
|
|
|
|
$this->assertStringMatchesFormat($expected, $actual);
|
|
}
|
|
}
|
|
|
|
AnalyzeArchiveTableTest::$fixture = new OneVisitorTwoVisits();
|