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/IntranetMeasurable/tests')
-rw-r--r--plugins/IntranetMeasurable/tests/Fixtures/IntranetSitesWithVisits.php94
-rw-r--r--plugins/IntranetMeasurable/tests/System/TrackingTest.php73
-rw-r--r--plugins/IntranetMeasurable/tests/System/expected/test__intranet__API.get_day.xml44
-rw-r--r--plugins/IntranetMeasurable/tests/System/expected/test__notIntranet__API.get_day.xml44
-rw-r--r--plugins/IntranetMeasurable/tests/UI/.gitignore2
-rw-r--r--plugins/IntranetMeasurable/tests/UI/IntranetMeasurable_spec.js51
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/.gitkeep0
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_add_new_dialog.png3
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png3
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_created.png3
-rw-r--r--plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_reloaded.png3
11 files changed, 320 insertions, 0 deletions
diff --git a/plugins/IntranetMeasurable/tests/Fixtures/IntranetSitesWithVisits.php b/plugins/IntranetMeasurable/tests/Fixtures/IntranetSitesWithVisits.php
new file mode 100644
index 0000000000..25fac65727
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/Fixtures/IntranetSitesWithVisits.php
@@ -0,0 +1,94 @@
+<?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\IntranetMeasurable\tests\Fixtures;
+
+use Piwik\Date;
+use Piwik\Plugins\IntranetMeasurable\Type;
+use Piwik\Tests\Framework\Fixture;
+
+/**
+ * Generates tracker testing data for our TrackingTest
+ *
+ * This Simple fixture adds one website and tracks one visit with couple pageviews and an ecommerce conversion
+ */
+class IntranetSitesWithVisits extends Fixture
+{
+ public $dateTime = '2013-01-23 01:23:45';
+ public $idSite = 1;
+ public $idSiteNotIntranet = 2;
+
+ public function setUp()
+ {
+ $this->setUpWebsites();
+ $this->trackVisits($this->idSite);
+ $this->trackVisits($this->idSiteNotIntranet);
+ }
+
+ public function tearDown()
+ {
+ // empty
+ }
+
+ private function setUpWebsites()
+ {
+ if (!self::siteCreated($this->idSite)) {
+ Fixture::createWebsite(
+ '2014-01-02 03:04:05', $ecommerce = 0, $siteName = false, $siteUrl = false,
+ $siteSearch = 1, $searchKeywordParameters = null,
+ $searchCategoryParameters = null, $timezone = null, Type::ID
+ );
+ }
+
+ if (!self::siteCreated($this->idSiteNotIntranet)) {
+ Fixture::createWebsite('2014-01-02 03:04:05');
+ }
+ }
+
+ private function configureSameDevice(\PiwikTracker $t)
+ {
+ // to make purpose of test more clear we configure the device partially...
+ $t->setIp('56.11.55.70');
+ $t->setResolution(500, 200);
+ $t->setPlugins(true, false, true, false, true);
+ $t->setUserAgent('Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1');
+
+ return $t;
+ }
+
+ protected function trackVisits($idSite)
+ {
+ // two visits... intranet will trust visitorId and generate two visits
+ // regular website will only generate one visit and prefer configId
+ $t = self::getTracker($idSite, $this->dateTime, $defaultInit = true);
+ $this->configureSameDevice($t);
+ $t->randomVisitorId = '1234567890123456';
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.1)->getDatetime());
+ $t->setUrl('http://example.com/');
+ self::checkResponse($t->doTrackPageView('Viewing homepage'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime());
+ $t->setUrl('http://example.com/sub/page');
+ self::checkResponse($t->doTrackPageView('Second page view'));
+
+ // different IP and different device but same visitor id... should still match this as unique visitor for intranet site
+ // but not the other site
+ $t = self::getTracker($idSite, $this->dateTime, $defaultInit = true);
+ $this->configureSameDevice($t);
+ $t->randomVisitorId = '1234567890123457';
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.1)->getDatetime());
+ $t->setUrl('http://example.com/sub/page');
+ self::checkResponse($t->doTrackPageView('Viewing homepage'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime());
+ $t->setUrl('http://example.com/?search=this is a site search query');
+ self::checkResponse($t->doTrackPageView('Site search query'));
+ }
+
+} \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/System/TrackingTest.php b/plugins/IntranetMeasurable/tests/System/TrackingTest.php
new file mode 100644
index 0000000000..e8f0a5680f
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/System/TrackingTest.php
@@ -0,0 +1,73 @@
+<?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\IntranetMeasurable\tests\System;
+
+use Piwik\Plugins\IntranetMeasurable\tests\Fixtures\IntranetSitesWithVisits;
+use Piwik\Tests\Framework\TestCase\SystemTestCase;
+
+/**
+ * @group IntranetMeasurable
+ * @group TrackingTest
+ * @group Plugins
+ */
+class TrackingTest extends SystemTestCase
+{
+ /**
+ * @var IntranetSitesWithVisits
+ */
+ public static $fixture = null; // initialized below class definition
+
+ /**
+ * @dataProvider getApiForTesting
+ */
+ public function testApi($api, $params)
+ {
+ $this->runApiTests($api, $params);
+ }
+
+ public function getApiForTesting()
+ {
+ $api = array(
+ 'API.get',
+ );
+
+ $apiToTest = array();
+ $apiToTest[] = array($api,
+ array(
+ 'idSite' => self::$fixture->idSite,
+ 'date' => self::$fixture->dateTime,
+ 'periods' => array('day'),
+ 'testSuffix' => '_intranet'
+ )
+ );
+ $apiToTest[] = array($api,
+ array(
+ 'idSite' => self::$fixture->idSiteNotIntranet,
+ 'date' => self::$fixture->dateTime,
+ 'periods' => array('day'),
+ 'testSuffix' => '_notIntranet'
+ )
+ );
+
+ return $apiToTest;
+ }
+
+ public static function getOutputPrefix()
+ {
+ return '';
+ }
+
+ public static function getPathToTestDirectory()
+ {
+ return dirname(__FILE__);
+ }
+
+}
+
+TrackingTest::$fixture = new IntranetSitesWithVisits(); \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/System/expected/test__intranet__API.get_day.xml b/plugins/IntranetMeasurable/tests/System/expected/test__intranet__API.get_day.xml
new file mode 100644
index 0000000000..6673fc4a55
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/System/expected/test__intranet__API.get_day.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
+ <nb_visits>2</nb_visits>
+ <nb_users>0</nb_users>
+ <nb_actions>4</nb_actions>
+ <max_actions>2</max_actions>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>722</sum_visit_length>
+ <nb_visits_returning>0</nb_visits_returning>
+ <nb_actions_returning>0</nb_actions_returning>
+ <nb_uniq_visitors_returning>0</nb_uniq_visitors_returning>
+ <nb_users_returning>0</nb_users_returning>
+ <max_actions_returning>0</max_actions_returning>
+ <bounce_rate_returning>0%</bounce_rate_returning>
+ <nb_actions_per_visit_returning>0</nb_actions_per_visit_returning>
+ <avg_time_on_site_returning>0</avg_time_on_site_returning>
+ <nb_conversions>0</nb_conversions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <revenue>0</revenue>
+ <conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
+ <nb_total_overall_bandwidth>0</nb_total_overall_bandwidth>
+ <nb_total_pageview_bandwidth>0</nb_total_pageview_bandwidth>
+ <nb_total_download_bandwidth>0</nb_total_download_bandwidth>
+ <nb_pageviews>3</nb_pageviews>
+ <nb_uniq_pageviews>3</nb_uniq_pageviews>
+ <nb_downloads>0</nb_downloads>
+ <nb_uniq_downloads>0</nb_uniq_downloads>
+ <nb_outlinks>0</nb_outlinks>
+ <nb_uniq_outlinks>0</nb_uniq_outlinks>
+ <nb_searches>1</nb_searches>
+ <nb_keywords>1</nb_keywords>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>2</nb_actions_per_visit>
+ <avg_time_on_site>361</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/System/expected/test__notIntranet__API.get_day.xml b/plugins/IntranetMeasurable/tests/System/expected/test__notIntranet__API.get_day.xml
new file mode 100644
index 0000000000..416534aa46
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/System/expected/test__notIntranet__API.get_day.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_uniq_visitors>1</nb_uniq_visitors>
+ <nb_visits>1</nb_visits>
+ <nb_users>0</nb_users>
+ <nb_actions>4</nb_actions>
+ <max_actions>4</max_actions>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>361</sum_visit_length>
+ <nb_visits_returning>0</nb_visits_returning>
+ <nb_actions_returning>0</nb_actions_returning>
+ <nb_uniq_visitors_returning>0</nb_uniq_visitors_returning>
+ <nb_users_returning>0</nb_users_returning>
+ <max_actions_returning>0</max_actions_returning>
+ <bounce_rate_returning>0%</bounce_rate_returning>
+ <nb_actions_per_visit_returning>0</nb_actions_per_visit_returning>
+ <avg_time_on_site_returning>0</avg_time_on_site_returning>
+ <nb_conversions>0</nb_conversions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <revenue>0</revenue>
+ <conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
+ <nb_total_overall_bandwidth>0</nb_total_overall_bandwidth>
+ <nb_total_pageview_bandwidth>0</nb_total_pageview_bandwidth>
+ <nb_total_download_bandwidth>0</nb_total_download_bandwidth>
+ <nb_pageviews>3</nb_pageviews>
+ <nb_uniq_pageviews>2</nb_uniq_pageviews>
+ <nb_downloads>0</nb_downloads>
+ <nb_uniq_downloads>0</nb_uniq_downloads>
+ <nb_outlinks>0</nb_outlinks>
+ <nb_uniq_outlinks>0</nb_uniq_outlinks>
+ <nb_searches>1</nb_searches>
+ <nb_keywords>1</nb_keywords>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>4</nb_actions_per_visit>
+ <avg_time_on_site>361</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/UI/.gitignore b/plugins/IntranetMeasurable/tests/UI/.gitignore
new file mode 100644
index 0000000000..f39be478e7
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/.gitignore
@@ -0,0 +1,2 @@
+/processed-ui-screenshots
+/screenshot-diffs \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/UI/IntranetMeasurable_spec.js b/plugins/IntranetMeasurable/tests/UI/IntranetMeasurable_spec.js
new file mode 100644
index 0000000000..c898da7214
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/IntranetMeasurable_spec.js
@@ -0,0 +1,51 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * Site selector screenshot tests.
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+describe("IntranetMeasurable", function () {
+ this.timeout(0);
+ this.fixture = "Piwik\\Plugins\\SitesManager\\tests\\Fixtures\\ManySites";
+
+ var url = "?module=SitesManager&action=index&idSite=1&period=day&date=yesterday&showaddsite=false";
+
+ before(function () {
+ testEnvironment.pluginsToLoad = ['IntranetMeasurable'];
+
+ testEnvironment.save();
+ });
+
+ function assertScreenshotEquals(screenshotName, done, test, selector)
+ {
+ expect.screenshot(screenshotName).to.be.captureSelector(selector, test, done);
+ }
+
+ it("should show intranet selection", function (done) {
+ assertScreenshotEquals("add_new_dialog", done, function (page) {
+ page.load(url);
+ page.click('.SitesManager .addSite:first');
+ }, '.modal.open');
+ });
+
+ it("should load intranet specific fields", function (done) {
+ assertScreenshotEquals("intranet_create", done, function (page) {
+ page.click('.modal.open .btn:contains(Intranet)');
+ page.evaluate(function () {
+ $('.form-help:contains(UTC time is)').hide();
+ });
+ page.wait(250);
+ }, '.editingSite');
+ });
+
+ it("should load intranet specific fields", function (done) {
+ assertScreenshotEquals("intranet_created", done, function (page) {
+ page.sendKeys('.editingSite [placeholder="Name"]', 'My intranet');
+ page.sendKeys('.editingSite [name="urls"]', 'https://www.example.com');
+ page.click('.editingSiteFooter input.btn');
+ }, '.site[type=intranet]');
+ });
+
+}); \ No newline at end of file
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/.gitkeep b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/.gitkeep
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_add_new_dialog.png b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_add_new_dialog.png
new file mode 100644
index 0000000000..0066cb93a6
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_add_new_dialog.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a2c31cfc730449d51a42dc9b737af474c7d0e09e2000a902398ff3353b877a2
+size 11525
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png
new file mode 100644
index 0000000000..361342b60d
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_create.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6dd2153069832ada0e3ac5106b959147d9fcb204e972b078bab8163b6c77ffd
+size 247555
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_created.png b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_created.png
new file mode 100644
index 0000000000..145cdfcd4d
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_created.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:965315308d66ab9d40b520e4a7bbf9254b6df4a622236dac9d66a373e3d1bd0b
+size 14386
diff --git a/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_reloaded.png b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_reloaded.png
new file mode 100644
index 0000000000..5a2630d3de
--- /dev/null
+++ b/plugins/IntranetMeasurable/tests/UI/expected-screenshots/IntranetMeasurable_intranet_reloaded.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bcc87f8a8ae38808f008c8945cf9d353359a31c2b45526ea45ec2513d7743edb
+size 258493