From b0ebb61485bdeb362caea645e22fc93ee199a917 Mon Sep 17 00:00:00 2001
From: Thomas Steur <thomas.steur@googlemail.com>
Date: Thu, 12 Jun 2014 04:50:58 +0200
Subject: [PATCH] this should fix some tests

---
 core/Plugin/ActionDimension.php          |  2 +-
 core/Plugin/Manager.php                  | 10 ++++++++++
 core/Plugin/VisitDimension.php           |  2 +-
 plugins/VisitTime/Columns/Localtime.php  |  2 +-
 plugins/VisitTime/Columns/Servertime.php |  2 +-
 tests/PHPUnit/proxy/includes.php         |  8 ++++++++
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/core/Plugin/ActionDimension.php b/core/Plugin/ActionDimension.php
index 5fc4ed3824..9b871ef58c 100644
--- a/core/Plugin/ActionDimension.php
+++ b/core/Plugin/ActionDimension.php
@@ -60,7 +60,7 @@ abstract class ActionDimension
     protected function addSegment(Segment $segment)
     {
         $sqlSegment = $segment->getSqlSegment();
-        if (!empty($this->fieldName) && !empty($sqlSegment)) {
+        if (!empty($this->fieldName) && empty($sqlSegment)) {
             $segment->setSqlSegment('log_link_visit_action.' . $this->fieldName);
         }
 
diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php
index 6e9afe423c..c647ba2bd4 100644
--- a/core/Plugin/Manager.php
+++ b/core/Plugin/Manager.php
@@ -1137,6 +1137,16 @@ class Manager extends Singleton
 
     public function isTrackerPlugin(Plugin $plugin)
     {
+        $dimensions = VisitDimension::getDimensions($plugin);
+        if (!empty($dimensions)) {
+            return true;
+        }
+
+        $dimensions = ActionDimension::getDimensions($plugin);
+        if (!empty($dimensions)) {
+            return true;
+        }
+
         $hooks = $plugin->getListHooksRegistered();
         $hookNames = array_keys($hooks);
         foreach ($hookNames as $name) {
diff --git a/core/Plugin/VisitDimension.php b/core/Plugin/VisitDimension.php
index af40274d74..b7b3778a9e 100644
--- a/core/Plugin/VisitDimension.php
+++ b/core/Plugin/VisitDimension.php
@@ -55,7 +55,7 @@ abstract class VisitDimension
     protected function addSegment(Segment $segment)
     {
         $sqlSegment = $segment->getSqlSegment();
-        if (!empty($this->fieldName) && !empty($sqlSegment)) {
+        if (!empty($this->fieldName) && empty($sqlSegment)) {
             $segment->setSqlSegment('log_visit.' . $this->fieldName);
         }
 
diff --git a/plugins/VisitTime/Columns/Localtime.php b/plugins/VisitTime/Columns/Localtime.php
index aa5d966142..f20dde3fed 100644
--- a/plugins/VisitTime/Columns/Localtime.php
+++ b/plugins/VisitTime/Columns/Localtime.php
@@ -14,7 +14,7 @@ use Piwik\Plugins\VisitTime\Segment;
 
 class Localtime extends VisitDimension
 {    
-    protected $fieldName = 'HOUR(visitor_localtime)';
+    protected $fieldName = 'visitor_localtime';
 
     protected function init()
     {
diff --git a/plugins/VisitTime/Columns/Servertime.php b/plugins/VisitTime/Columns/Servertime.php
index 9861962fb9..69cf2f54dc 100644
--- a/plugins/VisitTime/Columns/Servertime.php
+++ b/plugins/VisitTime/Columns/Servertime.php
@@ -14,7 +14,7 @@ use Piwik\Plugins\VisitTime\Segment;
 
 class Servertime extends VisitDimension
 {    
-    protected $fieldName = 'HOUR(visit_last_action_time)';
+    protected $fieldName = 'visit_last_action_time';
 
     protected function init()
     {
diff --git a/tests/PHPUnit/proxy/includes.php b/tests/PHPUnit/proxy/includes.php
index 0ffce4642b..905fbd0d13 100644
--- a/tests/PHPUnit/proxy/includes.php
+++ b/tests/PHPUnit/proxy/includes.php
@@ -14,6 +14,14 @@ require_once PIWIK_INCLUDE_PATH . '/core/EventDispatcher.php';
 require_once PIWIK_INCLUDE_PATH . '/core/Piwik.php';
 require_once PIWIK_INCLUDE_PATH . '/libs/upgradephp/upgrade.php';
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/TestingEnvironment.php';
+if (file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')) {
+    $vendorDirectory = PIWIK_INCLUDE_PATH . '/vendor';
+} else {
+    $vendorDirectory = PIWIK_INCLUDE_PATH . '/../..';
+}
+require_once $vendorDirectory . '/autoload.php';
+require_once $vendorDirectory . '/mustangostang/spyc/Spyc.php';
+require_once $vendorDirectory . '/piwik/device-detector/DeviceDetector.php';
 
 \Piwik\SettingsServer::setMaxExecutionTime(0);
 
-- 
GitLab