From a9ae3db65c46fa1511f052b106dbcd3871cf433c Mon Sep 17 00:00:00 2001
From: mattpiwik <matthieu.aubry@gmail.com>
Date: Thu, 3 Jan 2013 07:48:24 +0000
Subject: [PATCH] better test output debug (NOW I UNDERSTAND) and trying fix
 build

git-svn-id: http://dev.piwik.org/svn/trunk@7725 59fd770c-687e-43c8-a1e3-f5a4ff64c105
---
 tests/PHPUnit/Integration/NonUnicodeTest.php  |   2 +-
 ..._NonUnicode__Actions.getPageTitles_day.xml |   8 +-
 ...st_NonUnicode__Actions.getPageUrls_day.xml |   8 +-
 ...ode__Actions.getSiteSearchKeywords_day.xml |   4 +-
 ...Unicode__Live.getLastVisitsDetails_day.xml | 124 ++++++++++++++----
 ...t_NonUnicode__Referers.getWebsites_day.xml |  26 ++--
 tests/PHPUnit/IntegrationTestCase.php         |  23 +++-
 7 files changed, 146 insertions(+), 49 deletions(-)

diff --git a/tests/PHPUnit/Integration/NonUnicodeTest.php b/tests/PHPUnit/Integration/NonUnicodeTest.php
index c200ee4a38..be14a7787d 100755
--- a/tests/PHPUnit/Integration/NonUnicodeTest.php
+++ b/tests/PHPUnit/Integration/NonUnicodeTest.php
@@ -112,7 +112,7 @@ class Test_Piwik_Integration_NonUnicodeTest extends IntegrationTestCase
 		self::checkResponse($visitor->doTrackPageView('Site Search'));
 		$visitor->setPageCharset('');
 
-		$visitor->setForceVisitDateTime(Piwik_Date::factory(self::$dateTime)->addHour(0.55)->getDatetime());
+		$visitor->setForceVisitDateTime(Piwik_Date::factory(self::$dateTime)->addHour(0.5)->getDatetime());
 		$visitor->setUrl('http://example.org/exit-page');
 		self::checkResponse($visitor->doTrackPageView('Page title is always UTF-8'));
 
diff --git a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageTitles_day.xml b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageTitles_day.xml
index 53b4ba83cf..008d9e87fb 100755
--- a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageTitles_day.xml
@@ -5,10 +5,12 @@
 		<nb_visits>1</nb_visits>
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>2</nb_hits>
-		<sum_time_spent>1980</sum_time_spent>
+		<sum_time_spent>360</sum_time_spent>
 		<nb_hits_following_search>2</nb_hits_following_search>
-		<avg_time_on_page>1980</avg_time_on_page>
+		<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>360</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>100%</exit_rate>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageUrls_day.xml b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageUrls_day.xml
index 220e3a4778..3b556b046b 100755
--- a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getPageUrls_day.xml
@@ -5,11 +5,13 @@
 		<nb_visits>1</nb_visits>
 		<nb_uniq_visitors>1</nb_uniq_visitors>
 		<nb_hits>1</nb_hits>
-		<sum_time_spent>1620</sum_time_spent>
+		<sum_time_spent>0</sum_time_spent>
 		<nb_hits_following_search>1</nb_hits_following_search>
-		<avg_time_on_page>1620</avg_time_on_page>
+		<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>100%</exit_rate>
 		<url>http://example.org/exit-page</url>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getSiteSearchKeywords_day.xml b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getSiteSearchKeywords_day.xml
index 42b11cd5b7..9b4eb015d0 100755
--- a/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getSiteSearchKeywords_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_NonUnicode__Actions.getSiteSearchKeywords_day.xml
@@ -15,9 +15,9 @@
 		<label>non unicode keyword </label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
-		<sum_time_spent>180</sum_time_spent>
+		<sum_time_spent>0</sum_time_spent>
 		<nb_pages_per_search>1</nb_pages_per_search>
-		<avg_time_on_page>180</avg_time_on_page>
+		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
 	</row>
