قرینه از
https://github.com/matomo-org/matomo.git
synced 2025-08-25 08:27:37 +00:00

* [Coding Style] Enable rule PSR1.Methods.CamelCapsMethodName.NotCamelCaps * [Coding Style] Use camel case for method names in API plugin tests (#22145) * [Coding Style] Use camel case for method names in Core* plugin tests (#22147) * [Coding Style] Use camel case for method names in core Unit tests (#22149) * [Coding Style] Use camel case for method names in Actions and BulkTracking plugin tests (#22146) * [Coding Style] Use camel case for method names in CustomDimensions and CustomJSTracker plugin tests (#22148) * [Coding Style] Use camel case for method names in core Integration tests (#22151) * [Coding Style] Use camel case for method names in more core plugin tests (#22153) * [Coding Style] Use camel case for method names in more core plugin tests (#22157) * [Coding Style] Use camel case for method names in more core plugin tests * Update plugins/Monolog/tests/Unit/Processor/ExceptionToTextProcessorTest.php Co-authored-by: Michal Kleiner <michal@innocraft.com> --------- Co-authored-by: Michal Kleiner <michal@innocraft.com> * [Coding Style] Use camel case for method names in more core plugin tests (#22159) * [Coding Style] Use camel case for method names in remaining tests (#22160) * [Coding Style] Use camel case for method names in remaining tests * rename expected test files --------- Co-authored-by: Michal Kleiner <michal@innocraft.com>
188 خطوط
5.9 KiB
PHP
188 خطوط
5.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Matomo - free/libre analytics platform
|
|
*
|
|
* @link https://matomo.org
|
|
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*/
|
|
|
|
namespace Piwik\Tests\Unit\Scheduler\Schedule;
|
|
|
|
use Exception;
|
|
use Piwik\Scheduler\Schedule\Weekly;
|
|
|
|
/**
|
|
* @group Scheduler
|
|
*/
|
|
class WeeklyTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
private static $JANUARY_01_1971_09_10_00;
|
|
private static $JANUARY_04_1971_00_00_00;
|
|
private static $JANUARY_04_1971_09_00_00;
|
|
private static $JANUARY_05_1971_09_00_00;
|
|
private static $JANUARY_11_1971_00_00_00;
|
|
private static $JANUARY_15_1971_00_00_00;
|
|
private static $JANUARY_08_1971_00_00_00;
|
|
|
|
public static function setUpBeforeClass(): void
|
|
{
|
|
parent::setUpBeforeClass();
|
|
self::$JANUARY_01_1971_09_10_00 = mktime(9, 10, 00, 1, 1, 1971);
|
|
self::$JANUARY_04_1971_00_00_00 = mktime(0, 00, 00, 1, 4, 1971);
|
|
self::$JANUARY_04_1971_09_00_00 = mktime(9, 00, 00, 1, 4, 1971);
|
|
self::$JANUARY_05_1971_09_00_00 = mktime(9, 00, 00, 1, 5, 1971);
|
|
self::$JANUARY_11_1971_00_00_00 = mktime(0, 00, 00, 1, 11, 1971);
|
|
self::$JANUARY_15_1971_00_00_00 = mktime(0, 00, 00, 1, 15, 1971);
|
|
self::$JANUARY_08_1971_00_00_00 = mktime(0, 00, 00, 1, 8, 1971);
|
|
}
|
|
|
|
/**
|
|
* Tests invalid call to setHour on Weekly
|
|
*/
|
|
public function testSetHourScheduledTimeWeeklyNegative()
|
|
{
|
|
$this->expectException(Exception::class);
|
|
|
|
$weeklySchedule = new Weekly();
|
|
$weeklySchedule->setHour(-1);
|
|
}
|
|
|
|
/**
|
|
* Tests invalid call to setHour on Weekly
|
|
*/
|
|
public function testSetHourScheduledTimeWeeklyOver24()
|
|
{
|
|
$this->expectException(Exception::class);
|
|
|
|
$weeklySchedule = new Weekly();
|
|
$weeklySchedule->setHour(25);
|
|
}
|
|
|
|
/**
|
|
* Tests invalid call to setDay on Weekly
|
|
*/
|
|
public function testSetDayScheduledTimeWeeklyDay0()
|
|
{
|
|
$this->expectException(Exception::class);
|
|
|
|
$weeklySchedule = new Weekly();
|
|
$weeklySchedule->setDay(0);
|
|
}
|
|
|
|
/**
|
|
* Tests invalid call to setDay on Weekly
|
|
*/
|
|
public function testSetDayScheduledTimeWeeklyOver7()
|
|
{
|
|
$this->expectException(Exception::class);
|
|
|
|
$weeklySchedule = new Weekly();
|
|
$weeklySchedule->setDay(8);
|
|
}
|
|
|
|
/**
|
|
* Tests getRescheduledTime on Weekly with unspecified hour and unspecified day
|
|
*/
|
|
public function testGetRescheduledTimeWeeklyUnspecifiedHourUnspecifiedDay()
|
|
{
|
|
/*
|
|
* Test 1
|
|
*
|
|
* Context :
|
|
* - getRescheduledTime called Friday January 1 1971 09:10:00 UTC
|
|
* - setHour is not called, defaulting to midnight
|
|
* - setDay is not called, defaulting to monday
|
|
*
|
|
* Expected :
|
|
* getRescheduledTime returns Monday January 4 1971 00:00:00 UTC
|
|
*/
|
|
$mock = $this->getWeeklyMock(self::$JANUARY_01_1971_09_10_00);
|
|
$this->assertEquals(self::$JANUARY_04_1971_00_00_00, $mock->getRescheduledTime());
|
|
}
|
|
|
|
/**
|
|
* Tests getRescheduledTime on Weekly with specified hour and unspecified day
|
|
*/
|
|
public function testGetRescheduledTimeWeeklySpecifiedHourUnspecifiedDay()
|
|
{
|
|
/*
|
|
* Test 1
|
|
*
|
|
* Context :
|
|
* - getRescheduledTime called Friday January 1 1971 09:10:00 UTC
|
|
* - setHour is set to 9
|
|
* - setDay is not called, defaulting to monday
|
|
*
|
|
* Expected :
|
|
* getRescheduledTime returns Monday January 4 1971 09:00:00 UTC
|
|
*/
|
|
$mock = $this->getWeeklyMock(self::$JANUARY_01_1971_09_10_00);
|
|
$mock->setHour(9);
|
|
$this->assertEquals(self::$JANUARY_04_1971_09_00_00, $mock->getRescheduledTime());
|
|
}
|
|
|
|
/**
|
|
* Returns data used in testGetRescheduledTimeWeeklyUnspecifiedHourSpecifiedDay test.
|
|
*/
|
|
public function getSetDayParametersToTest()
|
|
{
|
|
return array(
|
|
array(1, 'JANUARY_11_1971_00_00_00'),
|
|
array(5, 'JANUARY_08_1971_00_00_00'),
|
|
array('monday', 'JANUARY_11_1971_00_00_00'),
|
|
array('Monday', 'JANUARY_11_1971_00_00_00'),
|
|
array('FRIDAY', 'JANUARY_08_1971_00_00_00'),
|
|
array('FrIdAy', 'JANUARY_08_1971_00_00_00')
|
|
);
|
|
}
|
|
|
|
public function testSetTimezoneShouldConvertRescheduledTime()
|
|
{
|
|
$oneHourInSeconds = 3600;
|
|
|
|
$mock = $this->getWeeklyMock(self::$JANUARY_01_1971_09_10_00);
|
|
$timeUTC = $mock->getRescheduledTime();
|
|
$this->assertEquals(self::$JANUARY_04_1971_00_00_00, $timeUTC);
|
|
|
|
$mock->setTimezone('Pacific/Auckland');
|
|
$timeAuckland = $mock->getRescheduledTime();
|
|
$this->assertEquals(-13 * $oneHourInSeconds, $timeAuckland - $timeUTC);
|
|
|
|
$mock->setTimezone('America/Los_Angeles');
|
|
$timeLosAngeles = $mock->getRescheduledTime();
|
|
$this->assertEquals(8 * $oneHourInSeconds, $timeLosAngeles - $timeUTC);
|
|
}
|
|
|
|
/**
|
|
* Tests getRescheduledTime on Weekly with unspecified hour and specified day
|
|
*
|
|
* Context :
|
|
* - getRescheduledTime called Monday January 4 1971 09:00:00 UTC
|
|
* - setHour is not called, defaulting to midnight
|
|
* - setDay is set to $dayToSet
|
|
*
|
|
* @dataProvider getSetDayParametersToTest
|
|
*/
|
|
public function testGetRescheduledTimeWeeklyUnspecifiedHourSpecifiedDay($dayToSet, $expectedRescheduledTime)
|
|
{
|
|
$mock = $this->getWeeklyMock(self::$JANUARY_04_1971_09_00_00);
|
|
$mock->setDay($dayToSet);
|
|
|
|
$this->assertEquals(self::$$expectedRescheduledTime, $mock->getRescheduledTime());
|
|
}
|
|
|
|
/**
|
|
* @param $currentTime
|
|
* @return Weekly
|
|
*/
|
|
private function getWeeklyMock($currentTime)
|
|
{
|
|
$mock = $this->createPartialMock('Piwik\Scheduler\Schedule\Weekly', array('getTime'));
|
|
$mock->expects($this->any())
|
|
->method('getTime')
|
|
->will($this->returnValue($currentTime));
|
|
return $mock;
|
|
}
|
|
}
|