diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-10-05 15:05:47 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-10-05 15:05:47 +0400 |
commit | 5a1eab97f54b44f57356b4276b9c9df2a8eef51b (patch) | |
tree | 83864ece2806ccf6e6bb49abf3fd65de92c13ad8 /tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php | |
parent | 19bcd2d262343eae9d553378e4c66ce7e033b4d8 (diff) |
refs #5940 put tests in correct folders, better testsuite names, some tests still fail and I cannot figure out why
Diffstat (limited to 'tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php')
-rwxr-xr-x | tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php b/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php new file mode 100755 index 0000000000..243e9761c5 --- /dev/null +++ b/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php @@ -0,0 +1,119 @@ +<?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\Tests\System; + +use Piwik\Plugins\Goals\Archiver; +use Piwik\Tests\SystemTestCase; +use Piwik\Tests\Fixtures\TwoSitesTwoVisitorsDifferentDays; + +require_once 'Goals/Goals.php'; + +/** + * Same as TwoVisitors_twoWebsites_differentDays but with goals that convert + * on every url. + * + * @group TwoVisitorsTwoWebsitesDifferentDaysConversionsTest + * @group Plugins + */ +class TwoVisitorsTwoWebsitesDifferentDaysConversionsTest extends SystemTestCase +{ + public static $fixture = null; // initialized below class definition + + /** + * @dataProvider getApiForTesting + */ + public function testApi($api, $params) + { + $this->runApiTests($api, $params); + } + + public function getApiToCall() + { + return array('Goals.getDaysToConversion', + 'MultiSites.getAll' + ); + } + + public function getApiForTesting() + { + $dateTime = self::$fixture->dateTime; + $idSite1 = self::$fixture->idSite1; + + // NOTE: copied from TwoVisitors_TwoWebsites_DifferentDays (including the test or inheriting means + // the test will get run by phpunit, even when we only want to run this one. should be put into + // non-test class later.) + $apiToCall = $this->getApiToCall(); + $singlePeriodApi = array('VisitsSummary.get', 'Goals.get'); + + $periods = array( + 'day', + 'week', + 'month', + 'year' + ); + + $result = array( + // Request data for the last 6 periods and idSite=all + array($apiToCall, array('idSite' => 'all', + 'date' => $dateTime, + 'periods' => $periods, + 'setDateLastN' => true)), + + // Request data for the last 6 periods and idSite=1 + array($apiToCall, array('idSite' => $idSite1, + 'date' => $dateTime, + 'periods' => $periods, + 'setDateLastN' => true, + 'testSuffix' => '_idSiteOne_')), + + // We also test a single period to check that this use case (Reports per idSite in the response) works + array($singlePeriodApi, array('idSite' => 'all', + 'date' => $dateTime, + 'periods' => array('day', 'month'), + 'setDateLastN' => false, + 'testSuffix' => '_NotLastNPeriods')), + ); + + // testing metadata API for multiple periods + $apiToCall = array_diff($apiToCall, array('Actions.getPageTitle', 'Actions.getPageUrl')); + foreach ($apiToCall as $api) { + list($apiModule, $apiAction) = explode(".", $api); + + $result[] = array( + 'API.getProcessedReport', array('idSite' => $idSite1, + 'date' => $dateTime, + 'periods' => array('day'), + 'setDateLastN' => true, + 'apiModule' => $apiModule, + 'apiAction' => $apiAction, + 'testSuffix' => '_' . $api . '_firstSite_lastN') + ); + } + + // Tests that getting a visits summary metric (nb_visits) & a Goal's metric (Goal_revenue) + // at the same time works. + $dateTime = '2010-01-03,2010-01-06'; + $columns = 'nb_visits,' . Archiver::getRecordName('conversion_rate'); + + $result[] = array( + 'VisitsSummary.get', array('idSite' => 'all', 'date' => $dateTime, 'periods' => 'range', + 'otherRequestParameters' => array('columns' => $columns), + 'testSuffix' => '_getMetricsFromDifferentReports') + ); + + return $result; + } + + public static function getOutputPrefix() + { + return 'TwoVisitors_twoWebsites_differentDays_Conversions'; + } +} + +TwoVisitorsTwoWebsitesDifferentDaysConversionsTest::$fixture = new TwoSitesTwoVisitorsDifferentDays(); +TwoVisitorsTwoWebsitesDifferentDaysConversionsTest::$fixture->allowConversions = true;
\ No newline at end of file |