diff --git a/tests/PHPUnit/Integration/expected/test_NonUnicode__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/Integration/expected/test_NonUnicode__Live.getLastVisitsDetails_day.xml
index 8fd89782a6..85b49a230f 100644
--- a/tests/PHPUnit/Integration/expected/test_NonUnicode__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_NonUnicode__Live.getLastVisitsDetails_day.xml
@@ -1,5 +1,96 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
+	<row>
+		<idSite>1</idSite>
+		<idVisit>2</idVisit>
+		<visitIp>156.5.3.2</visitIp>
+		
+		<visitorType>returning</visitorType>
+		<visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+		<visitConverted>0</visitConverted>
+		<visitConvertedIcon />
+		<visitEcommerceStatus>none</visitEcommerceStatus>
+		<visitEcommerceStatusIcon />
+		<searches>1</searches>
+		<actions>1</actions>
+		<actionDetails>
+			<row>
+				<type>search</type>
+				<url />
+				<pageTitle>a keyword</pageTitle>
+				<pageIdAction />
+				<pageId>6</pageId>
+				
+				<customVariables>
+					<row>
+						<customVariableName4>Search Category</customVariableName4>
+						<customVariableValue4>Search Kategory</customVariableValue4>
+					</row>
+				</customVariables>
+				<icon>themes/default/images/search_ico.png</icon>
+			</row>
+		</actionDetails>
+		<customVariables>
+		</customVariables>
+		<goalConversions>0</goalConversions>
+		<siteCurrency>USD</siteCurrency>
+		<siteCurrencySymbol>$</siteCurrencySymbol>
+		
+		<visitLocalTime>12:34:06</visitLocalTime>
+		
+		
+		
+		<visitDuration>0</visitDuration>
+		<visitDurationPretty>0s</visitDurationPretty>
+		<visitCount>1</visitCount>
+		<daysSinceLastVisit>0</daysSinceLastVisit>
+		<daysSinceFirstVisit>0</daysSinceFirstVisit>
+		<daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+		<continent>Europe</continent>
+		<country>France</country>
+		<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
+		<region />
+		<city />
+		<location>France</location>
+		<latitude />
+		<longitude />
+		<provider>Unknown</provider>
+		<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+		<referrerType>website</referrerType>
+		<referrerTypeName>Websites</referrerTypeName>
+		<referrerName>anothersite.com</referrerName>
+		<referrerKeyword />
+		<referrerKeywordPosition />
+		<referrerUrl>http://anothersite.com/whatever.html</referrerUrl>
+		<referrerSearchEngineUrl />
+		<referrerSearchEngineIcon />
+		<operatingSystem>Windows XP</operatingSystem>
+		<operatingSystemShortName>Win XP</operatingSystemShortName>
+		<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+		<browserFamily>gecko</browserFamily>
+		<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+		<browserName>Firefox 3.6</browserName>
+		<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+		<screenType>normal</screenType>
+		<resolution>1024x768</resolution>
+		<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+		<plugins>flash, java</plugins>
+		<pluginsIcons>
+			<row>
+				<pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+				<pluginName>flash</pluginName>
+			</row>
+			<row>
+				<pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+				<pluginName>java</pluginName>
+			</row>
+		</pluginsIcons>
+		
+		
+		
+		
+		
+	</row>
 	<row>
 		<idSite>1</idSite>
 		<idVisit>1</idVisit>
@@ -11,8 +102,8 @@
 		<visitConvertedIcon />
 		<visitEcommerceStatus>none</visitEcommerceStatus>
 		<visitEcommerceStatusIcon />
-		<searches>4</searches>
-		<actions>6</actions>
+		<searches>3</searches>
+		<actions>5</actions>
 		<actionDetails>
 			<row>
 				<type>action</type>
@@ -53,17 +144,6 @@
 				<timeSpentPretty>6 min 0s</timeSpentPretty>
 				<icon>themes/default/images/search_ico.png</icon>
 			</row>
-			<row>
-				<type>search</type>
-				<url />
-				<pageTitle>non unicode keyword </pageTitle>
-				<pageIdAction />
-				<pageId>4</pageId>
-				
-				<timeSpent>180</timeSpent>
-				<timeSpentPretty>3 min 0s</timeSpentPretty>
-				<icon>themes/default/images/search_ico.png</icon>
-			</row>
 			<row>
 				<type>action</type>
 				<url>http://example.org/exit-page</url>
@@ -71,23 +151,17 @@
 				<pageIdAction>6</pageIdAction>
 				<pageId>5</pageId>
 				
-				<timeSpent>1620</timeSpent>
-				<timeSpentPretty>27 min 0s</timeSpentPretty>
 				<icon />
 			</row>
 			<row>
 				<type>search</type>
 				<url />
-				<pageTitle>a keyword</pageTitle>
+				<pageTitle>non unicode keyword </pageTitle>
 				<pageIdAction />
-				<pageId>6</pageId>
+				<pageId>4</pageId>
 				
