Skip to content

Commit

Permalink
Refs #4532 Adding integration test case for this use case
Browse files Browse the repository at this point in the history
  • Loading branch information
tsteur authored and mattab committed Jan 30, 2014
1 parent bf1aa3d commit bd09242
Show file tree
Hide file tree
Showing 102 changed files with 6,043 additions and 1,496 deletions.
58 changes: 32 additions & 26 deletions tests/PHPUnit/Fixtures/TwoSitesTwoVisitorsDifferentDays.php
Expand Up @@ -117,32 +117,38 @@ private function trackVisitsSite1($idSite, $dateTime)

// -
// Second visitor again on Idsite 1: 2 page views 2 days later, 2010-01-05
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour(48)->getDatetime());
// visitor_returning is set to 1 only when visit count more than 1
// Temporary, until we implement 1st party cookies in PiwikTracker
$visitorB->DEBUG_APPEND_URL .= '&_idvc=2&_viewts=' . Date::factory($dateTime)->getTimestamp();

$visitorB->setUrlReferrer('http://referrer.com/Other_Page.htm');
$visitorB->setUrl('http://example.org/index.htm');
$visitorB->setGenerationTime(323);
self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/a new visit'));
// Second page view 6 minutes later
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour(48)->addHour(0.1)->getDatetime());
$visitorB->setUrl('http://example.org/thankyou');
$visitorB->setGenerationTime(173);
self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/second page view'));

// testing a strange combination causing an error in r3767
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour(48)->addHour(0.2)->getDatetime());
self::assertTrue($visitorB->doTrackAction('mailto:test@example.org', 'link'));
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour(48)->addHour(0.25)->getDatetime());
self::assertTrue($visitorB->doTrackAction('mailto:test@example.org/strangelink', 'link'));

// Actions.getPageTitle tested with this title
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour(48)->addHour(0.25)->getDatetime());
$visitorB->setGenerationTime(452);
self::assertTrue($visitorB->doTrackPageView('Checkout / Purchasing...'));
self::checkBulkTrackingResponse($visitorB->doBulkTrack());
// If you are thinking of *decreasing* this value, just DON'T (it's important for our test case)
$daysToGenerateVisitsFor = 10;
for($days = 2; $days < $daysToGenerateVisitsFor; $days++) {
$hoursOffset = $days * 24;

$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour($hoursOffset)->getDatetime());
// visitor_returning is set to 1 only when visit count more than 1
// Temporary, until we implement 1st party cookies in PiwikTracker
$visitorB->DEBUG_APPEND_URL .= '&_idvc=2&_viewts=' . Date::factory($dateTime)->getTimestamp();

$visitorB->setUrlReferrer('http://referrer.com/Other_Page.htm');
$visitorB->setUrl('http://example.org/index.htm');
$visitorB->setGenerationTime(323);
self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/a new visit'));
// Second page view 6 minutes later
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour($hoursOffset)->addHour(0.1)->getDatetime());
$visitorB->setUrl('http://example.org/thankyou');
$visitorB->setGenerationTime(173);
self::assertTrue($visitorB->doTrackPageView('second visitor/two days later/second page view'));

// testing a strange combination causing an error in r3767
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour($hoursOffset)->addHour(0.2)->getDatetime());
self::assertTrue($visitorB->doTrackAction('mailto:test@example.org', 'link'));
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour($hoursOffset)->addHour(0.25)->getDatetime());
self::assertTrue($visitorB->doTrackAction('mailto:test@example.org/strangelink', 'link'));

// Actions.getPageTitle tested with this title
$visitorB->setForceVisitDateTime(Date::factory($dateTime)->addHour($hoursOffset)->addHour(0.25)->getDatetime());
$visitorB->setGenerationTime(452);
self::assertTrue($visitorB->doTrackPageView('Checkout / Purchasing...'));
self::checkBulkTrackingResponse($visitorB->doBulkTrack());
}
}


Expand Down
Expand Up @@ -29,6 +29,10 @@ public function getApiForTesting()

$periods = array('day', 'week', 'month', 'year');

$dateStart = \Piwik\Date::factory($dateTime)->subDay(10)->toString();
$dateEnd = \Piwik\Date::factory($dateTime)->addDay(15)->toString();
$dateRange = $dateStart . "," . $dateEnd;

