Newer
Older
diosmosis
a validé
<?php
/**
* Piwik - free/libre analytics platform
diosmosis
a validé
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
use Piwik\Date;
mattab
a validé
use Piwik\Plugins\Goals\API;
Thomas Steur
a validé
use Piwik\Tests\Framework\Fixture;
diosmosis
a validé
/**
* Adds one site and tracks two visits. One visit is a bot and one has no keyword
* but is from a search engine.
*/
class TwoVisitsNoKeywordWithBot extends Fixture
diosmosis
a validé
{
public $dateTime = '2010-03-06 11:22:33';
public $idSite = 1;
diosmosis
a validé
public function setUp()
{
$this->setUpWebsitesAndGoals();
$this->trackVisits();
}
diosmosis
a validé
public function tearDown()
{
// empty
diosmosis
a validé
}
diosmosis
a validé
private function setUpWebsitesAndGoals()
{
diosmosis
a validé
if (!self::siteCreated($idSite = 1)) {
self::createWebsite($this->dateTime);
}
diosmosis
a validé
}
private function trackVisits()
{
// tests run in UTC, the Tracker in UTC
$dateTime = $this->dateTime;
$idSite = $this->idSite;
$t = self::getTracker($idSite, $dateTime, $defaultInit = true);
diosmosis
a validé
// Also testing to record this as a bot while specifically allowing bots
$t->setUserAgent('Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)');
$t->DEBUG_APPEND_URL .= '&bots=1';
$t->DEBUG_APPEND_URL .= '&forceIpAnonymization=1';
diosmosis
a validé
// VISIT 1 = Referrer is "Keyword not defined"
// Alsotrigger goal to check that attribution goes to this keyword
$t->setUrlReferrer('http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC&url=http%3A%2F%2Fpiwik.org%2F&ei=&usg=');
$t->setUrl('http://example.org/this%20is%20cool!?filter=<script>alert(1);</script>{"place":{"place":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5"}}');
self::checkResponse($t->doTrackPageView('incredible title! (Page URL contains a HTML entity)'));
diosmosis
a validé
$idGoal = 1;
if (!self::goalExists($idSite, $idGoal)) {
$idGoal = API::getInstance()->addGoal($idSite, 'triggered js', 'manually', '', '');
}
$t->setForceVisitDateTime(Date::factory($dateTime)->addHour(0.3)->getDatetime());
diosmosis
a validé
self::checkResponse($t->doTrackGoal($idGoal, $revenue = 42));
// VISIT 2 = Referrer has keyword, but the URL should be rewritten
diosmosis
a validé
// in Live Output to point to google search result page
$t->setForceVisitDateTime(Date::factory($dateTime)->addHour(2)->getDatetime());
diosmosis
a validé
$t->setUrlReferrer('http://www.google.com.vn/url?sa=t&rct=j&q=%3C%3E%26%5C%22the%20pdo%20extension%20is%20required%20for%20this%20adapter%20but%20the%20extension%20is%20not%20loaded&source=web&cd=4&ved=0FjAD&url=http%3A%2F%2Fforum.piwik.org%2Fread.php%3F2%2C1011&ei=y-HHAQ&usg=AFQjCN2-nt5_GgDeg&cad=rja');
// Test with empty title, that the output of Live is valid
diosmosis
a validé
self::checkResponse($t->doTrackPageView(''));
}