diff options
Diffstat (limited to 'tests/PHPUnit/Core/SegmentTest.php')
-rw-r--r-- | tests/PHPUnit/Core/SegmentTest.php | 189 |
1 files changed, 95 insertions, 94 deletions
diff --git a/tests/PHPUnit/Core/SegmentTest.php b/tests/PHPUnit/Core/SegmentTest.php index 4b9249597b..2d021ea65c 100644 --- a/tests/PHPUnit/Core/SegmentTest.php +++ b/tests/PHPUnit/Core/SegmentTest.php @@ -15,10 +15,10 @@ class SegmentTest extends PHPUnit_Framework_TestCase $pseudoMockAccess = new FakeAccess; FakeAccess::$superUser = true; Zend_Registry::set('access', $pseudoMockAccess); - + // Load and install plugins $pluginsManager = Piwik_PluginsManager::getInstance(); - $pluginsManager->loadPlugins( Piwik_Config::getInstance()->Plugins['Plugins'] ); + $pluginsManager->loadPlugins(Piwik_Config::getInstance()->Plugins['Plugins']); } public function tearDown() @@ -29,8 +29,8 @@ class SegmentTest extends PHPUnit_Framework_TestCase protected function _filterWhitsSpaces($valueToFilter) { - if(is_array($valueToFilter)) { - foreach($valueToFilter AS $key => $value) { + if (is_array($valueToFilter)) { + foreach ($valueToFilter AS $key => $value) { $valueToFilter[$key] = $this->_filterWhitsSpaces($value); } return $valueToFilter; @@ -46,23 +46,23 @@ class SegmentTest extends PHPUnit_Framework_TestCase // Normal segment array('country==France', array( 'where' => ' log_visit.location_country = ? ', - 'bind' => array('France'))), + 'bind' => array('France'))), // unescape the comma please array('country==a\,==', array( 'where' => ' log_visit.location_country = ? ', - 'bind' => array('a,=='))), + 'bind' => array('a,=='))), // AND, with 2 values rewrites array('country==a;visitorType!=returning;visitorType==new', array( 'where' => ' log_visit.location_country = ? AND log_visit.visitor_returning <> ? AND log_visit.visitor_returning = ? ', - 'bind' => array('a', '1', '0'))), + 'bind' => array('a', '1', '0'))), // OR, with 2 value rewrites array('referrerType==search,referrerType==direct', array( - 'where'=>' (log_visit.referer_type = ? OR log_visit.referer_type = ? )', - 'bind' => array(Piwik_Common::REFERER_TYPE_SEARCH_ENGINE, - Piwik_Common::REFERER_TYPE_DIRECT_ENTRY))), + 'where' => ' (log_visit.referer_type = ? OR log_visit.referer_type = ? )', + 'bind' => array(Piwik_Common::REFERER_TYPE_SEARCH_ENGINE, + Piwik_Common::REFERER_TYPE_DIRECT_ENTRY))), ); } @@ -77,13 +77,13 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_visit'; $expected = array( - 'sql' => ' + 'sql' => ' SELECT log_visit.idvisit FROM - '.Piwik_Common::prefixTable('log_visit').' AS log_visit + ' . Piwik_Common::prefixTable('log_visit') . ' AS log_visit WHERE - '.$expected['where'], + ' . $expected['where'], 'bind' => $expected['bind'] ); @@ -98,7 +98,7 @@ class SegmentTest extends PHPUnit_Framework_TestCase $this->assertEquals(32, strlen($segment->getHash())); } - + /** * @group Core * @group Segment @@ -109,27 +109,27 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_visit'; $where = 'idsite = ?'; $bind = array(1); - + $segment = 'customVariableName1==Test;visitorType==new'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_visit')." AS log_visit + " . Piwik_Common::prefixTable('log_visit') . " AS log_visit WHERE ( idsite = ? ) AND ( log_visit.custom_var_k1 = ? AND log_visit.visitor_returning = ? )", "bind" => array(1, 'Test', 0)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segment @@ -140,25 +140,25 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_link_visit_action'; $where = 'log_link_visit_action.idvisit = ?'; $bind = array(1); - + $segment = 'customVariablePageName1==Test;visitorType==new'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action - LEFT JOIN ".Piwik_Common::prefixTable('log_visit')." AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit + " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action + LEFT JOIN " . Piwik_Common::prefixTable('log_visit') . " AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit WHERE ( log_link_visit_action.idvisit = ? ) AND ( log_link_visit_action.custom_var_k1 = ? AND log_visit.visitor_returning = ? )", "bind" => array(1, 'Test', 0)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } @@ -172,14 +172,14 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_visit'; $where = 'log_visit.idvisit = ?'; $bind = array(1); - + $segment = 'customVariablePageName1==Test;visitorType==new'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT sum(log_inner.visit_total_actions) as nb_actions, max(log_inner.visit_total_actions) as max_actions, sum(log_inner.visit_total_time) as sum_visit_length FROM @@ -188,8 +188,8 @@ class SegmentTest extends PHPUnit_Framework_TestCase log_visit.visit_total_actions, log_visit.visit_total_time FROM - ".Piwik_Common::prefixTable('log_visit')." AS log_visit - LEFT JOIN ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit + " . Piwik_Common::prefixTable('log_visit') . " AS log_visit + LEFT JOIN " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit WHERE ( log_visit.idvisit = ? ) AND @@ -197,10 +197,10 @@ class SegmentTest extends PHPUnit_Framework_TestCase GROUP BY log_visit.idvisit ) AS log_inner", "bind" => array(1, 'Test', 0)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segment @@ -211,28 +211,28 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_link_visit_action'; $where = 'log_link_visit_action.idvisit = ?'; $bind = array(1); - + $segment = 'customVariablePageName1==Test;visitConvertedGoalId==1;customVariablePageName2==Test2'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action - LEFT JOIN ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite + " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action + LEFT JOIN " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite WHERE ( log_link_visit_action.idvisit = ? ) AND ( log_link_visit_action.custom_var_k1 = ? AND log_conversion.idgoal = ? AND log_link_visit_action.custom_var_k2 = ? )", "bind" => array(1, 'Test', 1, 'Test2')); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segment @@ -243,28 +243,28 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_conversion'; $where = 'log_conversion.idvisit = ?'; $bind = array(1); - + $segment = 'visitConvertedGoalId!=2;customVariablePageName1==Test;visitConvertedGoalId==1'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion - LEFT JOIN ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action ON log_conversion.idlink_va = log_link_visit_action.idlink_va + " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion + LEFT JOIN " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action ON log_conversion.idlink_va = log_link_visit_action.idlink_va WHERE ( log_conversion.idvisit = ? ) AND ( log_conversion.idgoal <> ? AND log_link_visit_action.custom_var_k1 = ? AND log_conversion.idgoal = ? )", "bind" => array(1, 2, 'Test', 1)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segment @@ -275,14 +275,14 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_visit'; $where = 'log_visit.idvisit = ?'; $bind = array(1); - + $segment = 'visitConvertedGoalId==1'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT log_inner.* FROM @@ -290,8 +290,8 @@ class SegmentTest extends PHPUnit_Framework_TestCase SELECT log_visit.* FROM - ".Piwik_Common::prefixTable('log_visit')." AS log_visit - LEFT JOIN ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion ON log_conversion.idvisit = log_visit.idvisit + " . Piwik_Common::prefixTable('log_visit') . " AS log_visit + LEFT JOIN " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion ON log_conversion.idvisit = log_visit.idvisit WHERE ( log_visit.idvisit = ? ) AND @@ -299,10 +299,10 @@ class SegmentTest extends PHPUnit_Framework_TestCase GROUP BY log_visit.idvisit ) AS log_inner", "bind" => array(1, 1)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segemnt @@ -313,27 +313,27 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_conversion'; $where = 'log_conversion.idvisit = ?'; $bind = array(1); - + $segment = 'visitConvertedGoalId==1'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT log_conversion.* FROM - ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion + " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion WHERE ( log_conversion.idvisit = ? ) AND ( log_conversion.idgoal = ? )", "bind" => array(1, 1)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * @group Core * @group Segment @@ -344,32 +344,32 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_conversion'; $where = 'log_conversion.idvisit = ?'; $bind = array(1); - + $segment = 'visitConvertedGoalId==1,visitServerHour==12'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion - LEFT JOIN ".Piwik_Common::prefixTable('log_visit')." AS log_visit ON log_conversion.idvisit = log_visit.idvisit + " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion + LEFT JOIN " . Piwik_Common::prefixTable('log_visit') . " AS log_visit ON log_conversion.idvisit = log_visit.idvisit WHERE ( log_conversion.idvisit = ? ) AND ( (log_conversion.idgoal = ? OR HOUR(log_visit.visit_last_action_time) = ? ))", "bind" => array(1, 1, 12)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * visit is joined on action, then conversion is joined * make sure that conversion is joined on action not visit - * + * * @group Core * @group Segment */ @@ -379,31 +379,31 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_link_visit_action'; $where = false; $bind = array(); - + $segment = 'visitServerHour==12;visitConvertedGoalId==1'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT * FROM - ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action - LEFT JOIN ".Piwik_Common::prefixTable('log_visit')." AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit - LEFT JOIN ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite + " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action + LEFT JOIN " . Piwik_Common::prefixTable('log_visit') . " AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit + LEFT JOIN " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite WHERE HOUR(log_visit.visit_last_action_time) = ? AND log_conversion.idgoal = ? ", "bind" => array(12, 1)); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } - + /** * join conversion on visit, then actions * make sure actions are joined before conversions - * + * * @group Core * @group Segment */ @@ -413,14 +413,14 @@ class SegmentTest extends PHPUnit_Framework_TestCase $from = 'log_visit'; $where = false; $bind = array(); - + $segment = 'visitConvertedGoalId==1;visitServerHour==12;customVariablePageName1==Test'; $segment = new Piwik_Segment($segment, $idSites = array()); - + $query = $segment->getSelectQuery($select, $from, $where, $bind); - + $expected = array( - "sql" => " + "sql" => " SELECT log_inner.* FROM @@ -428,15 +428,15 @@ class SegmentTest extends PHPUnit_Framework_TestCase SELECT log_visit.* FROM - ".Piwik_Common::prefixTable('log_visit')." AS log_visit - LEFT JOIN ".Piwik_Common::prefixTable('log_link_visit_action')." AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit - LEFT JOIN ".Piwik_Common::prefixTable('log_conversion')." AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite + " . Piwik_Common::prefixTable('log_visit') . " AS log_visit + LEFT JOIN " . Piwik_Common::prefixTable('log_link_visit_action') . " AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit + LEFT JOIN " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion ON log_conversion.idlink_va = log_link_visit_action.idlink_va AND log_conversion.idsite = log_link_visit_action.idsite WHERE log_conversion.idgoal = ? AND HOUR(log_visit.visit_last_action_time) = ? AND log_link_visit_action.custom_var_k1 = ? GROUP BY log_visit.idvisit ) AS log_inner", "bind" => array(1, 12, 'Test')); - + $this->assertEquals($this->_filterWhitsSpaces($expected), $this->_filterWhitsSpaces($query)); } @@ -451,6 +451,7 @@ class SegmentTest extends PHPUnit_Framework_TestCase array('A=B') ); } + /** * @group Core * @group Segment |