-				<customVariables>
-					<row>
-						<customVariableName4>Search Category</customVariableName4>
-						<customVariableValue4>Search Kategory</customVariableValue4>
-					</row>
-				</customVariables>
+				<timeSpent>0</timeSpent>
+				<timeSpentPretty>0s</timeSpentPretty>
 				<icon>themes/default/images/search_ico.png</icon>
 			</row>
 		</actionDetails>
@@ -101,8 +175,8 @@
 		
 		
 		
-		<visitDuration>2521</visitDuration>
-		<visitDurationPretty>42 min 1s</visitDurationPretty>
+		<visitDuration>721</visitDuration>
+		<visitDurationPretty>12 min 1s</visitDurationPretty>
 		<visitCount>1</visitCount>
 		<daysSinceLastVisit>0</daysSinceLastVisit>
 		<daysSinceFirstVisit>0</daysSinceFirstVisit>
diff --git a/tests/PHPUnit/Integration/expected/test_NonUnicode__Referers.getWebsites_day.xml b/tests/PHPUnit/Integration/expected/test_NonUnicode__Referers.getWebsites_day.xml
index a9317aa894..0052f0580d 100755
--- a/tests/PHPUnit/Integration/expected/test_NonUnicode__Referers.getWebsites_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_NonUnicode__Referers.getWebsites_day.xml
@@ -2,21 +2,31 @@
 <result>
 	<row>
 		<label>anothersite.com</label>
-		<nb_uniq_visitors>1</nb_uniq_visitors>
-		<nb_visits>1</nb_visits>
+		<nb_uniq_visitors>2</nb_uniq_visitors>
+		<nb_visits>2</nb_visits>
 		<nb_actions>6</nb_actions>
-		<max_actions>6</max_actions>
-		<sum_visit_length>2521</sum_visit_length>
-		<bounce_count>0</bounce_count>
+		<max_actions>5</max_actions>
+		<sum_visit_length>721</sum_visit_length>
+		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
 		<subtable>
+			<row>
+				<label>http://anothersite.com/whatever.html</label>
+				<nb_uniq_visitors>1</nb_uniq_visitors>
+				<nb_visits>1</nb_visits>
+				<nb_actions>1</nb_actions>
+				<max_actions>1</max_actions>
+				<sum_visit_length>0</sum_visit_length>
+				<bounce_count>1</bounce_count>
+				<nb_visits_converted>0</nb_visits_converted>
+			</row>
 			<row>
 				<label>http://anothersite.com/whatever.html?whatever=Ato</label>
 				<nb_uniq_visitors>1</nb_uniq_visitors>
 				<nb_visits>1</nb_visits>
-				<nb_actions>6</nb_actions>
-				<max_actions>6</max_actions>
-				<sum_visit_length>2521</sum_visit_length>
+				<nb_actions>5</nb_actions>
+				<max_actions>5</max_actions>
+				<sum_visit_length>721</sum_visit_length>
 				<bounce_count>0</bounce_count>
 				<nb_visits_converted>0</nb_visits_converted>
 			</row>
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index 0d4a4a6884..c98cd1ce00 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -914,11 +914,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
 		        $this->assertEquals(strlen($expected), strlen($response), "Differences with expected in: $processedFilePath");
 		        $this->assertEquals($expected, $response, "Differences with expected in: $processedFilePath");
 		    }
-		    
-		    if (trim($response) == trim($expected)) {
-		        file_put_contents($processedFilePath, $response);
-		    }
-	    }
+
+			if (trim($response) == trim($expected)) {
+				file_put_contents($processedFilePath, $response);
+			}
+		}
 	    catch (Exception $ex)
 	    {
 	    	$this->comparisonFailures[] = $ex;
@@ -1135,10 +1135,19 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
             	. "'. For new tests, to pass the test, you can copy files from the processed/ directory into"
             	. " $expectedDir  after checking that the output is valid. %s ");
         }
-        
+
+	    // Display as one error all sub-failures
         if (!empty($this->comparisonFailures))
         {
-        	throw reset($this->comparisonFailures);
+	        $messages = '';
+	        $i = 1;
+	        foreach($this->comparisonFailures as $failure) {
+		        $msg = $failure->getMessage();
+		        $msg = strtok($msg, "\n");
+		        $messages .= "\n#" . $i++ . ": " . $msg;
+	        }
+	        $messages .= " \n ";
+        	throw new Exception($messages);
         }
     }
 
-- 
GitLab