|
|
@@ -393,31 +393,6 @@ class TimeTest extends TestCase {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * testDaysAsSql method
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testDaysAsSql() {
|
|
|
- $begin = time();
|
|
|
- $end = time() + DAY;
|
|
|
- $field = 'my_field';
|
|
|
- $expected = '(my_field >= \'' . date('Y-m-d', $begin) . ' 00:00:00\') AND (my_field <= \'' . date('Y-m-d', $end) . ' 23:59:59\')';
|
|
|
- $this->assertEquals($expected, $this->Time->daysAsSql($begin, $end, $field));
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * testDayAsSql method
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testDayAsSql() {
|
|
|
- $time = time();
|
|
|
- $field = 'my_field';
|
|
|
- $expected = '(my_field >= \'' . date('Y-m-d', $time) . ' 00:00:00\') AND (my_field <= \'' . date('Y-m-d', $time) . ' 23:59:59\')';
|
|
|
- $this->assertEquals($expected, $this->Time->dayAsSql($time, $field));
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
* testToUnix method
|
|
|
*
|
|
|
* @return void
|
|
|
@@ -432,82 +407,6 @@ class TimeTest extends TestCase {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * testToServer method
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testToServer() {
|
|
|
- date_default_timezone_set('Europe/Paris');
|
|
|
-
|
|
|
- $time = time();
|
|
|
- $this->assertEquals(date('Y-m-d H:i:s', $time), $this->Time->toServer($time));
|
|
|
-
|
|
|
- date_default_timezone_set('America/New_York');
|
|
|
- $time = time();
|
|
|
- date_default_timezone_set('Europe/Paris');
|
|
|
- $result = $this->Time->toServer($time, 'America/New_York');
|
|
|
- $this->assertEquals(date('Y-m-d H:i:s', $time), $result);
|
|
|
-
|
|
|
- date_default_timezone_set('Europe/Paris');
|
|
|
- $time = '2005-10-25 10:00:00';
|
|
|
- $result = $this->Time->toServer($time);
|
|
|
- $date = new \DateTime($time, new \DateTimeZone('UTC'));
|
|
|
- $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
|
|
|
- $expected = $date->format('Y-m-d H:i:s');
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $time = '2002-01-01 05:15:30';
|
|
|
- $result = $this->Time->toServer($time, 'America/New_York');
|
|
|
- $date = new \DateTime($time, new \DateTimeZone('America/New_York'));
|
|
|
- $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
|
|
|
- $expected = $date->format('Y-m-d H:i:s');
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $time = '2010-01-28T15:00:00+10:00';
|
|
|
- $result = $this->Time->toServer($time, 'America/New_York');
|
|
|
- $date = new \DateTime($time);
|
|
|
- $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
|
|
|
- $expected = $date->format('Y-m-d H:i:s');
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $date = new \DateTime(null, new \DateTimeZone('America/New_York'));
|
|
|
- $result = $this->Time->toServer($date, 'Pacific/Tahiti');
|
|
|
- $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
|
|
|
- $expected = $date->format('Y-m-d H:i:s');
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $this->_restoreSystemTimezone();
|
|
|
-
|
|
|
- $time = time();
|
|
|
- $result = $this->Time->toServer($time, null, 'l jS \of F Y h:i:s A');
|
|
|
- $expected = date('l jS \of F Y h:i:s A', $time);
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $this->assertFalse($this->Time->toServer(time(), new \stdClass()));
|
|
|
-
|
|
|
- date_default_timezone_set('UTC');
|
|
|
-
|
|
|
- $serverTime = new \DateTime('2012-12-11 14:15:20');
|
|
|
-
|
|
|
- $timezones = array('Europe/London', 'Europe/Brussels', 'UTC', 'America/Denver', 'America/Caracas', 'Asia/Kathmandu');
|
|
|
- foreach ($timezones as $timezone) {
|
|
|
- $result = $this->Time->toServer($serverTime->format('Y-m-d H:i:s'), $timezone, 'U');
|
|
|
- $tz = new \DateTimeZone($timezone);
|
|
|
- $this->assertEquals($serverTime->format('U'), $result + $tz->getOffset($serverTime));
|
|
|
- }
|
|
|
-
|
|
|
- date_default_timezone_set('UTC');
|
|
|
- $date = new \DateTime('now', new \DateTimeZone('America/New_York'));
|
|
|
-
|
|
|
- $result = $this->Time->toServer($date, null, 'Y-m-d H:i:s');
|
|
|
- $date->setTimezone($this->Time->timezone());
|
|
|
- $expected = $date->format('Y-m-d H:i:s');
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $this->_restoreSystemTimezone();
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
* testToAtom method
|
|
|
*
|
|
|
* @return void
|
|
|
@@ -566,32 +465,6 @@ class TimeTest extends TestCase {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * testOfGmt method
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testGmt() {
|
|
|
- $hour = 3;
|
|
|
- $min = 4;
|
|
|
- $sec = 2;
|
|
|
- $month = 5;
|
|
|
- $day = 14;
|
|
|
- $year = 2007;
|
|
|
- $time = mktime($hour, $min, $sec, $month, $day, $year);
|
|
|
- $expected = gmmktime($hour, $min, $sec, $month, $day, $year);
|
|
|
- $this->assertEquals($expected, $this->Time->gmt(date('Y-n-j G:i:s', $time)));
|
|
|
-
|
|
|
- $hour = date('H');
|
|
|
- $min = date('i');
|
|
|
- $sec = date('s');
|
|
|
- $month = date('m');
|
|
|
- $day = date('d');
|
|
|
- $year = date('Y');
|
|
|
- $expected = gmmktime($hour, $min, $sec, $month, $day, $year);
|
|
|
- $this->assertEquals($expected, $this->Time->gmt(null));
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
* testIsToday method
|
|
|
*
|
|
|
* @return void
|
|
|
@@ -820,209 +693,6 @@ class TimeTest extends TestCase {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * testUserOffset method
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testUserOffset() {
|
|
|
- $timezoneServer = new \DateTimeZone(date_default_timezone_get());
|
|
|
- $timeServer = new \DateTime('now', $timezoneServer);
|
|
|
- $yourTimezone = $timezoneServer->getOffset($timeServer) / HOUR;
|
|
|
-
|
|
|
- $expected = time();
|
|
|
- $result = $this->Time->fromString(time(), $yourTimezone);
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- $result = $this->Time->fromString(time(), $timezoneServer->getName());
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- $result = $this->Time->fromString(time(), $timezoneServer);
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- Configure::write('Config.timezone', $timezoneServer->getName());
|
|
|
- $result = $this->Time->fromString(time());
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
- Configure::delete('Config.timezone');
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * test fromString()
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testFromString() {
|
|
|
- $result = $this->Time->fromString('');
|
|
|
- $this->assertFalse($result);
|
|
|
-
|
|
|
- $result = $this->Time->fromString(0, 0);
|
|
|
- $this->assertFalse($result);
|
|
|
-
|
|
|
- $result = $this->Time->fromString('+1 hour');
|
|
|
- $expected = strtotime('+1 hour');
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- $timezone = date('Z', time());
|
|
|
- $result = $this->Time->fromString('+1 hour', $timezone);
|
|
|
- $expected = $this->Time->convert(strtotime('+1 hour'), $timezone);
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- $timezone = date_default_timezone_get();
|
|
|
- $result = $this->Time->fromString('+1 hour', $timezone);
|
|
|
- $expected = $this->Time->convert(strtotime('+1 hour'), $timezone);
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- date_default_timezone_set('UTC');
|
|
|
- $date = new \DateTime('now', new \DateTimeZone('Europe/London'));
|
|
|
- $this->Time->fromString($date);
|
|
|
- $this->assertEquals('Europe/London', $date->getTimeZone()->getName());
|
|
|
-
|
|
|
- $this->_restoreSystemTimezone();
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * test fromString() with a DateTime object as the dateString
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testFromStringWithDateTime() {
|
|
|
- date_default_timezone_set('UTC');
|
|
|
-
|
|
|
- $date = new \DateTime('+1 hour', new \DateTimeZone('America/New_York'));
|
|
|
- $result = $this->Time->fromString($date, 'UTC');
|
|
|
- $date->setTimezone(new \DateTimeZone('UTC'));
|
|
|
- $expected = $date->format('U') + $date->getOffset();
|
|
|
-
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- date_default_timezone_set('Australia/Melbourne');
|
|
|
-
|
|
|
- $date = new \DateTime('+1 hour', new \DateTimeZone('America/New_York'));
|
|
|
- $result = $this->Time->fromString($date, 'Asia/Kuwait');
|
|
|
-
|
|
|
- $date->setTimezone(new \DateTimeZone('Asia/Kuwait'));
|
|
|
- $expected = $date->format('U') + $date->getOffset();
|
|
|
- $this->assertWithinMargin($expected, $result, 1);
|
|
|
-
|
|
|
- $this->_restoreSystemTimezone();
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * Test that datetimes in the default timezone are not modified.
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testFromStringWithDateTimeNoConversion() {
|
|
|
- Configure::write('Config.timezone', date_default_timezone_get());
|
|
|
- $date = new \DateTime('2013-04-09');
|
|
|
- $result = $this->Time->fromString($date);
|
|
|
- $this->assertEquals($result, $date->format('U'));
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * test converting time specifiers using a time definition localfe file
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testConvertSpecifiers() {
|
|
|
- Configure::write('Config.language', 'es');
|
|
|
- $time = strtotime('Thu Jan 14 11:43:39 2010');
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%a', $time);
|
|
|
- $expected = 'jue';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%A', $time);
|
|
|
- $expected = 'jueves';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%c', $time);
|
|
|
- $expected = 'jue %d ene %Y %H:%M:%S %Z';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%C', $time);
|
|
|
- $expected = '20';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%D', $time);
|
|
|
- $expected = '%m/%d/%y';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%b', $time);
|
|
|
- $expected = 'ene';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%h', $time);
|
|
|
- $expected = 'ene';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%B', $time);
|
|
|
- $expected = 'enero';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%n', $time);
|
|
|
- $expected = "\n";
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%n', $time);
|
|
|
- $expected = "\n";
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%p', $time);
|
|
|
- $expected = 'AM';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%P', $time);
|
|
|
- $expected = 'am';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%r', $time);
|
|
|
- $expected = '%I:%M:%S AM';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%R', $time);
|
|
|
- $expected = '11:43';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%t', $time);
|
|
|
- $expected = "\t";
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%T', $time);
|
|
|
- $expected = '%H:%M:%S';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%u', $time);
|
|
|
- $expected = 4;
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%x', $time);
|
|
|
- $expected = '%d/%m/%y';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%X', $time);
|
|
|
- $expected = '%H:%M:%S';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
- * test convert %e on windows.
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testConvertPercentE() {
|
|
|
- $this->skipIf(DIRECTORY_SEPARATOR !== '\\', 'Cannot run windows tests on non-windows OS.');
|
|
|
-
|
|
|
- $time = strtotime('Thu Jan 14 11:43:39 2010');
|
|
|
- $result = $this->Time->convertSpecifiers('%e', $time);
|
|
|
- $expected = '14';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
-
|
|
|
- $result = $this->Time->convertSpecifiers('%e', strtotime('2011-01-01'));
|
|
|
- $expected = ' 1';
|
|
|
- $this->assertEquals($expected, $result);
|
|
|
- }
|
|
|
-
|
|
|
-/**
|
|
|
* test formatting dates taking in account preferred i18n locale file
|
|
|
*
|
|
|
* @return void
|