return array(
// disable archiving & check that there is no archive data
array('VisitsSummary.get', array('idSite' => 'all',
Expand All @@ -50,6 +54,26 @@ public function getApiForTesting()
'periods' => $periods,
'disableArchiving' => true,
'testSuffix' => '_disabledAfter')),


// Testing this particular bug: http://dev.piwik.org/trac/ticket/4532
// ENABLE ARCHIVING and Process this custom date range.
array('VisitsSummary.get', array('idSite' => 'all',
'date' => $dateRange,
'periods' => array('range'),
'disableArchiving' => false,
'testSuffix' => '_enabledBefore_isDateRange')),

// DISABLE Archiving + DELETE Date range archives before this test.
// This should return the same data as the test above!
array('VisitsSummary.get', array('idSite' => 'all',
'date' => $dateRange,
'periods' => array('range'),
'disableArchiving' => true,
'hackDeleteRangeArchivesBefore' => true,
'testSuffix' => '_disabledBefore_isDateRange')),


);
}

Expand Down
Expand Up @@ -82,10 +82,86 @@
<avg_time_generation>0.45s</avg_time_generation>
</row>
</result>
<result prettyDate="Wednesday 6 January 2010" />
<result prettyDate="Thursday 7 January 2010" />
<result prettyDate="Friday 8 January 2010" />
<result prettyDate="Saturday 9 January 2010" />
<result prettyDate="Wednesday 6 January 2010">
<row>
<label>second visitor</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<avg_time_on_page>00:07:30</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.25s</avg_time_generation>
</row>
<row>
<label>Checkout</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
<avg_time_on_page>00:00:00</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.45s</avg_time_generation>
</row>
</result>
<result prettyDate="Thursday 7 January 2010">
<row>
<label>second visitor</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<avg_time_on_page>00:07:30</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.25s</avg_time_generation>
</row>
<row>
<label>Checkout</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
<avg_time_on_page>00:00:00</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.45s</avg_time_generation>
</row>
</result>
<result prettyDate="Friday 8 January 2010">
<row>
<label>second visitor</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<avg_time_on_page>00:07:30</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.25s</avg_time_generation>
</row>
<row>
<label>Checkout</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
<avg_time_on_page>00:00:00</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.45s</avg_time_generation>
</row>
</result>
<result prettyDate="Saturday 9 January 2010">
<row>
<label>second visitor</label>
<nb_visits>2</nb_visits>
<nb_hits>2</nb_hits>
<avg_time_on_page>00:07:30</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.25s</avg_time_generation>
</row>
<row>
<label>Checkout</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
<avg_time_on_page>00:00:00</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.45s</avg_time_generation>
</row>
</result>
</reportData>
<reportMetadata>
<result prettyDate="Sunday 3 January 2010" />
Expand All @@ -98,18 +174,46 @@

</row>
</result>
<result prettyDate="Wednesday 6 January 2010" />
<result prettyDate="Thursday 7 January 2010" />
<result prettyDate="Friday 8 January 2010" />
<result prettyDate="Saturday 9 January 2010" />
<result prettyDate="Wednesday 6 January 2010">
<row>

</row>
<row>

</row>
</result>
<result prettyDate="Thursday 7 January 2010">
<row>

</row>
<row>

</row>
</result>
<result prettyDate="Friday 8 January 2010">
<row>

</row>
<row>

</row>
</result>
<result prettyDate="Saturday 9 January 2010">
<row>

</row>
<row>

</row>
</result>
</reportMetadata>
<reportTotal>
<nb_visits>6</nb_visits>
<nb_visits>18</nb_visits>
<nb_uniq_visitors>3</nb_uniq_visitors>
<nb_hits>6</nb_hits>
<nb_hits>18</nb_hits>
<entry_bounce_count>1</entry_bounce_count>
<entry_nb_visits>2</entry_nb_visits>
<entry_nb_actions>6</entry_nb_actions>
<entry_nb_visits>6</entry_nb_visits>
<entry_nb_actions>26</entry_nb_actions>
<exit_nb_visits>1</exit_nb_visits>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
</reportTotal>
Expand Down

0 comments on commit bd09242

Please sign in to comment.