diff options
Diffstat (limited to 'tests/PHPUnit/Integration')
-rw-r--r-- | tests/PHPUnit/Integration/ArchiveTest.php | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/PHPUnit/Integration/ArchiveTest.php b/tests/PHPUnit/Integration/ArchiveTest.php index 66ecd17355..1e274431d7 100644 --- a/tests/PHPUnit/Integration/ArchiveTest.php +++ b/tests/PHPUnit/Integration/ArchiveTest.php @@ -15,6 +15,7 @@ use Piwik\ArchiveProcessor\Rules; use Piwik\Common; use Piwik\Config; use Piwik\CronArchive; +use Piwik\DataAccess\ArchiveTableCreator; use Piwik\DataAccess\ArchiveWriter; use Piwik\Date; use Piwik\Db; @@ -34,6 +35,33 @@ class ArchiveTest extends IntegrationTestCase Fixture::createWebsite('2014-05-06'); } + public function test_queryingForNoData_doesNotCreateEmptyArchive() + { + $tracker = Fixture::getTracker(1, '2014-05-07 07:00:00'); + $tracker->setUrl('http://matomo.net/page/1'); + Fixture::checkResponse($tracker->doTrackPageView('a page')); + + $tracker->setForceVisitDateTime('2014-05-08 09:00:00'); + $tracker->setUrl('http://matomo.net/page/2'); + Fixture::checkResponse($tracker->doTrackPageView('a page')); + + // the table may not be created if we skip archiving logic, so make sure it's created here + ArchiveTableCreator::getNumericTable(Date::factory('2014-05-07')); + + $archive = Archive::factory(new Segment('', [1]), [Factory::build('range', '2014-05-07,2014-05-08')], [1]); + $data = $archive->getDataTableFromNumeric([]); + $this->assertEquals([], $data->getRows()); + + $data = $archive->getDataTableFromNumeric(null); + $this->assertEquals([], $data->getRows()); + + $data = $archive->getDataTableFromNumeric(['']); + $this->assertEquals([], $data->getRows()); + + $archiveRows = Db::fetchAll('SELECT * FROM ' . Common::prefixTable('archive_numeric_2014_05') . ' WHERE idsite = 1 AND period = 5'); + $this->assertEquals([], $archiveRows); + } + public function test_pluginSpecificArchiveUsed_EvenIfAllArchiveExists_IfThereAreNoDataInAllArchive() { $idSite = 1; |