Skip to content
Extraits de code Groupes Projets
Valider 1a71e760 rédigé par JulienMoumne's avatar JulienMoumne
Parcourir les fichiers

refs #3323

 * integration test files can now have custom file extensions (e.g: .pdf, .html, .sms.txt)
 * removing hard coded list of reports
 
 TODO: expected integration files need to be updated, pending GD discrepancy issues

git-svn-id: http://dev.piwik.org/svn/trunk@6883 59fd770c-687e-43c8-a1e3-f5a4ff64c105
parent 89d39855
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 27 ajouts et 55 suppressions
...@@ -22,7 +22,7 @@ class Test_Piwik_Integration_EcommerceOrderWithItems extends IntegrationTestCase ...@@ -22,7 +22,7 @@ class Test_Piwik_Integration_EcommerceOrderWithItems extends IntegrationTestCase
parent::setUpBeforeClass(); parent::setUpBeforeClass();
try { try {
self::setUpWebsitesAndGoals(); self::setUpWebsitesAndGoals();
self::setUpScheduledReports(self::$idSite, $ecommerce = true); self::setUpScheduledReports(self::$idSite);
self::trackVisits(); self::trackVisits();
} catch(Exception $e) { } catch(Exception $e) {
// Skip whole test suite if an error occurs while setup // Skip whole test suite if an error occurs while setup
......
...@@ -238,63 +238,21 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -238,63 +238,21 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
* Create one MAIL and two MOBILE scheduled reports * Create one MAIL and two MOBILE scheduled reports
* *
* @param int $idSite id of website created * @param int $idSite id of website created
* @param boolean $ecommerce if true, ecommerce reports are included
*/ */
protected static function setUpScheduledReports($idSite, $ecommerce = false) protected static function setUpScheduledReports($idSite)
{ {
// fake access is needed so API methods can call Piwik::getCurrentUserLogin(), e.g: 'PDFReports.addReport' // fake access is needed so API methods can call Piwik::getCurrentUserLogin(), e.g: 'PDFReports.addReport'
$pseudoMockAccess = new FakeAccess; $pseudoMockAccess = new FakeAccess;
FakeAccess::$superUser = true; FakeAccess::$superUser = true;
Zend_Registry::set('access', $pseudoMockAccess); Zend_Registry::set('access', $pseudoMockAccess);
// all available reports // retrieve available reports
$reports = array( $availableReportMetadata = Piwik_PDFReports_API::getReportMetadata($idSite, Piwik_PDFReports::EMAIL_TYPE);
// All Websites
"MultiSites_getAll",
// Visits Summary
"VisitsSummary_get", "VisitTime_getVisitInformationPerServerTime",
"VisitTime_getVisitInformationPerLocalTime", "VisitTime_getByDayOfWeek",
// Actions
"Actions_get", "Actions_getPageUrls", "Actions_getEntryPageUrls", "Actions_getExitPageUrls",
"Actions_getPageTitles", "Actions_getEntryPageTitles", "Actions_getExitPageTitles",
"Actions_getOutlinks", "Actions_getDownloads",
// Referrers
"Referers_getRefererType", "Referers_getKeywords", "Referers_getWebsites", "Referers_getSearchEngines",
"Referers_getCampaigns",
// Goals
"Goals_get", "Goals_getVisitsUntilConversion", "Goals_getDaysToConversion",
// Visitors
"UserCountry_getCountry", "UserCountry_getContinent", "CustomVariables_getCustomVariables",
"VisitorInterest_getNumberOfVisitsPerVisitDuration", "VisitorInterest_getNumberOfVisitsPerPage",
"VisitorInterest_getNumberOfVisitsByVisitCount", "VisitorInterest_getNumberOfVisitsByDaysSinceLast",
"VisitFrequency_get", "Provider_getProvider",
// Visitor Settings
"UserSettings_getResolution", "UserSettings_getBrowser", "UserSettings_getBrowserVersion",
"UserSettings_getBrowserType", "UserSettings_getPlugin", "UserSettings_getWideScreen",
"UserSettings_getOS", "UserSettings_getConfiguration", "UserSettings_getOSFamily",
"UserSettings_getMobileVsDesktop"
);
if($ecommerce) $availableReportIds = array();
foreach($availableReportMetadata as $reportMetadata)
{ {
$reports = array_merge( $availableReportIds[] = $reportMetadata['uniqueId'];
$reports,
// Ecommerce
array(
"Goals_get_idGoal--ecommerceOrder", "Goals_getVisitsUntilConversion_idGoal--ecommerceOrder",
"Goals_getDaysToConversion_idGoal--ecommerceOrder", "Goals_get_idGoal--ecommerceAbandonedCart",
"Goals_getVisitsUntilConversion_idGoal--ecommerceAbandonedCart",
"Goals_getDaysToConversion_idGoal--ecommerceAbandonedCart", "Goals_getItemsSku", "Goals_getItemsName",
"Goals_getItemsCategory",
)
);
} }
// set-up mail report // set-up mail report
...@@ -304,7 +262,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -304,7 +262,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'day', // overridden in getApiForTestingScheduledReports() 'day', // overridden in getApiForTestingScheduledReports()
Piwik_PDFReports::EMAIL_TYPE, Piwik_PDFReports::EMAIL_TYPE,
Piwik_ReportRenderer::HTML_FORMAT, // overridden in getApiForTestingScheduledReports() Piwik_ReportRenderer::HTML_FORMAT, // overridden in getApiForTestingScheduledReports()
$reports, $availableReportIds,
array("displayFormat"=>Piwik_PDFReports::DISPLAY_FORMAT_TABLES_AND_GRAPHS) array("displayFormat"=>Piwik_PDFReports::DISPLAY_FORMAT_TABLES_AND_GRAPHS)
); );
...@@ -351,6 +309,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -351,6 +309,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'date' => $dateTime, 'date' => $dateTime,
'periods' => array($period), 'periods' => array($period),
'format' => 'original', 'format' => 'original',
'fileExtension' => 'html',
'otherRequestParameters' => array( 'otherRequestParameters' => array(
'idReport' => 1, 'idReport' => 1,
'reportFormat' => Piwik_ReportRenderer::HTML_FORMAT, 'reportFormat' => Piwik_ReportRenderer::HTML_FORMAT,
...@@ -366,6 +325,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -366,6 +325,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'date' => $dateTime, 'date' => $dateTime,
'periods' => array($period), 'periods' => array($period),
'format' => 'original', 'format' => 'original',
'fileExtension' => 'pdf',
'otherRequestParameters' => array( 'otherRequestParameters' => array(
'idReport' => 1, 'idReport' => 1,
'reportFormat' => Piwik_ReportRenderer::PDF_FORMAT, 'reportFormat' => Piwik_ReportRenderer::PDF_FORMAT,
...@@ -381,6 +341,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -381,6 +341,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'date' => $dateTime, 'date' => $dateTime,
'periods' => array($period), 'periods' => array($period),
'format' => 'original', 'format' => 'original',
'fileExtension' => 'sms.txt',
'otherRequestParameters' => array( 'otherRequestParameters' => array(
'idReport' => 2, 'idReport' => 2,
'outputType' => Piwik_PDFReports_API::OUTPUT_RETURN 'outputType' => Piwik_PDFReports_API::OUTPUT_RETURN
...@@ -395,6 +356,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -395,6 +356,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'date' => $dateTime, 'date' => $dateTime,
'periods' => array($period), 'periods' => array($period),
'format' => 'original', 'format' => 'original',
'fileExtension' => 'sms.txt',
'otherRequestParameters' => array( 'otherRequestParameters' => array(
'idReport' => 3, 'idReport' => 3,
'outputType' => Piwik_PDFReports_API::OUTPUT_RETURN 'outputType' => Piwik_PDFReports_API::OUTPUT_RETURN
...@@ -475,10 +437,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -475,10 +437,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
* @param bool $setDateLastN If set to true, the 'date' parameter will be rewritten to query instead a range of dates, rather than one period only. * @param bool $setDateLastN If set to true, the 'date' parameter will be rewritten to query instead a range of dates, rather than one period only.
* @param bool|string $language 2 letter language code, defaults to default piwik language * @param bool|string $language 2 letter language code, defaults to default piwik language
* @param bool|string $segment * @param bool|string $segment
* @param bool|string $fileExtension
* *
* @return array of API URLs query strings * @return array of API URLs query strings
*/ */
protected function generateUrlsApi( $parametersToSet, $formats, $periods, $supertableApi = false, $setDateLastN = false, $language = false, $segment = false ) protected function generateUrlsApi( $parametersToSet, $formats, $periods, $supertableApi = false, $setDateLastN = false, $language = false, $segment = false, $fileExtension = false )
{ {
// Get the URLs to query against the API for all functions starting with get* // Get the URLs to query against the API for all functions starting with get*
$skipped = $requestUrls = array(); $skipped = $requestUrls = array();
...@@ -595,6 +558,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -595,6 +558,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
$apiRequestId .= '.' . $format; $apiRequestId .= '.' . $format;
if($fileExtension)
{
$apiRequestId .= '.' . $fileExtension;
}
$requestUrls[$apiRequestId] = $exampleUrl; $requestUrls[$apiRequestId] = $exampleUrl;
} }
} }
...@@ -619,12 +587,15 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -619,12 +587,15 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
* @param bool $apiModule * @param bool $apiModule
* @param bool $apiAction * @param bool $apiAction
* @param array $otherRequestParameters * @param array $otherRequestParameters
* @param array $supertableApi
* @param array $fileExtension
* *
* @return array * @return array
*/ */
protected function _generateApiUrls($formats = 'xml', $idSite = false, $dateTime = false, $periods = false, protected function _generateApiUrls($formats = 'xml', $idSite = false, $dateTime = false, $periods = false,
$setDateLastN = false, $language = false, $segment = false, $visitorId = false, $abandonedCarts = false, $setDateLastN = false, $language = false, $segment = false, $visitorId = false,
$idGoal = false, $apiModule = false, $apiAction = false, $otherRequestParameters = array(), $supertableApi = false) $abandonedCarts = false, $idGoal = false, $apiModule = false, $apiAction = false,
$otherRequestParameters = array(), $supertableApi = false, $fileExtension = false)
{ {
list($pathProcessed, $pathExpected) = $this->getProcessedAndExpectedDirs(); list($pathProcessed, $pathExpected) = $this->getProcessedAndExpectedDirs();
...@@ -689,7 +660,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -689,7 +660,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
$parametersToSet['idGoal'] = $idGoal; $parametersToSet['idGoal'] = $idGoal;
} }
$requestUrls = $this->generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi, $setDateLastN, $language, $segment); $requestUrls = $this->generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi, $setDateLastN, $language, $segment, $fileExtension);
return $requestUrls; return $requestUrls;
} }
...@@ -949,7 +920,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase ...@@ -949,7 +920,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
isset($params['apiModule']) ? $params['apiModule'] : false, isset($params['apiModule']) ? $params['apiModule'] : false,
isset($params['apiAction']) ? $params['apiAction'] : false, isset($params['apiAction']) ? $params['apiAction'] : false,
isset($params['otherRequestParameters']) ? $params['otherRequestParameters'] : array(), isset($params['otherRequestParameters']) ? $params['otherRequestParameters'] : array(),
isset($params['supertableApi']) ? $params['supertableApi'] : false); isset($params['supertableApi']) ? $params['supertableApi'] : false,
isset($params['fileExtension']) ? $params['fileExtension'] : false);
foreach($requestUrls as $apiId => $requestUrl) foreach($requestUrls as $apiId => $requestUrl)
{ {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter