From 49cb0c577417ab64606863d805d174b7d49b9dc5 Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@googlemail.com> Date: Thu, 8 May 2014 00:59:39 +0200 Subject: [PATCH] refs #5054 some code improvements --- plugins/PrivacyManager/ReportsPurger.php | 3 - tests/PHPUnit/Integration/PurgeDataTest.php | 93 ++++++++------------- 2 files changed, 37 insertions(+), 59 deletions(-) diff --git a/plugins/PrivacyManager/ReportsPurger.php b/plugins/PrivacyManager/ReportsPurger.php index f2f08504ab..fb0557e4bb 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 d6c13d672f..e2f5734792 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(); -- GitLab