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:
authormattpiwik <matthieu.aubry@gmail.com>2010-08-26 18:36:46 +0400
committermattpiwik <matthieu.aubry@gmail.com>2010-08-26 18:36:46 +0400
commit691dd6594addfa82a7dbbe19823e9fced4c3ba69 (patch)
tree339b4bac2cd47192acfeca136bacf9d5b3aa6f16 /plugins/UsersManager
parentff68f3619315092a5612ea52416d7e50d49e270b (diff)
Committing old test that wasn't shown as requiring commit on my box...
git-svn-id: http://dev.piwik.org/svn/trunk@2986 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/tests/PDFReports.test.php208
1 files changed, 208 insertions, 0 deletions
diff --git a/plugins/UsersManager/tests/PDFReports.test.php b/plugins/UsersManager/tests/PDFReports.test.php
new file mode 100644
index 0000000000..5517e6bd7c
--- /dev/null
+++ b/plugins/UsersManager/tests/PDFReports.test.php
@@ -0,0 +1,208 @@
+<?php
+if(!defined("PIWIK_PATH_TEST_TO_ROOT")) {
+ define('PIWIK_PATH_TEST_TO_ROOT', getcwd().'/../../..');
+}
+if(!defined('PIWIK_CONFIG_TEST_INCLUDED'))
+{
+ require_once PIWIK_PATH_TEST_TO_ROOT . "/tests/config_test.php";
+}
+
+require_once PIWIK_PATH_TEST_TO_ROOT . '/tests/core/Database.test.php';
+require_once PIWIK_PATH_TEST_TO_ROOT . '/plugins/PDFReports/PDFReports.php';
+
+class Test_Piwik_PDFReports extends Test_Database
+{
+ protected $idSiteAccess = 1;
+ function setUp()
+ {
+ parent::setUp();
+
+ // setup the access layer
+ $pseudoMockAccess = new FakeAccess;
+ FakeAccess::setIdSitesView( array($this->idSiteAccess,2));
+
+ //finally we set the user as a super user by default
+ Zend_Registry::set('access', $pseudoMockAccess);
+ Piwik_PluginsManager::getInstance()->loadPlugins( array('API', 'UserCountry', 'PDFReports') );
+ Piwik_PluginsManager::getInstance()->installLoadedPlugins();
+ }
+
+ function tearDown()
+ {
+ Piwik_Query('TRUNCATE '.Piwik_Common::prefixTable('pdf'));
+ }
+
+ function test_addReport_getReports()
+ {
+ $data = array(
+ 'idsite' => $this->idSiteAccess,
+ 'description' => 'test description"',
+ 'period' => 'day',
+ 'reports' => 'UserCountry_getCountry',
+ 'email_me' => 1,
+ 'additional_emails' => 'test@test.com, t2@test.com',
+ );
+
+ $dataWebsiteTwo = $data;
+ $dataWebsiteTwo['idsite'] = 2;
+ $dataWebsiteTwo['period'] = 'month';
+
+ $idReportTwo = $this->_createReport($dataWebsiteTwo);
+ // Testing getReports without parameters
+ $report = reset(Piwik_PDFReports_API::getInstance()->getReports());
+ $this->_checkReportsEqual($report, $dataWebsiteTwo);
+
+ $idReport = $this->_createReport($data);
+
+ // Passing 3 parameters
+ $report = reset(Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess, $data['period'], $idReport));
+ $this->_checkReportsEqual($report, $data);
+
+ // Passing only idsite
+ $report = reset(Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess));
+ $this->_checkReportsEqual($report, $data);
+
+ // Passing only period
+ $report = reset(Piwik_PDFReports_API::getInstance()->getReports($idSite=false, $data['period']));
+ $this->_checkReportsEqual($report, $data);
+
+ // Passing only idreport
+ $report = reset(Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport));
+ $this->_checkReportsEqual($report, $data);
+
+ }
+
+ function test_getReports_idReportNotFound()
+ {
+ try {
+ $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport = 1);
+ var_dump($report);
+ $this->fail();
+ } catch(Exception $e) {
+ $this->pass();
+ }
+ }
+
+ function test_getReports_invalidPermission()
+ {
+ $data = $this->_getAddReportData();
+ $idReport = $this->_createReport($data);
+
+ try {
+ $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=44,$period=false, $idReport);
+ $this->fail();
+ } catch(Exception $e){
+ $this->pass();
+ }
+ }
+
+ function test_addReport_invalidWebsite()
+ {
+ $data = $this->_getAddReportData();
+ $data['idsite'] = 33;
+ try {
+ $idReport = $this->_createReport($data);
+ $this->fail();
+ } catch(Exception $e){
+ $this->pass();
+ }
+ }
+
+ function test_addReport_invalidPeriod()
+ {
+ $data = $this->_getAddReportData();
+ $data['period'] = 'dx';
+ try {
+ $idReport = $this->_createReport($data);
+ $this->fail();
+ } catch(Exception $e){
+ $this->pass();
+ }
+ }
+
+ function test_updateReport()
+ {
+ $dataBefore = $this->_getAddReportData();
+ $idReport = $this->_createReport($dataBefore);
+ $dataAfter = $this->_getYetAnotherAddReportData();
+ $this->_updateReport($idReport, $dataAfter);
+ $newReport = reset(Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport));
+ $this->_checkReportsEqual($newReport, $dataAfter);
+ }
+
+ function test_deleteReport()
+ {
+ // Deletes non existing report throws exception
+ try {
+ Piwik_PDFReports_API::getInstance()->deleteReport($idReport = 1);
+ $this->fail();
+ } catch(Exception $e) {
+ $this->pass();
+ }
+
+ $idReport = $this->_createReport($this->_getYetAnotherAddReportData());
+ $this->assertEqual(1, count(Piwik_PDFReports_API::getInstance()->getReports()));
+ Piwik_PDFReports_API::getInstance()->deleteReport($idReport);
+ $this->assertEqual(0, count(Piwik_PDFReports_API::getInstance()->getReports()));
+ }
+
+
+ function _getAddReportData()
+ {
+ return array(
+ 'idsite' => $this->idSiteAccess,
+ 'description' => 'test description"',
+ 'period' => 'day',
+ 'reports' => 'UserCountry_getCountry',
+ 'email_me' => 1,
+ 'additional_emails' => 'test@test.com, t2@test.com',
+ );
+ }
+
+ function _getYetAnotherAddReportData()
+ {
+ return array(
+ 'idsite' => $this->idSiteAccess,
+ 'description' => 'very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. ',
+ 'period' => 'month',
+ 'reports' => 'UserCountry_getContinent',
+ 'email_me' => 0,
+ 'additional_emails' => 'blabla@ec.fr',
+ );
+ }
+ function _createReport($data)
+ {
+ $idReport = Piwik_PDFReports_API::getInstance()->addReport(
+ $data['idsite'],
+ $data['description'],
+ $data['period'],
+ $data['reports'],
+ $data['email_me'],
+ $data['additional_emails']);
+ return $idReport;
+ }
+
+ function _updateReport($idReport, $data)
+ {
+ //$idReport, $idSite, $description, $period, $reports, $emailMe = true, $additionalEmails = false)
+ $idReport = Piwik_PDFReports_API::getInstance()->updateReport(
+ $idReport,
+ $data['idsite'],
+ $data['description'],
+ $data['period'],
+ $data['reports'],
+ $data['email_me'],
+ $data['additional_emails']);
+ return $idReport;
+ }
+ function _checkReportsEqual($report, $data)
+ {
+ foreach($data as $key => $value)
+ {
+ if($key == 'additional_emails') $value = str_replace(' ','', $value);
+ if($key == 'description') $value = substr($value,0,250);
+ $this->assertEqual($value, $report[$key], "Error for $key %s");
+ }
+ }
+
+}