diff --git a/plugins/PrivacyManager/ReportsPurger.php b/plugins/PrivacyManager/ReportsPurger.php index f2f08504ab168c5775bbc51afc5b9b488b39223b..fb0557e4bb4aa4b945f6e8258949480e68c19339 100755 --- a/plugins/PrivacyManager/ReportsPurger.php +++ b/plugins/PrivacyManager/ReportsPurger.php @@ -103,7 +103,6 @@ class ReportsPurger */ public function purgeData($optimize = false) { - // find archive tables to purge list($oldNumericTables, $oldBlobTables) = $this->getArchiveTablesToPurge(); // process blob tables first, since archive status is stored in the numeric archives @@ -122,9 +121,7 @@ class ReportsPurger } } - // deal with numeric tables if (!empty($oldNumericTables)) { - foreach ($oldNumericTables as $table) { $conditions = array("name NOT LIKE 'done%'"); $bind = array(); diff --git a/tests/PHPUnit/Integration/PurgeDataTest.php b/tests/PHPUnit/Integration/PurgeDataTest.php index d6c13d672f60666a0f18470e2a80899b7d8a8d7e..e2f5734792992440fbdc7b455a59cfac9df42cd8 100755 --- a/tests/PHPUnit/Integration/PurgeDataTest.php +++ b/tests/PHPUnit/Integration/PurgeDataTest.php @@ -37,10 +37,9 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasOneDownload('year'); $deleteReportsOlderThan = 1; - $keepBasicMetrics = true; - $reportPeriodsToKeep = array(2,3,4,5); - $purger = $this->createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); - $purger->purgeData(); + $keepBasicMetrics = true; + $reportPeriodsToKeep = array(2,3,4,5); + $this->purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); $this->assertHasNoDownload('day'); $this->assertHasOneDownload('week'); @@ -56,11 +55,12 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasOneDownload('year'); $deleteReportsOlderThan = 1; - $keepBasicMetrics = true; - $reportPeriodsToKeep = array(1); - $purger = $this->createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); - $purger->purgeData(); + $keepBasicMetrics = true; + $reportPeriodsToKeep = array(1); + $this->purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); + $this->assertNumVisits(2, 'day'); + $this->assertNumVisits(2, 'week'); $this->assertHasOneDownload('day'); $this->assertHasNoDownload('week'); $this->assertHasNoDownload('month'); @@ -75,10 +75,9 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasOneDownload('year'); $deleteReportsOlderThan = 1000; - $keepBasicMetrics = true; - $reportPeriodsToKeep = array(1,2,3,4,5); - $purger = $this->createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); - $purger->purgeData(); + $keepBasicMetrics = true; + $reportPeriodsToKeep = array(1,2,3,4,5); + $this->purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); $this->assertHasOneDownload('day'); $this->assertHasOneDownload('week'); @@ -94,10 +93,9 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasOneDownload('year'); $deleteReportsOlderThan = 1; - $keepBasicMetrics = true; - $reportPeriodsToKeep = array(); - $purger = $this->createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); - $purger->purgeData(); + $keepBasicMetrics = true; + $reportPeriodsToKeep = array(); + $this->purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); $this->assertNumVisits(2, 'day'); $this->assertNumVisits(2, 'week'); @@ -117,10 +115,9 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasOneDownload('year'); $deleteReportsOlderThan = 1; - $keepBasicMetrics = false; - $reportPeriodsToKeep = array(); - $purger = $this->createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); - $purger->purgeData(); + $keepBasicMetrics = false; + $reportPeriodsToKeep = array(); + $this->purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics); $this->assertNumVisits(0, 'day'); $this->assertNumVisits(0, 'week'); @@ -132,42 +129,6 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $this->assertHasNoDownload('year'); } - private function getDownloadApiRequestUrl($period) - { - return 'method=Actions.getDownloads' - . '&idSite=' . self::$fixture->idSite - . '&date=' . self::$fixture->dateTime - . '&period='. $period - . '&format=original'; - } - - private function createReportsPurger($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics) - { - $metricsToKeep = PrivacyManager::getAllMetricsToKeep(); - $maxRowsToDeletePerQuery = 100000; - $keepSegmentReports = false; - - return new ReportsPurger($deleteReportsOlderThan, $keepBasicMetrics, $reportPeriodsToKeep, - $keepSegmentReports, $metricsToKeep, $maxRowsToDeletePerQuery); - } - - public function getApiForTesting() - { - $idSite = self::$fixture->idSite; - $dateTime = self::$fixture->dateTime; - - $apiToCall = array('Actions.getDownloads'); - - $apiToTest = array( - array($apiToCall, - array('idSite' => $idSite, - 'date' => $dateTime, - 'periods' => array('month'))) - ); - - return $apiToTest; - } - private function assertNumVisits($expectedNumVisits, $period) { $url = 'method=VisitsSummary.getVisits' @@ -193,6 +154,26 @@ class Test_Piwik_Integration_PurgeDataTest extends IntegrationTestCase $table = $api->process(); $this->assertEquals(0, $table->getRowsCount(), $period . ' should not have a download but has one'); } + + private function getDownloadApiRequestUrl($period) + { + return 'method=Actions.getDownloads' + . '&idSite=' . self::$fixture->idSite + . '&date=' . self::$fixture->dateTime + . '&period='. $period + . '&format=original'; + } + + private function purgeData($deleteReportsOlderThan, $reportPeriodsToKeep, $keepBasicMetrics) + { + $metricsToKeep = PrivacyManager::getAllMetricsToKeep(); + $maxRowsToDeletePerQuery = 100000; + $keepSegmentReports = false; + + $purger = new ReportsPurger($deleteReportsOlderThan, $keepBasicMetrics, $reportPeriodsToKeep, + $keepSegmentReports, $metricsToKeep, $maxRowsToDeletePerQuery); + $purger->purgeData(); + } } Test_Piwik_Integration_PurgeDataTest::$fixture = new Test_Piwik_Fixture_OneVisitorTwoVisits();