Newer
Older
benakamoorthi
a validé
<?php
/**
* Piwik - free/libre analytics platform
benakamoorthi
a validé
*
* @link http://piwik.org
benakamoorthi
a validé
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Tests\Integration;
benakamoorthi
a validé
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockLocationProvider.php';
Thomas Steur
a validé
use Piwik\Date;
use Piwik\Tests\SystemTestCase;
use Piwik\Tests\Fixtures\ManyVisitsWithGeoIP;
benakamoorthi
a validé
/**
mattab
a validé
* Tests w/ 14 visitors w/ 2 visits each.
* Uses geoip location provider to test city/region reports.
benakamoorthi
a validé
* TODO Test ServerBased GeoIP implementation somehow. (Use X-FORWARDED-FOR?)
* TODO Test PECL implementation somehow. (The PECL module must point to the test dir, not the real one.)
*
* @group ManyVisitorsOneWebsiteTest
Thomas Steur
a validé
* @group Core
benakamoorthi
a validé
*/
class ManyVisitorsOneWebsiteTest extends SystemTestCase
benakamoorthi
a validé
{
public static $fixture = null; // initialized below class definition
/**
* @dataProvider getApiForTesting
*/
public function testApi($api, $params)
{
$this->runApiTests($api, $params);
}
public function getApiForTesting()
{
$idSite = self::$fixture->idSite;
$dateTime = self::$fixture->dateTime;
benakamoorthi
a validé
Thomas Steur
a validé
$dateString = Date::factory($dateTime)->toString();
// Note: we must set 'UserCountry.getLocationFromIP' since it's "excluded" by default in setApiNotToCall
$apiToCall = array('UserCountry');
array($apiToCall,
array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'))),
array($apiToCall, array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_region',
array($apiToCall, array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_city',
'segment' => 'city==Stratford-upon-Avon;regionCode==P3;countryCode==gb')),
array($apiToCall, array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_lat_long',
'segment' => 'latitude>45;latitude<49.3;longitude>-125;longitude<-122')),
array('UserCountry.getCountry', array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_continent',
// make sure it is possible to sort getProcessedReport by a processed metric
array('API.getProcessedReport', array('idSite' => $idSite,
'date' => $dateTime,
'periods' => 'day',
'apiModule' => 'Actions',
'apiAction' => 'getPageUrls',
'testSuffix' => '_sortByProcessedMetric',
'otherRequestParameters' => array(
'filter_sort_column' => 'nb_actions_per_visit'
))),
// make sure it is possible to sort getProcessedReport by a processed metric
// it should not remove empty rows if report has constant rows count
array('API.getProcessedReport', array('idSite' => $idSite,
'date' => $dateTime,
'periods' => 'day',
'apiModule' => 'VisitTime',
'apiAction' => 'getVisitInformationPerServerTime',
'testSuffix' => '_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows',
'otherRequestParameters' => array(
'filter_sort_column' => 'nb_actions_per_visit'
))),
array(array('UserCountry.getLocationFromIP', 'Live.getLastVisitsDetails'), array(
'idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'otherRequestParameters' => array('ip' => '194.57.91.215')
)),
Thomas Steur
a validé
// Randomly fails on 5.3
if(!self::isPhpVersion53()) {
$apiToTest[] = array('Live.getLastVisitsDetails', array(
Thomas Steur
a validé
'idSite' => $idSite,
'date' => $dateString,
'periods' => 'month',
'testSuffix' => '_Live.getLastVisitsDetails_sortDesc',
'otherRequestParameters' => array('filter_sort_order' => 'desc', 'filter_limit' => 7)
// #5950
$apiToTest[] = array('Live.getLastVisitsDetails', array(
'idSite' => $idSite,
'date' => $dateString,
'periods' => 'month',
'testSuffix' => '_Live.getLastVisitsDetails_sortByVisitCount',
'otherRequestParameters' => array('filter_sort_order' => 'desc', 'filter_sort_column' => 'visitCount', 'filter_limit' => 7)
));
// #5950
$apiToTest[] = array('Live.getLastVisitsDetails', array(
'idSite' => $idSite,
'date' => $dateString,
'periods' => 'month',
'testSuffix' => '_Live.getLastVisitsDetails_sortByIdVisit',
'otherRequestParameters' => array('filter_sort_order' => 'desc', 'filter_sort_column' => 'idVisit', 'filter_limit' => 7)
));
// #5950
$apiToTest[] = array('Live.getLastVisitsDetails', array(
'idSite' => $idSite,
'date' => $dateString,
'periods' => 'month',
'testSuffix' => '_Live.getLastVisitsDetails_sortByIdVisitAsc',
'otherRequestParameters' => array('filter_sort_order' => 'asc',
'filter_sort_column' => 'idVisit',
'filter_limit' => 7,
'hideColumns' => 'latitude,longitude' // Mysqli has troubles with lat/long rounding
)
// this also fails on all PHP versions, it seems randomly.
// $apiToTest[] = array('Live.getLastVisitsDetails', array(
// 'idSite' => $idSite,
// 'date' => $dateString,
// 'periods' => 'month',
// 'testSuffix' => '_Live.getLastVisitsDetails_sortAsc',
// 'otherRequestParameters' => array('filter_sort_order' => 'asc', 'filter_limit' => 7)
// ));
benakamoorthi
a validé
}
diosmosis
a validé
ManyVisitorsOneWebsiteTest::$fixture = new ManyVisitsWithGeoIP();