From 064f14cae7977e0e4734463157a9e8df82fc9890 Mon Sep 17 00:00:00 2001
From: Benaka Moorthi <benaka.moorthi@gmail.com>
Date: Wed, 3 Jul 2013 01:18:16 -0400
Subject: [PATCH] Fixing Core/Tracker/VisitTest test.

---
 core/Tracker/VisitExcluded.php           | 12 ++++++++++--
 tests/PHPUnit/Core/Tracker/VisitTest.php | 18 +++++++++++-------
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/core/Tracker/VisitExcluded.php b/core/Tracker/VisitExcluded.php
index 288e0b89b3..233bb289ed 100644
--- a/core/Tracker/VisitExcluded.php
+++ b/core/Tracker/VisitExcluded.php
@@ -14,11 +14,19 @@
  */
 class Piwik_Tracker_VisitExcluded
 {
-    public function __construct(Piwik_Tracker_Request $request, $ip)
+    public function __construct(Piwik_Tracker_Request $request, $ip = false, $userAgent = false)
     {
+        if ($ip === false) {
+            $ip = $request->getIp();
+        }
+        
+        if ($userAgent === false) {
+            $userAgent = $request->getUserAgent();
+        }
+        
         $this->request = $request;
         $this->idSite = $request->getIdSite();
-        $this->userAgent = $request->getUserAgent();
+        $this->userAgent = $userAgent;
         $this->ip = $ip;
     }
 
diff --git a/tests/PHPUnit/Core/Tracker/VisitTest.php b/tests/PHPUnit/Core/Tracker/VisitTest.php
index 0a262b9fc6..82bbf78e6f 100644
--- a/tests/PHPUnit/Core/Tracker/VisitTest.php
+++ b/tests/PHPUnit/Core/Tracker/VisitTest.php
@@ -69,15 +69,17 @@ class Tracker_VisitTest extends DatabaseTestCase
      */
     public function testIsVisitorIpExcluded($excludedIp, $tests)
     {
-        $visit = new Test_Piwik_TrackerVisit_public();
         $idsite = Piwik_SitesManager_API::getInstance()->addSite("name", "http://piwik.net/", $ecommerce = 0,
             $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, $excludedIp);
-        $visit->setRequest(array('idsite' => $idsite));
+
+        $request = new Piwik_Tracker_Request(array('idsite' => $idsite));
 
         // test that IPs within the range, or the given IP, are excluded
         foreach ($tests as $ip => $expected) {
             $testIpIsExcluded = Piwik_IP::P2N($ip);
-            $this->assertSame($expected, $visit->public_isVisitorIpExcluded($testIpIsExcluded));
+
+            $excluded = new Test_Piwik_Tracker_VisitExcluded_public($request, $testIpIsExcluded);
+            $this->assertSame($expected, $excluded->public_isVisitorIpExcluded($testIpIsExcluded));
         }
     }
 
@@ -116,21 +118,23 @@ class Tracker_VisitTest extends DatabaseTestCase
     {
         Piwik_SitesManager_API::getInstance()->setSiteSpecificUserAgentExcludeEnabled(true);
 
-        $visit = new Test_Piwik_TrackerVisit_public();
         $idsite = Piwik_SitesManager_API::getInstance()->addSite("name", "http://piwik.net/", $ecommerce = 0,
             $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, $excludedIp = null,
             $excludedQueryParameters = null, $timezone = null, $currency = null, $group = null, $startDate = null,
             $excludedUserAgent);
-        $visit->setRequest(array('idsite' => $idsite));
 
+        $request = new Piwik_Tracker_Request(array('idsite' => $idsite));
+        
         // test that user agents that contain excluded user agent strings are excluded
         foreach ($tests as $ua => $expected) {
-            $this->assertSame($expected, $visit->public_isUserAgentExcluded($ua), "Result if isUserAgentExcluded('$ua') was not " . ($expected ? 'true' : 'false') . ".");
+            $excluded = new Test_Piwik_Tracker_VisitExcluded_public($request, $ip = false, $ua);
+            
+            $this->assertSame($expected, $excluded->public_isUserAgentExcluded($ua), "Result if isUserAgentExcluded('$ua') was not " . ($expected ? 'true' : 'false') . ".");
         }
     }
 }
 
-class Test_Piwik_TrackerVisit_public extends Piwik_Tracker_Visit
+class Test_Piwik_Tracker_VisitExcluded_public extends Piwik_Tracker_VisitExcluded
 {
     public function public_isVisitorIpExcluded($ip)
     {
-- 
GitLab