Skip to content
Extraits de code Groupes Projets
Valider e6f30bfb rédigé par mattab's avatar mattab
Parcourir les fichiers

Refs #4768 Adding integration test case that will test for expected behavior

parent a7013207
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -85,7 +85,8 @@ class Test_Piwik_Fixture_VisitsOverSeveralDays extends Fixture
$visitor->setIp('200.1.15.22');
$visitor->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.2)->getDatetime());
$visitor->setUrl('http://example.org/news');
$urlWithThreeSubdirectories = 'http://example.org/sub1/sub2/sub3/news';
$visitor->setUrl($urlWithThreeSubdirectories);
self::checkResponse($visitor->doTrackPageView('ou pas'));
// SECOND VISIT THIS DAY
......
......@@ -58,35 +58,54 @@ class Test_Piwik_Integration_OneVisitorOneWebsite_SeveralDaysDateRange_Archiving
}
}
// Testing Date range in January only
// Because of flat=1, this test will archive all sub-tables
$result[] = array('Actions.getPageUrls', array('idSite' => $idSite, 'date' => '2011-01-01,2011-02-01',
'periods' => array('range'),
'otherRequestParameters' => array(
'flat' => '1',
),
'testSuffix' => '_periodIsRange_flattened_')
);
return $result;
}
/**
* Check that requesting period "Range" means only processing
* the requested Plugin blob (Actions in this case), not all Plugins blobs
* @depends testApi
* @group Integration
* *
*/
public function testCheck()
public function test_checkArchiveRecords_whenPeriodIsRange()
{
// Check that requesting period "Range" means
// only processing the requested Plugin blob (Actions in this case), not all Plugins blobs
// we expect 5 blobs for Actions plugins, because flat=1 or expanded=1 was not set
// so we only archived the parent table
$expectedActionsBlobs = 5;
// When flat=1, Actions plugin will process 5 + 3 extra blobs (URL = 'http://example.org/sub1/sub2/sub3/news')
$expectedActionsBlobsWhenFlattened = $expectedActionsBlobs + 3;
$tests = array(
// 5 blobs for the Actions plugin, 7 blobs for UserSettings, 2 blobs VisitTime
'archive_blob_2010_12' => (5 + 8 + 2) * 3,
// TODO Implement fix, then remove the +3 below
'archive_blob_2010_12' => ( ($expectedActionsBlobs+3) /*Actions*/
+ 8 /* UserSettings */
+ 2 /* VisitTime */) * 3,
/**
* In Each "Period=range" Archive, we expect following non zero numeric entries:
* 5 metrics + 1 flag //VisitsSummary
* + 2 metrics + 1 flag //Actions
* 5 metrics + 1 flag // VisitsSummary
* + 2 metrics + 1 flag // Actions
* + 1 flag // UserSettings
* + 1 flag //VisitTime
* + 1 flag // VisitTime
* = 11
*
* because we call VisitFrequency.get, this creates an archive for the visitorType==returning segment.
* -> There are two archives for each segment (one for "countryCode!=aa"
* and VisitFrequency creates one for "countryCode!=aa;visitorType==returning")
*
* So each period=range will have = 11 records + (5 metrics + 1flag // VisitsSummary)
* So each period=range will have = 11 records + (5 metrics + 1 flag // VisitsSummary)
* = 17
*
* Total expected records = count unique archives * records per archive
......@@ -95,9 +114,23 @@ class Test_Piwik_Integration_OneVisitorOneWebsite_SeveralDaysDateRange_Archiving
*/
'archive_numeric_2010_12' => 17 * 3,
// all "Range" records are in December
'archive_blob_2011_01' => 0,
'archive_numeric_2011_01' => 0,
/**
* In the January date range,
* we archive only Actions plugins.
* It is flattened so all 3 sub-tables should be archived.
*/
'archive_blob_2011_01' => $expectedActionsBlobsWhenFlattened,
/**
* 5 metrics + 1 flag // VisitsSummary
* + 2 metrics + 1 flag // Actions
*/
'archive_numeric_2011_01' => (6 + 3),
// nothing in Feb
'archive_blob_2011_02' => 0,
'archive_numeric_2011_02' => 0,
);
foreach ($tests as $table => $expectedRows) {
$sql = "SELECT count(*) FROM " . Common::prefixTable($table) . " WHERE period = " . Piwik::$idPeriods['range'];
......
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<label>/homepage</label>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>1080</sum_time_spent>
<entry_nb_visits>3</entry_nb_visits>
<entry_nb_actions>6</entry_nb_actions>
<entry_sum_visit_length>1083</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<avg_time_on_page>360</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/homepage</url>
</row>
<row>
<label>/news</label>
<nb_visits>6</nb_visits>
<nb_hits>6</nb_hits>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>0</sum_time_spent>
<entry_nb_visits>3</entry_nb_visits>
<entry_nb_actions>3</entry_nb_actions>
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>3</entry_bounce_count>
<exit_nb_visits>6</exit_nb_visits>
<exit_nb_visits>3</exit_nb_visits>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
......@@ -19,19 +35,52 @@
<url>http://example.org/news</url>
</row>
<row>
<label>/homepage</label>
<label>sub1</label>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>1080</sum_time_spent>
<entry_nb_visits>3</entry_nb_visits>
<entry_nb_actions>6</entry_nb_actions>
<entry_sum_visit_length>1083</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<avg_time_on_page>360</avg_time_on_page>
<sum_time_spent>0</sum_time_spent>
<exit_nb_visits>3</exit_nb_visits>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/homepage</url>
<exit_rate>100%</exit_rate>
<subtable>
<row>
<label>sub2</label>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>0</sum_time_spent>
<exit_nb_visits>3</exit_nb_visits>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<subtable>
<row>
<label>sub3</label>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>0</sum_time_spent>
<exit_nb_visits>3</exit_nb_visits>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<subtable>
<row>
<label>/news</label>
<nb_visits>3</nb_visits>
<nb_hits>3</nb_hits>
<sum_time_spent>0</sum_time_spent>
<exit_nb_visits>3</exit_nb_visits>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<url>http://example.org/sub1/sub2/sub3/news</url>
</row>
</subtable>
</row>
</subtable>
</row>
</subtable>
</row>
</result>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
<label>homepage</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<sum_time_spent>720</sum_time_spent>
<entry_nb_visits>2</entry_nb_visits>
<entry_nb_actions>4</entry_nb_actions>
<entry_sum_visit_length>722</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<avg_time_on_page>360</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/homepage</url>
</row>
<row>
<label>news</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<sum_time_spent>0</sum_time_spent>
<entry_nb_visits>2</entry_nb_visits>
<entry_nb_actions>2</entry_nb_actions>
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>2</entry_bounce_count>
<exit_nb_visits>2</exit_nb_visits>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<url>http://example.org/news</url>
</row>
</result>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter