Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/DevicesDetection/tests/Fixtures/MultiDeviceGoalConversions.php')
-rw-r--r--plugins/DevicesDetection/tests/Fixtures/MultiDeviceGoalConversions.php176
1 files changed, 176 insertions, 0 deletions
diff --git a/plugins/DevicesDetection/tests/Fixtures/MultiDeviceGoalConversions.php b/plugins/DevicesDetection/tests/Fixtures/MultiDeviceGoalConversions.php
new file mode 100644
index 0000000000..e5c1a597c5
--- /dev/null
+++ b/plugins/DevicesDetection/tests/Fixtures/MultiDeviceGoalConversions.php
@@ -0,0 +1,176 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+namespace Piwik\Plugins\DevicesDetection\tests\Fixtures;
+
+use Piwik\Date;
+use Piwik\Plugins\Goals\API;
+use Piwik\Tests\Framework\Fixture;
+
+/**
+ * Fixture that adds one site with one goal and tracks some page views from different devices with some goal conversions
+ */
+class MultiDeviceGoalConversions extends Fixture
+{
+ public $dateTime = '2009-01-04 00:11:42';
+ public $idSite = 1;
+ public $idGoal = 1;
+
+ public function setUp()
+ {
+ $this->setUpWebsitesAndGoals();
+ $this->trackSmartphoneVisits();
+ $this->trackTabletVisits();
+ $this->trackOtherVisits();
+ }
+
+ public function tearDown()
+ {
+ // empty
+ }
+
+ private function setUpWebsitesAndGoals()
+ {
+ if (!self::siteCreated($idSite = 1)) {
+ self::createWebsite($this->dateTime, $ecommerce = 1);
+ }
+
+ if (!self::goalExists($idSite = 1, $idGoal = 1)) {
+ API::getInstance()->addGoal(
+ $this->idSite, 'Goal 1 - Thank you', 'title', 'Thank you', 'contains', $caseSensitive = false,
+ $revenue = 10, $allowMultipleConversions = 1
+ );
+ }
+ }
+
+ private function trackSmartphoneVisits()
+ {
+ // first visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->dateTime, $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (Linux; Android 4.2.2; HTC Butterfly Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36');
+
+ $t->setUrl('http://example.org/index.htm');
+ self::checkResponse($t->doTrackPageView('0'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(0.3));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 42.256));
+
+ // second visit (without conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(0.2), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (Linux; Android 4.2.2; HTC Butterfly Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36');
+
+ $t->setUrl('http://example.org/anypage.php');
+ self::checkResponse($t->doTrackPageView('mine'));
+
+
+ // third visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(0.2), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D167 iPhone6,1/N51AP Zite/2.6');
+
+ $t->setUrl('http://example.org/anypage.php');
+ self::checkResponse($t->doTrackPageView('mine'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(1));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 0));
+ }
+
+ private function trackTabletVisits()
+ {
+ // first visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(1), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/31.0.1650.18 Mobile/10A523 Safari/8536.25');
+
+ $t->setUrl('http://example.org/index.htm');
+ self::checkResponse($t->doTrackPageView('0'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(1.6));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 42.256));
+
+ // second visit (without conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(0.6), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (Linux; Android 4.2.2; SM-T310 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Safari/537.36');
+
+ $t->setUrl('http://example.org/index.htm');
+ self::checkResponse($t->doTrackPageView('0'));
+
+
+ // third visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(1.6), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (Linux; U; Android 2.3;en-us; ViewSonic-ViewPad7e build/ERE27) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1');
+
+ $t->setUrl('http://example.org/anypage.php');
+ self::checkResponse($t->doTrackPageView('mine'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(1.9));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 0));
+ }
+
+ private function trackOtherVisits()
+ {
+ // unknown device visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(1), $defaultInit = true);
+
+ $t->setUserAgent('not detectable');
+
+ $t->setUrl('http://example.org/anypage.php');
+ self::checkResponse($t->doTrackPageView('mine'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(4));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 42.256));
+
+ // tv visit (without conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(3), $defaultInit = true);
+
+ $t->setUserAgent('WebKit/3.7.6, (CE-HTML/1.0 NETTV/3.3.0 NewB) PHILIPS-AVM-2013/2.19 (Philips, BDP5600, wired)');
+
+ $t->setUrl('http://example.org/anypage.php');
+ self::checkResponse($t->doTrackPageView('mine'));
+
+
+ // feature phone visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(4), $defaultInit = true);
+
+ $t->setUserAgent('Fly_DS123/Q03C_MAUI_Browser/MIDP2.0 Configuration/CLDC-1.1');
+
+ $t->setUrl('http://example.org/index.htm');
+ self::checkResponse($t->doTrackPageView('0'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(4.2));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 0));
+
+
+ // desktop visit (with conversion)
+ $t = self::getTracker($this->idSite, $this->getAdjustedDateTime(1.6), $defaultInit = true);
+
+ $t->setUserAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; Banca Caboto s.p.a.; rv:11.0) like Gecko');
+
+ $t->setUrl('http://example.org/index.htm');
+ self::checkResponse($t->doTrackPageView('0'));
+
+ $t->setForceVisitDateTime($this->getAdjustedDateTime(1.9));
+
+ self::checkResponse($t->doTrackGoal($this->idGoal, $revenue = 0));
+ }
+
+
+ private function getAdjustedDateTime($addition)
+ {
+ return Date::factory($this->dateTime)->addHour($addition)->getDatetime();
+ }
+} \ No newline at end of file