From 9ca63b0931d668a292ef4aebe16101fc3e796bd9 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Mon, 7 Oct 2013 18:14:07 +1300
Subject: [PATCH] Refs #4125 Renaming PDFReports to ScheduledReports

---
 config/global.ini.php                         |   2 +-
 core/ReportRenderer/Pdf.php                   |   2 +-
 core/Updates/1.8.3-b1.php                     |  16 +--
 plugins/MobileMessaging/API.php               |   4 +-
 plugins/MobileMessaging/MobileMessaging.php   |  40 +++---
 plugins/Referrers/Archiver.php                |   2 -
 .../{PDFReports => ScheduledReports}/API.php  |  36 ++---
 .../Controller.php                            |  22 ++--
 .../ScheduledReports.php}                     |  38 +++---
 .../config/tcpdf_config.php                   |   4 +-
 .../javascripts/pdf.js                        |   8 +-
 .../templates/_addReport.twig                 |   2 +-
 .../templates/_listReports.twig               |   2 +-
 .../templates/index.twig                      |   4 +-
 .../templates/reportParametersPDFReports.twig |   0
 tests/PHPUnit/BaseFixture.php                 |  32 ++---
 tests/PHPUnit/Core/ScheduledTaskTest.php      |  12 +-
 tests/PHPUnit/Core/TaskSchedulerTest.php      |   6 +-
 tests/PHPUnit/DatabaseTestCase.php            |   2 +-
 tests/PHPUnit/IntegrationTestCase.php         |  30 ++---
 tests/PHPUnit/Plugins/MobileMessagingTest.php |  16 +--
 tests/PHPUnit/Plugins/PDFReportsTest.php      | 124 +++++++++---------
 tests/PHPUnit/TestingEnvironment.php          |   2 +-
 23 files changed, 202 insertions(+), 204 deletions(-)
 rename plugins/{PDFReports => ScheduledReports}/API.php (95%)
 rename plugins/{PDFReports => ScheduledReports}/Controller.php (84%)
 rename plugins/{PDFReports/PDFReports.php => ScheduledReports/ScheduledReports.php} (94%)
 rename plugins/{PDFReports => ScheduledReports}/config/tcpdf_config.php (99%)
 rename plugins/{PDFReports => ScheduledReports}/javascripts/pdf.js (94%)
 rename plugins/{PDFReports => ScheduledReports}/templates/_addReport.twig (99%)
 rename plugins/{PDFReports => ScheduledReports}/templates/_listReports.twig (96%)
 rename plugins/{PDFReports => ScheduledReports}/templates/index.twig (93%)
 rename plugins/{PDFReports => ScheduledReports}/templates/reportParametersPDFReports.twig (100%)

diff --git a/config/global.ini.php b/config/global.ini.php
index 8405080a76..cd7ec40906 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -523,7 +523,7 @@ Plugins[] = UsersManager
 Plugins[] = SitesManager
 Plugins[] = Installation
 Plugins[] = CoreUpdater
-Plugins[] = PDFReports
+Plugins[] = ScheduledReports
 Plugins[] = UserCountryMap
 Plugins[] = Live
 Plugins[] = CustomVariables
diff --git a/core/ReportRenderer/Pdf.php b/core/ReportRenderer/Pdf.php
index d548523eae..de5c52770e 100644
--- a/core/ReportRenderer/Pdf.php
+++ b/core/ReportRenderer/Pdf.php
@@ -19,7 +19,7 @@ use Piwik\TCPDF;
 /**
  * @see libs/tcpdf
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/PDFReports/config/tcpdf_config.php';
+require_once PIWIK_INCLUDE_PATH . '/plugins/ScheduledReports/config/tcpdf_config.php';
 require_once PIWIK_INCLUDE_PATH . '/libs/tcpdf/config/lang/eng.php';
 require_once PIWIK_INCLUDE_PATH . '/core/TCPDF.php';
 
diff --git a/core/Updates/1.8.3-b1.php b/core/Updates/1.8.3-b1.php
index f217635ebc..0e539bea5d 100644
--- a/core/Updates/1.8.3-b1.php
+++ b/core/Updates/1.8.3-b1.php
@@ -9,7 +9,7 @@
  * @package Updates
  */
 use Piwik\Common;
-use Piwik\Plugins\PDFReports\PDFReports;
+use Piwik\Plugins\ScheduledReports\ScheduledReports;
 use Piwik\Updater;
 use Piwik\Updates;
 use Piwik\Db;
