diff options
author | diosmosis <benakamoorthi@fastmail.fm> | 2014-08-31 12:18:49 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-09-01 20:12:42 +0400 |
commit | d22d17ed5e08ba9c61c10e1512f5995a392fb3aa (patch) | |
tree | 49237a13fdab58bfe6f2201aa694be94612980d9 /tests/PHPUnit/Core | |
parent | c2a5e956c96e2b83ae8412361ba74465332793fe (diff) |
Fix bug in Date::addPeriod(N, 'month') where max number of days in a month was not respected. So if subtracting one month from July 31, result would be July 1. Now result is June 30th. Note: there appears to be little to no change in speed, tested both in integration tests and the code by itself.
Diffstat (limited to 'tests/PHPUnit/Core')
-rw-r--r-- | tests/PHPUnit/Core/DateTest.php | 32 | ||||
-rw-r--r-- | tests/PHPUnit/Core/Period/RangeTest.php | 3 |
2 files changed, 32 insertions, 3 deletions
diff --git a/tests/PHPUnit/Core/DateTest.php b/tests/PHPUnit/Core/DateTest.php index 2193d10674..84041f53fd 100644 --- a/tests/PHPUnit/Core/DateTest.php +++ b/tests/PHPUnit/Core/DateTest.php @@ -8,6 +8,9 @@ use Piwik\Date; use Piwik\SettingsServer; +/** + * @group Core_DateTest + */ class DateTest extends PHPUnit_Framework_TestCase { /** @@ -241,6 +244,28 @@ class DateTest extends PHPUnit_Framework_TestCase /** * @group Core */ + public function testAddPeriodMonthRespectsMaxDaysInMonth() + { + $date = Date::factory('2014-07-31'); + $dateExpected = Date::factory('2014-06-30'); + $dateActual = $date->subPeriod(1, 'month'); + $this->assertEquals($dateExpected->toString(), $dateActual->toString()); + + // test leap year + $date = Date::factory('2000-03-31'); + $dateExpected = Date::factory('2000-02-29'); + $dateActual = $date->subPeriod(1, 'month'); + $this->assertEquals($dateExpected->toString(), $dateActual->toString()); + + $date = Date::factory('2000-01-31'); + $dateExpected = Date::factory('2000-02-29'); + $dateActual = $date->addPeriod(1, 'month'); + $this->assertEquals($dateExpected->toString(), $dateActual->toString()); + } + + /** + * @group Core + */ public function testIsLeapYear() { $date = Date::factory('2011-03-01'); @@ -260,8 +285,9 @@ class DateTest extends PHPUnit_Framework_TestCase $date = Date::factory('2013-12-31'); $this->assertFalse($date->isLeapYear()); - $date = Date::factory('2052-01-01'); // dates after 19/01/2038 03:14:07 fail on 32-bit arch - $this->assertTrue($date->isLeapYear()); - + if (PHP_INT_SIZE > 4) { // dates after 19/01/2038 03:14:07 fail on 32-bit arch + $date = Date::factory('2052-01-01'); + $this->assertTrue($date->isLeapYear()); + } } } diff --git a/tests/PHPUnit/Core/Period/RangeTest.php b/tests/PHPUnit/Core/Period/RangeTest.php index 380c69383d..b2114a4372 100644 --- a/tests/PHPUnit/Core/Period/RangeTest.php +++ b/tests/PHPUnit/Core/Period/RangeTest.php @@ -12,6 +12,9 @@ use Piwik\Period\Week; use Piwik\Period\Year; use Piwik\Translate; +/** + * @group Core_Period_RangeTest + */ class Period_RangeTest extends PHPUnit_Framework_TestCase { // test range 1 |