/** * @dataProvider getUnitColumns * @group Core */ public function testGetUnit($column, $expected) { Site::setSites(array(1 => array('name' => 'TestSite', 'currency' => 'EUR'))); FakeAccess::$superUser = true; $actual = Metrics::getUnit($column, 1); $this->assertEquals($expected, $actual); }
/** * @dataProvider getUnitColumns * @group Core */ public function testGetUnit($column, $expected) { \Piwik\Site::setSites(array(1 => array('name' => 'TestSite', 'currency' => 'EUR'))); $pseudoMockAccess = new FakeAccess(); FakeAccess::$superUser = true; Access::setSingletonInstance($pseudoMockAccess); $actual = Metrics::getUnit($column, 1); $this->assertEquals($expected, $actual); }
/** * @group Plugins */ public function testGetScheduledTasks() { // stub API to control getReports() return values $report1 = self::getDailyPDFReportData($this->idSite); $report1['idreport'] = 1; $report1['hour'] = 0; $report1['deleted'] = 0; $report2 = self::getMonthlyEmailReportData($this->idSite); $report2['idreport'] = 2; $report2['idsite'] = 2; $report2['hour'] = 0; $report2['deleted'] = 0; $report3 = self::getMonthlyEmailReportData($this->idSite); $report3['idreport'] = 3; $report3['deleted'] = 1; // should not be scheduled $report4 = self::getMonthlyEmailReportData($this->idSite); $report4['idreport'] = 4; $report4['idsite'] = 1; $report4['hour'] = 8; $report4['deleted'] = 0; $report5 = self::getMonthlyEmailReportData($this->idSite); $report5['idreport'] = 5; $report5['idsite'] = 2; $report5['hour'] = 8; $report5['deleted'] = 0; // test no exception is raised when a scheduled report is set to never send $report6 = self::getMonthlyEmailReportData($this->idSite); $report6['idreport'] = 6; $report6['period'] = Schedule::PERIOD_NEVER; $report6['deleted'] = 0; $stubbedAPIScheduledReports = $this->getMock('\\Piwik\\Plugins\\ScheduledReports\\API', array('getReports', 'getInstance'), $arguments = array(), $mockClassName = '', $callOriginalConstructor = false); $stubbedAPIScheduledReports->expects($this->any())->method('getReports')->will($this->returnValue(array($report1, $report2, $report3, $report4, $report5, $report6))); \Piwik\Plugins\ScheduledReports\API::setSingletonInstance($stubbedAPIScheduledReports); // initialize sites 1 and 2 Site::setSites(array(1 => array('timezone' => 'Europe/Paris'), 2 => array('timezone' => 'UTC-6.5'))); // expected tasks $scheduleTask1 = Schedule::factory('daily'); $scheduleTask1->setHour(0); // paris is UTC-1, period ends at 23h UTC $scheduleTask1->setTimezone('Europe/Paris'); $scheduleTask2 = new Monthly(); $scheduleTask2->setHour(0); // site is UTC-6.5, period ends at 6h30 UTC, smallest resolution is hour $scheduleTask2->setTimezone('UTC-6.5'); $scheduleTask3 = new Monthly(); $scheduleTask3->setHour(8); // paris is UTC-1, configured to be sent at 8h $scheduleTask3->setTimezone('Europe/Paris'); $scheduleTask4 = new Monthly(); $scheduleTask4->setHour(8); // site is UTC-6.5, configured to be sent at 8h $scheduleTask4->setTimezone('UTC-6.5'); $expectedTasks = array(new Task(APIScheduledReports::getInstance(), 'sendReport', 1, $scheduleTask1), new Task(APIScheduledReports::getInstance(), 'sendReport', 2, $scheduleTask2), new Task(APIScheduledReports::getInstance(), 'sendReport', 4, $scheduleTask3), new Task(APIScheduledReports::getInstance(), 'sendReport', 5, $scheduleTask4)); $pdfReportPlugin = new Tasks(); $pdfReportPlugin->schedule(); $tasks = $pdfReportPlugin->getScheduledTasks(); $this->assertEquals($expectedTasks, $tasks); \Piwik\Plugins\ScheduledReports\API::unsetInstance(); }