diff options
Diffstat (limited to 'plugins/IntranetMeasurable/tests')
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 |