@@ -47,7 +47,7 @@ class Piwik_Updates_1_8_3_b1 extends Updates
     static function update()
     {
         Updater::updateDatabase(__FILE__, self::getSql());
-        if (!\Piwik\PluginsManager::getInstance()->isPluginLoaded('PDFReports')) {
+        if (!\Piwik\PluginsManager::getInstance()->isPluginLoaded('ScheduledReports')) {
             return;
         }
 
@@ -79,11 +79,11 @@ class Piwik_Updates_1_8_3_b1 extends Updates
                 $parameters = array();
 
                 if (!is_null($additional_emails)) {
-                    $parameters[PDFReports::ADDITIONAL_EMAILS_PARAMETER] = preg_split('/,/', $additional_emails);
+                    $parameters[ScheduledReports::ADDITIONAL_EMAILS_PARAMETER] = preg_split('/,/', $additional_emails);
                 }
 
-                $parameters[PDFReports::EMAIL_ME_PARAMETER] = is_null($email_me) ? PDFReports::EMAIL_ME_PARAMETER_DEFAULT_VALUE : (bool)$email_me;
-                $parameters[PDFReports::DISPLAY_FORMAT_PARAMETER] = $display_format;
+                $parameters[ScheduledReports::EMAIL_ME_PARAMETER] = is_null($email_me) ? ScheduledReports::EMAIL_ME_PARAMETER_DEFAULT_VALUE : (bool)$email_me;
+                $parameters[ScheduledReports::DISPLAY_FORMAT_PARAMETER] = $display_format;
 
                 Db::query(
                     'INSERT INTO `' . Common::prefixTable('report') . '` SET
@@ -95,9 +95,9 @@ class Piwik_Updates_1_8_3_b1 extends Updates
                          $idsite,
                          $login,
                          $description,
-                         is_null($period) ? PDFReports::DEFAULT_PERIOD : $period,
-                         PDFReports::EMAIL_TYPE,
-                         is_null($format) ? PDFReports::DEFAULT_REPORT_FORMAT : $format,
+                         is_null($period) ? ScheduledReports::DEFAULT_PERIOD : $period,
+                         ScheduledReports::EMAIL_TYPE,
+                         is_null($format) ? ScheduledReports::DEFAULT_REPORT_FORMAT : $format,
                          Common::json_encode(preg_split('/,/', $reports)),
                          Common::json_encode($parameters),
                          $ts_created,
diff --git a/plugins/MobileMessaging/API.php b/plugins/MobileMessaging/API.php
index 0fe0d150cf..5b688521a4 100644
--- a/plugins/MobileMessaging/API.php
+++ b/plugins/MobileMessaging/API.php
@@ -14,7 +14,7 @@ use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Plugins\MobileMessaging\MobileMessaging;
 use Piwik\Plugins\MobileMessaging\SMSProvider;
-use Piwik\Plugins\PDFReports\API as APIPDFReports;
+use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
 
 /**
  * The MobileMessaging API lets you manage and access all the MobileMessaging plugin features including :
@@ -221,7 +221,7 @@ class API
         $this->savePhoneNumbers($phoneNumbers);
 
         // remove phone number from reports
-        $pdfReportsAPIInstance = APIPDFReports::getInstance();
+        $pdfReportsAPIInstance = APIScheduledReports::getInstance();
         $reports = $pdfReportsAPIInstance->getReports(
             $idSite = false,
             $period = false,
diff --git a/plugins/MobileMessaging/MobileMessaging.php b/plugins/MobileMessaging/MobileMessaging.php
index f4b8ba9443..1eb7a7c4dc 100644
--- a/plugins/MobileMessaging/MobileMessaging.php
+++ b/plugins/MobileMessaging/MobileMessaging.php
@@ -16,7 +16,7 @@ use Piwik\View;
 use Piwik\Plugins\API\API as APIPlugins;
 use Piwik\Plugins\MobileMessaging\ReportRenderer\ReportRendererException;
 use Piwik\Plugins\MobileMessaging\ReportRenderer\Sms;
-use Piwik\Plugins\PDFReports\API as APIPDFReports;
+use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
 
 /**
  *
@@ -70,16 +70,16 @@ class MobileMessaging extends \Piwik\Plugin
             'Menu.Admin.addItems'                 => 'addMenu',
             'AssetManager.getJavaScriptFiles'     => 'getJsFiles',
             'AssetManager.getStylesheetFiles'     => 'getStylesheetFiles',
-            'PDFReports.getReportParameters'      => 'getReportParameters',
-            'PDFReports.validateReportParameters' => 'validateReportParameters',
-            'PDFReports.getReportMetadata'        => 'getReportMetadata',
-            'PDFReports.getReportTypes'           => 'getReportTypes',
-            'PDFReports.getReportFormats'         => 'getReportFormats',
-            'PDFReports.getRendererInstance'      => 'getRendererInstance',
-            'PDFReports.getReportRecipients'      => 'getReportRecipients',
-            'PDFReports.allowMultipleReports'     => 'allowMultipleReports',
-            'PDFReports.sendReport'               => 'sendReport',
-            'Template.reportParametersPDFReports' => 'template_reportParametersPDFReports',
+            'ScheduledReports.getReportParameters'      => 'getReportParameters',
+            'ScheduledReports.validateReportParameters' => 'validateReportParameters',
+            'ScheduledReports.getReportMetadata'        => 'getReportMetadata',
+            'ScheduledReports.getReportTypes'           => 'getReportTypes',
+            'ScheduledReports.getReportFormats'         => 'getReportFormats',
+            'ScheduledReports.getRendererInstance'      => 'getRendererInstance',
+            'ScheduledReports.getReportRecipients'      => 'getReportRecipients',
+            'ScheduledReports.allowMultipleReports'     => 'allowMultipleReports',
+            'ScheduledReports.sendReport'               => 'sendReport',
+            'Template.reportParametersScheduledReports' => 'template_reportParametersScheduledReports',
         );
     }
 
@@ -127,7 +127,7 @@ class MobileMessaging extends \Piwik\Plugin
     public function getReportMetadata(&$availableReportMetadata, $notificationInfo)
     {
         if (self::manageEvent($notificationInfo)) {
-            $idSite = $notificationInfo[APIPDFReports::ID_SITE_INFO_KEY];
+            $idSite = $notificationInfo[APIScheduledReports::ID_SITE_INFO_KEY];
 
             foreach (self::$availableReports as $availableReport) {
                 $reportMetadata = APIPlugins::getInstance()->getMetadata(
@@ -186,7 +186,7 @@ class MobileMessaging extends \Piwik\Plugin
     public function getReportRecipients(&$recipients, $notificationInfo)
     {
         if (self::manageEvent($notificationInfo)) {
-            $report = $notificationInfo[APIPDFReports::REPORT_KEY];
+            $report = $notificationInfo[APIScheduledReports::REPORT_KEY];
             $recipients = $report['parameters'][self::PHONE_NUMBERS_PARAMETER];
         }
     }
@@ -194,9 +194,9 @@ class MobileMessaging extends \Piwik\Plugin
     public function sendReport($notificationInfo)
     {
         if (self::manageEvent($notificationInfo)) {
-            $report = $notificationInfo[APIPDFReports::REPORT_KEY];
-            $contents = $notificationInfo[APIPDFReports::REPORT_CONTENT_KEY];
-            $reportSubject = $notificationInfo[APIPDFReports::REPORT_SUBJECT_KEY];
+            $report = $notificationInfo[APIScheduledReports::REPORT_KEY];
+            $contents = $notificationInfo[APIScheduledReports::REPORT_CONTENT_KEY];
+            $reportSubject = $notificationInfo[APIScheduledReports::REPORT_SUBJECT_KEY];
 
             $parameters = $report['parameters'];
             $phoneNumbers = $parameters[self::PHONE_NUMBERS_PARAMETER];
@@ -217,13 +217,13 @@ class MobileMessaging extends \Piwik\Plugin
         }
     }
 
-    static public function template_reportParametersPDFReports(&$out)
+    static public function template_reportParametersScheduledReports(&$out)
     {
         if (Piwik::isUserIsAnonymous()) {
             return;
         }
 
-        $view = new View('@MobileMessaging/reportParametersPDFReports');
+        $view = new View('@MobileMessaging/reportParametersScheduledReports');
         $view->reportType = self::MOBILE_TYPE;
         $view->phoneNumbers = APIMobileMessaging::getInstance()->getActivatedPhoneNumbers();
         $out .= $view->render();
@@ -231,7 +231,7 @@ class MobileMessaging extends \Piwik\Plugin
 
     private static function manageEvent($notificationInfo)
     {
-        return in_array($notificationInfo[APIPDFReports::REPORT_TYPE_INFO_KEY], array_keys(self::$managedReportTypes));
+        return in_array($notificationInfo[APIScheduledReports::REPORT_TYPE_INFO_KEY], array_keys(self::$managedReportTypes));
     }
 
     function install()
@@ -245,7 +245,7 @@ class MobileMessaging extends \Piwik\Plugin
     function deactivate()
     {
         // delete all mobile reports
-        $pdfReportsAPIInstance = APIPDFReports::getInstance();
+        $pdfReportsAPIInstance = APIScheduledReports::getInstance();
         $reports = $pdfReportsAPIInstance->getReports();
 
         foreach ($reports as $report) {
diff --git a/plugins/Referrers/Archiver.php b/plugins/Referrers/Archiver.php
index 9316b92ae8..bb0b24169d 100644
--- a/plugins/Referrers/Archiver.php
+++ b/plugins/Referrers/Archiver.php
@@ -15,10 +15,8 @@ use Piwik\Common;
 use Piwik\Config;
 use Piwik\Metrics;
 use Piwik\DataArray;
-use Piwik\Plugins\Referrers\API;
 use Piwik\PluginsArchiver;
 
-
 class Archiver extends PluginsArchiver
 {
     const SEARCH_ENGINES_RECORD_NAME = 'Referrers_keywordBySearchEngine';
diff --git a/plugins/PDFReports/API.php b/plugins/ScheduledReports/API.php
similarity index 95%
rename from plugins/PDFReports/API.php
rename to plugins/ScheduledReports/API.php
index df72e8c39c..adac5dced7 100644
--- a/plugins/PDFReports/API.php
+++ b/plugins/ScheduledReports/API.php
@@ -6,9 +6,9 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  *
  * @category Piwik_Plugins
- * @package PDFReports
+ * @package ScheduledReports
  */
-namespace Piwik\Plugins\PDFReports;
+namespace Piwik\Plugins\ScheduledReports;
 
 use Exception;
 use Piwik\Piwik;
@@ -24,7 +24,7 @@ use Piwik\Plugins\SegmentEditor\API as APISegmentEditor;
 use Zend_Mime;
 
 /**
- * The PDFReports API lets you manage Scheduled Email reports, as well as generate, download or email any existing report.
+ * The ScheduledReports API lets you manage Scheduled Email reports, as well as generate, download or email any existing report.
  *
  * "generateReport" will generate the requested report (for a specific date range, website and in the requested language).
  * "sendEmailReport" will send the report by email to the recipients specified for this report.
@@ -33,20 +33,20 @@ use Zend_Mime;
  * or manage existing reports with "updateReport" and "deleteReport".
  * See also the documentation about <a href='http://piwik.org/docs/email-reports/' target='_blank'>Scheduled Email reports</a> in Piwik.
  *
- * @package PDFReports
+ * @package ScheduledReports
  */
 class API
 {
-    const VALIDATE_PARAMETERS_EVENT = 'PDFReports.validateReportParameters';
-    const GET_REPORT_PARAMETERS_EVENT = 'PDFReports.getReportParameters';
-    const GET_REPORT_METADATA_EVENT = 'PDFReports.getReportMetadata';
-    const GET_REPORT_TYPES_EVENT = 'PDFReports.getReportTypes';
-    const GET_REPORT_FORMATS_EVENT = 'PDFReports.getReportFormats';
-    const GET_RENDERER_INSTANCE_EVENT = 'PDFReports.getRendererInstance';
-    const PROCESS_REPORTS_EVENT = 'PDFReports.processReports';
-    const GET_REPORT_RECIPIENTS_EVENT = 'PDFReports.getReportRecipients';
-    const ALLOW_MULTIPLE_REPORTS_EVENT = 'PDFReports.allowMultipleReports';
-    const SEND_REPORT_EVENT = 'PDFReports.sendReport';
+    const VALIDATE_PARAMETERS_EVENT = 'ScheduledReports.validateReportParameters';
+    const GET_REPORT_PARAMETERS_EVENT = 'ScheduledReports.getReportParameters';
+    const GET_REPORT_METADATA_EVENT = 'ScheduledReports.getReportMetadata';
+    const GET_REPORT_TYPES_EVENT = 'ScheduledReports.getReportTypes';
+    const GET_REPORT_FORMATS_EVENT = 'ScheduledReports.getReportFormats';
+    const GET_RENDERER_INSTANCE_EVENT = 'ScheduledReports.getRendererInstance';
+    const PROCESS_REPORTS_EVENT = 'ScheduledReports.processReports';
+    const GET_REPORT_RECIPIENTS_EVENT = 'ScheduledReports.getReportRecipients';
+    const ALLOW_MULTIPLE_REPORTS_EVENT = 'ScheduledReports.allowMultipleReports';
+    const SEND_REPORT_EVENT = 'ScheduledReports.sendReport';
 
     const OUTPUT_DOWNLOAD = 1;
     const OUTPUT_SAVE_ON_DISK = 2;
@@ -69,7 +69,7 @@ class API
     static private $instance = null;
 
     /**
-     * @return \Piwik\Plugins\PDFReports\API
+     * @return \Piwik\Plugins\ScheduledReports\API
      */
     static public function getInstance()
     {
@@ -86,8 +86,8 @@ class API
      * @param string $description Report description
      * @param string $period Schedule frequency: day, week or month
      * @param int $hour Hour (0-23) when the report should be sent
-     * @param string $reportType 'email' or any other format provided via the PDFReports.getReportTypes hook
-     * @param string $reportFormat 'pdf', 'html' or any other format provided via the PDFReports.getReportFormats hook
+     * @param string $reportType 'email' or any other format provided via the ScheduledReports.getReportTypes hook
+     * @param string $reportFormat 'pdf', 'html' or any other format provided via the ScheduledReports.getReportFormats hook
      * @param array $reports array of reports
      * @param array $parameters array of parameters
      * @param bool|int $idSegment Segment Identifier
@@ -295,7 +295,7 @@ class API
      * @param bool|false|string $language If not passed, will use default language.
      * @param bool|false|int $outputType 1 = download report, 2 = save report to disk, 3 = output report in browser, 4 = return report content to caller, defaults to download
      * @param bool|false|string $period Defaults to 'day'. If not specified, will default to the report's period set when creating the report
-     * @param bool|false|string $reportFormat 'pdf', 'html' or any other format provided via the PDFReports.getReportFormats hook
+     * @param bool|false|string $reportFormat 'pdf', 'html' or any other format provided via the ScheduledReports.getReportFormats hook
      * @param bool|false|array $parameters array of parameters
      * @return array|void
      */
diff --git a/plugins/PDFReports/Controller.php b/plugins/ScheduledReports/Controller.php
similarity index 84%
rename from plugins/PDFReports/Controller.php
rename to plugins/ScheduledReports/Controller.php
index 764d5fddb8..1e1180301f 100644
--- a/plugins/PDFReports/Controller.php
+++ b/plugins/ScheduledReports/Controller.php
@@ -6,30 +6,30 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  *
  * @category Piwik_Plugins
- * @package PDFReports
+ * @package ScheduledReports
  */
-namespace Piwik\Plugins\PDFReports;
+namespace Piwik\Plugins\ScheduledReports;
 
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Plugins\LanguagesManager\LanguagesManager;
-use Piwik\Plugins\PDFReports\API;
+use Piwik\Plugins\ScheduledReports\API;
 use Piwik\View;
-use Piwik\Plugins\PDFReports\PDFReports;
+use Piwik\Plugins\ScheduledReports\ScheduledReports;
 use Piwik\Plugins\SegmentEditor\API as APISegmentEditor;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 
 /**
  *
- * @package PDFReports
+ * @package ScheduledReports
  */
 class Controller extends \Piwik\Controller
 {
-    const DEFAULT_REPORT_TYPE = PDFReports::EMAIL_TYPE;
+    const DEFAULT_REPORT_TYPE = ScheduledReports::EMAIL_TYPE;
 
     public function index()
     {
-        $view = new View('@PDFReports/index');
+        $view = new View('@ScheduledReports/index');
         $this->setGeneralVariablesView($view);
 
         $view->countWebsites = count(APISitesManager::getInstance()->getSitesIdWithAtLeastViewAccess());
@@ -38,7 +38,7 @@ class Controller extends \Piwik\Controller
         $reportTypes = API::getReportTypes();
         $view->reportTypes = $reportTypes;
         $view->defaultReportType = self::DEFAULT_REPORT_TYPE;
-        $view->defaultReportFormat = PDFReports::DEFAULT_REPORT_FORMAT;
+        $view->defaultReportFormat = ScheduledReports::DEFAULT_REPORT_FORMAT;
 
         $reportsByCategoryByType = array();
         $reportFormatsByReportType = array();
@@ -74,9 +74,9 @@ class Controller extends \Piwik\Controller
 
         $view->downloadOutputType = API::OUTPUT_INLINE;
 
-        $view->periods = PDFReports::getPeriodToFrequency();
-        $view->defaultPeriod = PDFReports::DEFAULT_PERIOD;
-        $view->defaultHour = PDFReports::DEFAULT_HOUR;
+        $view->periods = ScheduledReports::getPeriodToFrequency();
+        $view->defaultPeriod = ScheduledReports::DEFAULT_PERIOD;
+        $view->defaultHour = ScheduledReports::DEFAULT_HOUR;
 
         $view->language = LanguagesManager::getLanguageCodeForCurrentUser();
 
diff --git a/plugins/PDFReports/PDFReports.php b/plugins/ScheduledReports/ScheduledReports.php
similarity index 94%
rename from plugins/PDFReports/PDFReports.php
rename to plugins/ScheduledReports/ScheduledReports.php
index 8768107b7b..748dcf48c8 100644
--- a/plugins/PDFReports/PDFReports.php
+++ b/plugins/ScheduledReports/ScheduledReports.php
@@ -6,9 +6,9 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  *
  * @category Piwik_Plugins
- * @package PDFReports
+ * @package ScheduledReports
  */
-namespace Piwik\Plugins\PDFReports;
+namespace Piwik\Plugins\ScheduledReports;
 
 use Exception;
 use Piwik\Common;
@@ -30,9 +30,9 @@ use Zend_Mime;
 
 /**
  *
- * @package PDFReports
+ * @package ScheduledReports
  */
-class PDFReports extends \Piwik\Plugin
+class ScheduledReports extends \Piwik\Plugin
 {
     const MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY = 'MobileMessaging_TopMenu';
     const PDF_REPORTS_TOP_MENU_TRANSLATION_KEY = 'ScheduledReports_EmailReports';
@@ -81,17 +81,17 @@ class PDFReports extends \Piwik\Plugin
             'Menu.Top.addItems'                           => 'addTopMenu',
             'TaskScheduler.getScheduledTasks'             => 'getScheduledTasks',
             'AssetManager.getJavaScriptFiles'             => 'getJsFiles',
-            'PDFReports.getReportParameters'              => 'getReportParameters',
-            'PDFReports.validateReportParameters'         => 'validateReportParameters',
-            'PDFReports.getReportMetadata'                => 'getReportMetadata',
-            'PDFReports.getReportTypes'                   => 'getReportTypes',
-            'PDFReports.getReportFormats'                 => 'getReportFormats',
-            'PDFReports.getRendererInstance'              => 'getRendererInstance',
-            'PDFReports.getReportRecipients'              => 'getReportRecipients',
-            'PDFReports.processReports'                   => 'processReports',
-            'PDFReports.allowMultipleReports'             => 'allowMultipleReports',
-            'PDFReports.sendReport'                       => 'sendReport',
-            'Template.reportParametersPDFReports'         => 'template_reportParametersPDFReports',
+            'ScheduledReports.getReportParameters'              => 'getReportParameters',
+            'ScheduledReports.validateReportParameters'         => 'validateReportParameters',
+            'ScheduledReports.getReportMetadata'                => 'getReportMetadata',
+            'ScheduledReports.getReportTypes'                   => 'getReportTypes',
+            'ScheduledReports.getReportFormats'                 => 'getReportFormats',
+            'ScheduledReports.getRendererInstance'              => 'getRendererInstance',
+            'ScheduledReports.getReportRecipients'              => 'getReportRecipients',
+            'ScheduledReports.processReports'                   => 'processReports',
+            'ScheduledReports.allowMultipleReports'             => 'allowMultipleReports',
+            'ScheduledReports.sendReport'                       => 'sendReport',
+            'Template.reportParametersScheduledReports'         => 'template_reportParametersScheduledReports',
             'UsersManager.deleteUser'                     => 'deleteUserReport',
             'SitesManager.deleteSite.end'                 => 'deleteSiteReport',
             APISegmentEditor::DEACTIVATE_SEGMENT_EVENT    => 'segmentDeactivation',
@@ -113,7 +113,7 @@ class PDFReports extends \Piwik\Plugin
 
     public function getJsFiles(&$jsFiles)
     {
-        $jsFiles[] = "plugins/PDFReports/javascripts/pdf.js";
+        $jsFiles[] = "plugins/ScheduledReports/javascripts/pdf.js";
     }
 
     public function validateReportParameters(&$parameters, $info)
@@ -403,9 +403,9 @@ class PDFReports extends \Piwik\Plugin
         }
     }
 
-    static public function template_reportParametersPDFReports(&$out)
+    static public function template_reportParametersScheduledReports(&$out)
     {
-        $view = new View('@PDFReports/reportParametersPDFReports');
+        $view = new View('@ScheduledReports/reportParametersScheduledReports');
         $view->currentUserEmail = Piwik::getCurrentUserEmail();
         $view->displayFormats = self::getDisplayFormats();
         $view->reportType = self::EMAIL_TYPE;
@@ -472,7 +472,7 @@ class PDFReports extends \Piwik\Plugin
     {
         Piwik_AddTopMenu(
             $this->getTopMenuTranslationKey(),
-            array('module' => 'PDFReports', 'action' => 'index', 'segment' => false),
+            array('module' => 'ScheduledReports', 'action' => 'index', 'segment' => false),
             true,
             13,
             $isHTML = false,
diff --git a/plugins/PDFReports/config/tcpdf_config.php b/plugins/ScheduledReports/config/tcpdf_config.php
similarity index 99%
rename from plugins/PDFReports/config/tcpdf_config.php
rename to plugins/ScheduledReports/config/tcpdf_config.php
index 4c59a69222..aaf8510a79 100644
--- a/plugins/PDFReports/config/tcpdf_config.php
+++ b/plugins/ScheduledReports/config/tcpdf_config.php
@@ -6,13 +6,13 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  *
  * @category Piwik_Plugins
- * @package PDFReports
+ * @package ScheduledReports
  */
 
 /**
  * Override settings in libs/tcpdf_config.php
  *
- * @package PDFReports
+ * @package ScheduledReports
  */
 
 define('K_PATH_MAIN', PIWIK_INCLUDE_PATH . '/libs/tcpdf/');
diff --git a/plugins/PDFReports/javascripts/pdf.js b/plugins/ScheduledReports/javascripts/pdf.js
similarity index 94%
rename from plugins/PDFReports/javascripts/pdf.js
rename to plugins/ScheduledReports/javascripts/pdf.js
index 67e02c73ae..9f254580bd 100644
--- a/plugins/PDFReports/javascripts/pdf.js
+++ b/plugins/ScheduledReports/javascripts/pdf.js
@@ -54,7 +54,7 @@ function getReportAjaxRequest(idReport, defaultApiMethod) {
     parameters.module = 'API';
     parameters.method = defaultApiMethod;
     if (idReport == 0) {
-        parameters.method = 'PDFReports.addReport';
+        parameters.method = 'ScheduledReports.addReport';
     }
     parameters.format = 'json';
     return parameters;
@@ -72,7 +72,7 @@ function initManagePdf() {
     // Click Add/Update Submit
     $('#addEditReport').submit(function () {
         var idReport = $('#report_idreport').val();
-        var apiParameters = getReportAjaxRequest(idReport, 'PDFReports.updateReport');
+        var apiParameters = getReportAjaxRequest(idReport, 'ScheduledReports.updateReport');
         apiParameters.idReport = idReport;
         apiParameters.description = $('#report_description').val();
         apiParameters.idSegment = $('#report_segment').find('option:selected').val();
@@ -102,7 +102,7 @@ function initManagePdf() {
     // Email now
     $('a[name=linkSendNow]').click(function () {
         var idReport = $(this).attr('idreport');
-        var parameters = getReportAjaxRequest(idReport, 'PDFReports.sendReport');
+        var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.sendReport');
         parameters.idReport = idReport;
 
         var ajaxHandler = new ajaxHelper();
@@ -123,7 +123,7 @@ function initManagePdf() {
         var idReport = $(this).attr('id');
 
         function onDelete() {
-            var parameters = getReportAjaxRequest(idReport, 'PDFReports.deleteReport');
+            var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.deleteReport');
             parameters.idReport = idReport;
 
             var ajaxHandler = new ajaxHelper();
diff --git a/plugins/PDFReports/templates/_addReport.twig b/plugins/ScheduledReports/templates/_addReport.twig
similarity index 99%
rename from plugins/PDFReports/templates/_addReport.twig
rename to plugins/ScheduledReports/templates/_addReport.twig
index 43888fdce3..25e3dbdc40 100644
--- a/plugins/PDFReports/templates/_addReport.twig
+++ b/plugins/ScheduledReports/templates/_addReport.twig
@@ -98,7 +98,7 @@
                 </td>
             </tr>
 
-            {{ postEvent("Template.reportParametersPDFReports") }}
+            {{ postEvent("Template.reportParametersScheduledReports") }}
 
             <tr>
                 <td class="first">{{ 'ScheduledReports_ReportsIncluded'|translate }}</td>
diff --git a/plugins/PDFReports/templates/_listReports.twig b/plugins/ScheduledReports/templates/_listReports.twig
similarity index 96%
rename from plugins/PDFReports/templates/_listReports.twig
rename to plugins/ScheduledReports/templates/_listReports.twig
index 35cebca1c9..3ca01e9c0a 100644
--- a/plugins/PDFReports/templates/_listReports.twig
+++ b/plugins/ScheduledReports/templates/_listReports.twig
@@ -70,7 +70,7 @@
             </td>
             <td>
                 {# download link #}
-                <a href="{{ linkTo({'module':'API', 'segment': null, 'token_auth':token_auth, 'method':'PDFReports.generateReport', 'idReport':report.idreport, 'outputType':downloadOutputType, 'language':language}) }}"
+                <a href="{{ linkTo({'module':'API', 'segment': null, 'token_auth':token_auth, 'method':'ScheduledReports.generateReport', 'idReport':report.idreport, 'outputType':downloadOutputType, 'language':language}) }}"
                    target="_blank" name="linkDownloadReport" id="{{ report.idreport }}" class="link_but">
                     <img src='{{ reportFormatsByReportType[report.type][report.format] }}' border="0"/>
                     {{ 'General_Download'|translate }}
diff --git a/plugins/PDFReports/templates/index.twig b/plugins/ScheduledReports/templates/index.twig
similarity index 93%
rename from plugins/PDFReports/templates/index.twig
rename to plugins/ScheduledReports/templates/index.twig
index 85190b7b7a..cecec0ec44 100644
--- a/plugins/PDFReports/templates/index.twig
+++ b/plugins/ScheduledReports/templates/index.twig
@@ -16,8 +16,8 @@
         {% import 'ajaxMacros.twig' as ajax %}
         {{ ajax.errorDiv() }}
         {{ ajax.loadingDiv() }}
-        {% include "@PDFReports/_listReports.twig" %}
-        {% include "@PDFReports/_addReport.twig" %}
+        {% include "@ScheduledReports/_listReports.twig" %}
+        {% include "@ScheduledReports/_addReport.twig" %}
         <a id='bottom'></a>
     </div>
 </div>
diff --git a/plugins/PDFReports/templates/reportParametersPDFReports.twig b/plugins/ScheduledReports/templates/reportParametersPDFReports.twig
similarity index 100%
rename from plugins/PDFReports/templates/reportParametersPDFReports.twig
rename to plugins/ScheduledReports/templates/reportParametersPDFReports.twig
diff --git a/tests/PHPUnit/BaseFixture.php b/tests/PHPUnit/BaseFixture.php
index 693cd4fcb4..69a23face1 100644
--- a/tests/PHPUnit/BaseFixture.php
+++ b/tests/PHPUnit/BaseFixture.php
@@ -10,8 +10,8 @@ use Piwik\Common;
 use Piwik\Config;
 use Piwik\Date;
 use Piwik\Plugins\MobileMessaging\MobileMessaging;
-use Piwik\Plugins\PDFReports\API as APIPDFReports;
-use Piwik\Plugins\PDFReports\PDFReports;
+use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
+use Piwik\Plugins\ScheduledReports\ScheduledReports;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 use Piwik\Plugins\UserCountry\LocationProvider;
 use Piwik\Plugins\UsersManager\API as APIUsersManager;
@@ -224,13 +224,13 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert
      */
     public 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: 'ScheduledReports.addReport'
         $pseudoMockAccess = new FakeAccess;
         FakeAccess::$superUser = true;
         Access::setSingletonInstance($pseudoMockAccess);
 
         // retrieve available reports
-        $availableReportMetadata = APIPDFReports::getReportMetadata($idSite, PDFReports::EMAIL_TYPE);
+        $availableReportMetadata = APIScheduledReports::getReportMetadata($idSite, ScheduledReports::EMAIL_TYPE);
 
         $availableReportIds = array();
         foreach ($availableReportMetadata as $reportMetadata) {
@@ -239,19 +239,19 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert
 
         //@review should we also test evolution graphs?
         // set-up mail report
-        APIPDFReports::getInstance()->addReport(
+        APIScheduledReports::getInstance()->addReport(
             $idSite,
             'Mail Test report',
             'day', // overridden in getApiForTestingScheduledReports()
             0,
-            PDFReports::EMAIL_TYPE,
+            ScheduledReports::EMAIL_TYPE,
             ReportRenderer::HTML_FORMAT, // overridden in getApiForTestingScheduledReports()
             $availableReportIds,
-            array(PDFReports::DISPLAY_FORMAT_PARAMETER => PDFReports::DISPLAY_FORMAT_TABLES_ONLY)
+            array(ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_ONLY)
         );
 
         // set-up sms report for one website
-        APIPDFReports::getInstance()->addReport(
+        APIScheduledReports::getInstance()->addReport(
             $idSite,
             'SMS Test report, one website',
             'day', // overridden in getApiForTestingScheduledReports()
@@ -263,7 +263,7 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert
         );
 
         // set-up sms report for all websites
-        APIPDFReports::getInstance()->addReport(
+        APIScheduledReports::getInstance()->addReport(
             $idSite,
             'SMS Test report, all websites',
             'day', // overridden in getApiForTestingScheduledReports()
@@ -276,29 +276,29 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert
 
         if (self::canImagesBeIncludedInScheduledReports()) {
             // set-up mail report with images
-            APIPDFReports::getInstance()->addReport(
+            APIScheduledReports::getInstance()->addReport(
                 $idSite,
                 'Mail Test report',
                 'day', // overridden in getApiForTestingScheduledReports()
                 0,
-                PDFReports::EMAIL_TYPE,
+                ScheduledReports::EMAIL_TYPE,
                 ReportRenderer::HTML_FORMAT, // overridden in getApiForTestingScheduledReports()
                 $availableReportIds,
-                array(PDFReports::DISPLAY_FORMAT_PARAMETER => PDFReports::DISPLAY_FORMAT_TABLES_AND_GRAPHS)
+                array(ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_TABLES_AND_GRAPHS)
             );
 
             // set-up mail report with one row evolution based png graph
-            APIPDFReports::getInstance()->addReport(
+            APIScheduledReports::getInstance()->addReport(
                 $idSite,
                 'Mail Test report',
                 'day',
                 0,
-                PDFReports::EMAIL_TYPE,
+                ScheduledReports::EMAIL_TYPE,
                 ReportRenderer::HTML_FORMAT,
                 array('Actions_getPageTitles'),
                 array(
-                     PDFReports::DISPLAY_FORMAT_PARAMETER => PDFReports::DISPLAY_FORMAT_GRAPHS_ONLY,
-                     PDFReports::EVOLUTION_GRAPH_PARAMETER => 'true',
+                     ScheduledReports::DISPLAY_FORMAT_PARAMETER => ScheduledReports::DISPLAY_FORMAT_GRAPHS_ONLY,
+                     ScheduledReports::EVOLUTION_GRAPH_PARAMETER => 'true',
                 )
             );
         }
diff --git a/tests/PHPUnit/Core/ScheduledTaskTest.php b/tests/PHPUnit/Core/ScheduledTaskTest.php
index 48602d9d96..cb26d68fa0 100644
--- a/tests/PHPUnit/Core/ScheduledTaskTest.php
+++ b/tests/PHPUnit/Core/ScheduledTaskTest.php
@@ -5,10 +5,10 @@
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
-use Piwik\Plugins\PDFReports\PDFReports;
+use Piwik\Plugins\ScheduledReports\ScheduledReports;
 use Piwik\ScheduledTask;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/PDFReports/PDFReports.php';
+require_once PIWIK_INCLUDE_PATH . '/plugins/ScheduledReports/ScheduledReports.php';
 
 class ScheduledTaskTest extends PHPUnit_Framework_TestCase
 {
@@ -18,8 +18,8 @@ class ScheduledTaskTest extends PHPUnit_Framework_TestCase
      */
     public function testGetClassName()
     {
-        $scheduledTask = new ScheduledTask (new PDFReports(), null, null, null);
-        $this->assertEquals('PDFReports', $scheduledTask->getClassName());
+        $scheduledTask = new ScheduledTask (new ScheduledReports(), null, null, null);
+        $this->assertEquals('ScheduledReports', $scheduledTask->getClassName());
     }
 
     /**
@@ -30,8 +30,8 @@ class ScheduledTaskTest extends PHPUnit_Framework_TestCase
         return array(
             array('CoreAdminHome.purgeOutdatedArchives', 'CoreAdminHome', 'purgeOutdatedArchives', null),
             array('CoreAdminHome.purgeOutdatedArchives_previous30', 'CoreAdminHome', 'purgeOutdatedArchives', 'previous30'),
-            array('PDFReports.weeklySchedule', 'PDFReports', 'weeklySchedule', null),
-            array('PDFReports.weeklySchedule_1', 'PDFReports', 'weeklySchedule', 1),
+            array('ScheduledReports.weeklySchedule', 'ScheduledReports', 'weeklySchedule', null),
+            array('ScheduledReports.weeklySchedule_1', 'ScheduledReports', 'weeklySchedule', 1),
         );
     }
 
diff --git a/tests/PHPUnit/Core/TaskSchedulerTest.php b/tests/PHPUnit/Core/TaskSchedulerTest.php
index 1e16e0c8a0..1ae9ad1eb8 100644
--- a/tests/PHPUnit/Core/TaskSchedulerTest.php
+++ b/tests/PHPUnit/Core/TaskSchedulerTest.php
@@ -69,7 +69,7 @@ class TaskSchedulerTest extends PHPUnit_Framework_TestCase
         return array(
             array(true, 'CoreAdminHome.purgeOutdatedArchives', $timetable),
             array(true, 'PrivacyManager.deleteReportData_1', $timetable),
-            array(false, 'PDFReports.weeklySchedule"', $timetable)
+            array(false, 'ScheduledReports.weeklySchedule"', $timetable)
         );
     }
 
@@ -98,7 +98,7 @@ class TaskSchedulerTest extends PHPUnit_Framework_TestCase
         return array(
             array(1355529607, 'CoreAdminHome', 'purgeOutdatedArchives', null, $timetable),
             array(1322229607, 'PrivacyManager', 'deleteReportData', 1, $timetable),
-            array(false, 'PDFReports', 'weeklySchedule', null, $timetable)
+            array(false, 'ScheduledReports', 'weeklySchedule', null, $timetable)
         );
     }
 
@@ -132,7 +132,7 @@ class TaskSchedulerTest extends PHPUnit_Framework_TestCase
         return array(
             array(false, 'CoreAdminHome.purgeOutdatedArchives', $timetable),
             array(true, 'PrivacyManager.deleteReportData_1', $timetable),
-            array(false, 'PDFReports.weeklySchedule"', $timetable)
+            array(false, 'ScheduledReports.weeklySchedule"', $timetable)
         );
     }
 
diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php
index 584479dc85..1f5a2507fb 100644
--- a/tests/PHPUnit/DatabaseTestCase.php
+++ b/tests/PHPUnit/DatabaseTestCase.php
@@ -11,7 +11,7 @@ use Piwik\DataTable\Manager;
 use Piwik\DbHelper;
 use Piwik\Db;
 use Piwik\Option;
-use Piwik\Plugins\PDFReports\API;
+use Piwik\Plugins\ScheduledReports\API;
 use Piwik\Site;
 use Piwik\Tracker\Cache;
 
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index c16307a3bc..ec83807e43 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -239,7 +239,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         Cache::deleteTrackerCache();
         Config::getInstance()->clear();
         ArchiveTableCreator::clear();
-        \Piwik\Plugins\PDFReports\API::$cache = array();
+        \Piwik\Plugins\ScheduledReports\API::$cache = array();
         \Piwik\Registry::unsetInstance();
 
         $_GET = $_REQUEST = array();
@@ -268,7 +268,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         'Live',
         'SEO',
         'ExampleAPI',
-        'PDFReports',
+        'ScheduledReports',
         'MobileMessaging',
         'Transitions',
         'API',
@@ -352,7 +352,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         array_push(
             $apiCalls,
             array(
-                 'PDFReports.generateReport',
+                 'ScheduledReports.generateReport',
                  array(
                      'testSuffix'             => '_scheduled_report_in_html_tables_only',
                      'date'                   => $dateTime,
@@ -362,7 +362,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                      'otherRequestParameters' => array(
                          'idReport'     => 1,
                          'reportFormat' => ReportRenderer::HTML_FORMAT,
-                         'outputType'   => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                         'outputType'   => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                      )
                  )
             )
@@ -371,11 +371,11 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         // We run this particular test on one PHP version only (which should run on Travis CI + Most devs)
         if (stristr(phpversion(), '5.4') !== false) {
             // PDF Scheduled Report
-            // tests/PHPUnit/Integration/processed/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__PDFReports.generateReport_week.original.pdf
+            // tests/PHPUnit/Integration/processed/test_ecommerceOrderWithItems_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_week.original.pdf
             array_push(
                 $apiCalls,
                 array(
-                     'PDFReports.generateReport',
+                     'ScheduledReports.generateReport',
                      array(
                          'testSuffix'             => '_scheduled_report_in_pdf_tables_only',
                          'date'                   => $dateTime,
@@ -385,7 +385,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                          'otherRequestParameters' => array(
                              'idReport'     => 1,
                              'reportFormat' => ReportRenderer::PDF_FORMAT,
-                             'outputType'   => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                             'outputType'   => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                          )
                      )
                 )
@@ -396,7 +396,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         array_push(
             $apiCalls,
             array(
-                 'PDFReports.generateReport',
+                 'ScheduledReports.generateReport',
                  array(
                      'testSuffix'             => '_scheduled_report_via_sms_one_site',
                      'date'                   => $dateTime,
@@ -405,7 +405,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                      'fileExtension'          => 'sms.txt',
                      'otherRequestParameters' => array(
                          'idReport'   => 2,
-                         'outputType' => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                         'outputType' => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                      )
                  )
             )
@@ -415,7 +415,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         array_push(
             $apiCalls,
             array(
-                 'PDFReports.generateReport',
+                 'ScheduledReports.generateReport',
                  array(
                      'testSuffix'             => '_scheduled_report_via_sms_all_sites',
                      'date'                   => $dateTime,
@@ -424,7 +424,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                      'fileExtension'          => 'sms.txt',
                      'otherRequestParameters' => array(
                          'idReport'   => 3,
-                         'outputType' => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                         'outputType' => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                      )
                  )
             )
@@ -435,7 +435,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
             array_push(
                 $apiCalls,
                 array(
-                     'PDFReports.generateReport',
+                     'ScheduledReports.generateReport',
                      array(
                          'testSuffix'             => '_scheduled_report_in_html_tables_and_graph',
                          'date'                   => $dateTime,
@@ -445,7 +445,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                          'otherRequestParameters' => array(
                              'idReport'     => 4,
                              'reportFormat' => ReportRenderer::HTML_FORMAT,
-                             'outputType'   => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                             'outputType'   => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                          )
                      )
                 )
@@ -455,7 +455,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
             array_push(
                 $apiCalls,
                 array(
-                     'PDFReports.generateReport',
+                     'ScheduledReports.generateReport',
                      array(
                          'testSuffix'             => '_scheduled_report_in_html_row_evolution_graph',
                          'date'                   => $dateTime,
@@ -464,7 +464,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
                          'fileExtension'          => 'html',
                          'otherRequestParameters' => array(
                              'idReport'     => 5,
-                             'outputType'   => \Piwik\Plugins\PDFReports\API::OUTPUT_RETURN
+                             'outputType'   => \Piwik\Plugins\ScheduledReports\API::OUTPUT_RETURN
                          )
                      )
                 )
diff --git a/tests/PHPUnit/Plugins/MobileMessagingTest.php b/tests/PHPUnit/Plugins/MobileMessagingTest.php
index a494935db1..02e483c474 100644
--- a/tests/PHPUnit/Plugins/MobileMessagingTest.php
+++ b/tests/PHPUnit/Plugins/MobileMessagingTest.php
@@ -10,7 +10,7 @@ use Piwik\Access;
 use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging;
 use Piwik\Plugins\MobileMessaging\MobileMessaging;
 use Piwik\Plugins\MobileMessaging\SMSProvider;
-use Piwik\Plugins\PDFReports\API as APIPDFReports;
+use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 
 class MobileMessagingTest extends DatabaseTestCase
@@ -29,7 +29,7 @@ class MobileMessagingTest extends DatabaseTestCase
 
         $this->idSiteAccess = APISitesManager::getInstance()->addSite("test", "http://test");
 
-        \Piwik\PluginsManager::getInstance()->loadPlugins(array('PDFReports', 'MobileMessaging', 'MultiSites'));
+        \Piwik\PluginsManager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging', 'MultiSites'));
         \Piwik\PluginsManager::getInstance()->installLoadedPlugins();
     }
 
@@ -43,10 +43,10 @@ class MobileMessagingTest extends DatabaseTestCase
     public function testWarnUserViaSMSMultiSitesDeactivated()
     {
         // safety net
-        \Piwik\PluginsManager::getInstance()->loadPlugins(array('PDFReports', 'MobileMessaging'));
+        \Piwik\PluginsManager::getInstance()->loadPlugins(array('ScheduledReports', 'MobileMessaging'));
         $this->assertFalse(\Piwik\PluginsManager::getInstance()->isPluginActivated('MultiSites'));
 
-        $PdfReportsAPIInstance = APIPDFReports::getInstance();
+        $PdfReportsAPIInstance = APIScheduledReports::getInstance();
         $reportId = $PdfReportsAPIInstance->addReport(
             $this->idSiteAccess,
             'description',
@@ -238,10 +238,10 @@ class MobileMessagingTest extends DatabaseTestCase
     public function testSendReport($expectedReportContent, $expectedPhoneNumber, $expectedFrom, $reportContent, $phoneNumber, $reportSubject)
     {
         $notificationInfo = array(
-             APIPDFReports::REPORT_CONTENT_KEY   => $reportContent,
-             APIPDFReports::REPORT_SUBJECT_KEY     => $reportSubject,
-             APIPDFReports::REPORT_TYPE_INFO_KEY => MobileMessaging::MOBILE_TYPE,
-             APIPDFReports::REPORT_KEY           => array(
+             APIScheduledReports::REPORT_CONTENT_KEY   => $reportContent,
+             APIScheduledReports::REPORT_SUBJECT_KEY     => $reportSubject,
+             APIScheduledReports::REPORT_TYPE_INFO_KEY => MobileMessaging::MOBILE_TYPE,
+             APIScheduledReports::REPORT_KEY           => array(
                  'parameters' => array(MobileMessaging::PHONE_NUMBERS_PARAMETER => array($phoneNumber)),
              ),
         );
diff --git a/tests/PHPUnit/Plugins/PDFReportsTest.php b/tests/PHPUnit/Plugins/PDFReportsTest.php
index b921f807f7..5e18238190 100644
--- a/tests/PHPUnit/Plugins/PDFReportsTest.php
+++ b/tests/PHPUnit/Plugins/PDFReportsTest.php
@@ -8,8 +8,8 @@
 use Piwik\Access;
 use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging;
 use Piwik\Plugins\MobileMessaging\MobileMessaging;
-use Piwik\Plugins\PDFReports\API as APIPDFReports;
-use Piwik\Plugins\PDFReports\PDFReports;
+use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
+use Piwik\Plugins\ScheduledReports\ScheduledReports;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 use Piwik\ScheduledTime;
 use Piwik\ScheduledTask;
@@ -17,9 +17,9 @@ use Piwik\ScheduledTime\Daily;
 use Piwik\ScheduledTime\Monthly;
 use Piwik\Site;
 
-require_once 'PDFReports/PDFReports.php';
+require_once 'ScheduledReports/ScheduledReports.php';
 
-class PDFReportsTest extends DatabaseTestCase
+class ScheduledReportsTest extends DatabaseTestCase
 {
     private $idSite = 1;
 
@@ -29,19 +29,19 @@ class PDFReportsTest extends DatabaseTestCase
 
         // setup the access layer
         self::setSuperUser();
-        \Piwik\PluginsManager::getInstance()->loadPlugins(array('API', 'UserCountry', 'PDFReports', 'MobileMessaging'));
+        \Piwik\PluginsManager::getInstance()->loadPlugins(array('API', 'UserCountry', 'ScheduledReports', 'MobileMessaging'));
         \Piwik\PluginsManager::getInstance()->installLoadedPlugins();
 
         APISitesManager::getInstance()->addSite("Test", array("http://piwik.net"));
 
         APISitesManager::getInstance()->addSite("Test", array("http://piwik.net"));
         FakeAccess::setIdSitesView(array($this->idSite, 2));
-        APIPDFReports::$cache = array();
+        APIScheduledReports::$cache = array();
     }
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testAddReportGetReports()
     {
@@ -68,41 +68,41 @@ class PDFReportsTest extends DatabaseTestCase
         self::addReport($dataWebsiteTwo);
 
         // Testing getReports without parameters
-        $tmp = APIPDFReports::getInstance()->getReports();
+        $tmp = APIScheduledReports::getInstance()->getReports();
         $report = reset($tmp);
         $this->assertReportsEqual($report, $dataWebsiteTwo);
 
         $idReport = self::addReport($data);
 
         // Passing 3 parameters
-        $tmp = APIPDFReports::getInstance()->getReports($this->idSite, $data['period'], $idReport);
+        $tmp = APIScheduledReports::getInstance()->getReports($this->idSite, $data['period'], $idReport);
         $report = reset($tmp);
         $this->assertReportsEqual($report, $data);
 
         // Passing only idsite
-        $tmp = APIPDFReports::getInstance()->getReports($this->idSite);
+        $tmp = APIScheduledReports::getInstance()->getReports($this->idSite);
         $report = reset($tmp);
         $this->assertReportsEqual($report, $data);
 
         // Passing only period
-        $tmp = APIPDFReports::getInstance()->getReports($idSite = false, $data['period']);
+        $tmp = APIScheduledReports::getInstance()->getReports($idSite = false, $data['period']);
         $report = reset($tmp);
         $this->assertReportsEqual($report, $data);
 
         // Passing only idreport
-        $tmp = APIPDFReports::getInstance()->getReports($idSite = false, $period = false, $idReport);
+        $tmp = APIScheduledReports::getInstance()->getReports($idSite = false, $period = false, $idReport);
         $report = reset($tmp);
         $this->assertReportsEqual($report, $data);
     }
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetReportsIdReportNotFound()
     {
         try {
-            APIPDFReports::getInstance()->getReports($idSite = false, $period = false, $idReport = 1);
+            APIScheduledReports::getInstance()->getReports($idSite = false, $period = false, $idReport = 1);
         } catch (Exception $e) {
             return;
         }
@@ -111,12 +111,12 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetReportsInvalidPermission()
     {
         try {
-            APIPDFReports::getInstance()->getReports(
+            APIScheduledReports::getInstance()->getReports(
                 $idSite = 44,
                 $period = false,
                 self::addReport(self::getDailyPDFReportData($this->idSite))
@@ -130,7 +130,7 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testAddReportInvalidWebsite()
     {
@@ -144,7 +144,7 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testAddReportInvalidPeriod()
     {
@@ -160,7 +160,7 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testUpdateReport()
     {
@@ -169,7 +169,7 @@ class PDFReportsTest extends DatabaseTestCase
 
         self::updateReport($idReport, $dataAfter);
 
-        $reports = APIPDFReports::getInstance()->getReports($idSite = false, $period = false, $idReport);
+        $reports = APIScheduledReports::getInstance()->getReports($idSite = false, $period = false, $idReport);
 
         $this->assertReportsEqual(
             reset($reports),
@@ -179,42 +179,42 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testDeleteReport()
     {
         // Deletes non existing report throws exception
         try {
-            APIPDFReports::getInstance()->deleteReport($idReport = 1);
+            APIScheduledReports::getInstance()->deleteReport($idReport = 1);
             $this->fail('Exception not raised');
         } catch (Exception $e) {
         }
 
         $idReport = self::addReport(self::getMonthlyEmailReportData($this->idSite));
-        $this->assertEquals(1, count(APIPDFReports::getInstance()->getReports()));
-        APIPDFReports::getInstance()->deleteReport($idReport);
-        $this->assertEquals(0, count(APIPDFReports::getInstance()->getReports()));
+        $this->assertEquals(1, count(APIScheduledReports::getInstance()->getReports()));
+        APIScheduledReports::getInstance()->deleteReport($idReport);
+        $this->assertEquals(0, count(APIScheduledReports::getInstance()->getReports()));
     }
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyMobileMessagingInactive()
     {
         // unload MobileMessaging plugin
-        \Piwik\PluginsManager::getInstance()->loadPlugins(array('PDFReports'));
+        \Piwik\PluginsManager::getInstance()->loadPlugins(array('ScheduledReports'));
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyUserIsAnonymous()
     {
@@ -222,9 +222,9 @@ class PDFReportsTest extends DatabaseTestCase
         FakeAccess::$identity = 'anonymous';
         Access::setSingletonInstance($anonymousAccess);
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
@@ -234,7 +234,7 @@ class PDFReportsTest extends DatabaseTestCase
      * even though there is no sms reports configured
      *
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyNoReportMobileAccountOK()
     {
@@ -242,9 +242,9 @@ class PDFReportsTest extends DatabaseTestCase
         self::setSuperUser();
         APIMobileMessaging::getInstance()->setSMSAPICredential('StubbedProvider', '');
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
@@ -254,13 +254,13 @@ class PDFReportsTest extends DatabaseTestCase
      * and no reports at all have been configured
      *
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyNoReportMobileAccountKO()
     {
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
@@ -270,11 +270,11 @@ class PDFReportsTest extends DatabaseTestCase
      * whatever the status of the mobile provider account
      *
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyOneSMSReportMobileAccountKO()
     {
-        APIPDFReports::getInstance()->addReport(
+        APIScheduledReports::getInstance()->addReport(
             1,
             '',
             ScheduledTime::PERIOD_DAY,
@@ -287,9 +287,9 @@ class PDFReportsTest extends DatabaseTestCase
             )
         );
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
@@ -299,7 +299,7 @@ class PDFReportsTest extends DatabaseTestCase
      * whatever the status of the mobile provider account
      *
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetTopMenuTranslationKeyNoSMSReportAccountOK()
     {
@@ -309,16 +309,16 @@ class PDFReportsTest extends DatabaseTestCase
 
         self::addReport(self::getMonthlyEmailReportData($this->idSite));
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $this->assertEquals(
-            PDFReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
+            ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY,
             $pdfReportPlugin->getTopMenuTranslationKey()
         );
     }
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      */
     public function testGetScheduledTasks()
     {
@@ -356,14 +356,14 @@ class PDFReportsTest extends DatabaseTestCase
         $report6['period'] = ScheduledTime::PERIOD_NEVER;
         $report6['deleted'] = 0;
 
-        $stubbedAPIPDFReports = $this->getMock('\\Piwik\\Plugins\\PDFReports\\API');
-        $stubbedAPIPDFReports->expects($this->any())->method('getReports')->will($this->returnValue(
+        $stubbedAPIScheduledReports = $this->getMock('\\Piwik\\Plugins\\ScheduledReports\\API');
+        $stubbedAPIScheduledReports->expects($this->any())->method('getReports')->will($this->returnValue(
                 array($report1, $report2, $report3, $report4, $report5, $report6))
         );
 
-        $stubbedAPIPDFReportsClass = new ReflectionProperty('\\Piwik\\Plugins\\PDFReports\\API', 'instance');
-        $stubbedAPIPDFReportsClass->setAccessible(true);
-        $stubbedAPIPDFReportsClass->setValue($stubbedAPIPDFReports);
+        $stubbedAPIScheduledReportsClass = new ReflectionProperty('\\Piwik\\Plugins\\ScheduledReports\\API', 'instance');
+        $stubbedAPIScheduledReportsClass->setAccessible(true);
+        $stubbedAPIScheduledReportsClass->setValue($stubbedAPIScheduledReports);
 
         // initialize sites 1 and 2
         Site::$infoSites = array(
@@ -385,19 +385,19 @@ class PDFReportsTest extends DatabaseTestCase
         $scheduleTask4->setHour(15); // site is UTC-6.5, configured to be sent at 8h
 
         $expectedTasks = array(
-            new ScheduledTask (APIPDFReports::getInstance(), 'sendReport', 1, $scheduleTask1),
-            new ScheduledTask (APIPDFReports::getInstance(), 'sendReport', 2, $scheduleTask2),
-            new ScheduledTask (APIPDFReports::getInstance(), 'sendReport', 4, $scheduleTask3),
-            new ScheduledTask (APIPDFReports::getInstance(), 'sendReport', 5, $scheduleTask4),
+            new ScheduledTask (APIScheduledReports::getInstance(), 'sendReport', 1, $scheduleTask1),
+            new ScheduledTask (APIScheduledReports::getInstance(), 'sendReport', 2, $scheduleTask2),
+            new ScheduledTask (APIScheduledReports::getInstance(), 'sendReport', 4, $scheduleTask3),
+            new ScheduledTask (APIScheduledReports::getInstance(), 'sendReport', 5, $scheduleTask4),
         );
 
-        $pdfReportPlugin = new PDFReports();
+        $pdfReportPlugin = new ScheduledReports();
         $tasks = array();
         $pdfReportPlugin->getScheduledTasks($tasks);
         $this->assertEquals($expectedTasks, $tasks);
 
         // restore API
-        $stubbedAPIPDFReportsClass->setValue(null);
+        $stubbedAPIScheduledReportsClass->setValue(null);
     }
 
     /**
@@ -414,17 +414,17 @@ class PDFReportsTest extends DatabaseTestCase
 
     /**
      * @group Plugins
-     * @group PDFReports
+     * @group ScheduledReports
      * @dataProvider getGetReportSubjectAndReportTitleTestCases
      */
     public function testGetReportSubjectAndReportTitle($expectedReportSubject, $expectedReportTitle, $websiteName, $reports)
     {
         $getReportSubjectAndReportTitle = new ReflectionMethod(
-            '\\Piwik\\Plugins\\PDFReports\\API', 'getReportSubjectAndReportTitle'
+            '\\Piwik\\Plugins\\ScheduledReports\\API', 'getReportSubjectAndReportTitle'
         );
         $getReportSubjectAndReportTitle->setAccessible(true);
 
-        list($reportSubject, $reportTitle) = $getReportSubjectAndReportTitle->invoke(new APIPDFReports(), $websiteName, $reports);
+        list($reportSubject, $reportTitle) = $getReportSubjectAndReportTitle->invoke(new APIScheduledReports(), $websiteName, $reports);
         $this->assertEquals($expectedReportSubject, $reportSubject);
         $this->assertEquals($expectedReportTitle, $reportTitle);
     }
@@ -439,7 +439,7 @@ class PDFReportsTest extends DatabaseTestCase
 
     private static function addReport($data)
     {
-        $idReport = APIPDFReports::getInstance()->addReport(
+        $idReport = APIScheduledReports::getInstance()->addReport(
             $data['idsite'],
             $data['description'],
             $data['period'],
@@ -492,7 +492,7 @@ class PDFReportsTest extends DatabaseTestCase
 
     private static function updateReport($idReport, $data)
     {
-        $idReport = APIPDFReports::getInstance()->updateReport(
+        $idReport = APIScheduledReports::getInstance()->updateReport(
             $idReport,
             $data['idsite'],
             $data['description'],
diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php
index b43ed25639..7813bab8ac 100644
--- a/tests/PHPUnit/TestingEnvironment.php
+++ b/tests/PHPUnit/TestingEnvironment.php
@@ -51,7 +51,7 @@ class Piwik_TestingEnvironment
                 "LanguagesManager", "Actions", "Dashboard", "MultiSites", "Referrers", "UserSettings", "Goals",
                 "SEO", "UserCountry", "VisitsSummary", "VisitFrequency", "VisitTime", "VisitorInterest",
                 "ExampleAPI", "ExamplePlugin", "ExampleRssWidget", "Provider", "Feedback", "Login", "UsersManager",
-                "SitesManager", "Installation", "CoreUpdater", "PDFReports", "UserCountryMap", "Live",
+                "SitesManager", "Installation", "CoreUpdater", "ScheduledReports", "UserCountryMap", "Live",
                 "CustomVariables", "PrivacyManager", "ImageGraph", "DoNotTrack", "Annotations", "MobileMessaging",
                 "Overlay", "SegmentEditor", "DevicesDetection", "DBStats",
             );
-- 
GitLab