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