You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.6 KiB

  1. <?php
  2. class DateTest extends PHPUnit_Framework_TestCase {
  3. public function testFormatLocalPositiveOffset() {
  4. $local = p3k\date\format_local('c', '2017-05-01T13:30:00+0000', 7200);
  5. $this->assertEquals('2017-05-01T15:30:00+02:00', $local);
  6. }
  7. public function testFormatLocalNegativeOffset() {
  8. $local = p3k\date\format_local('c', '2017-05-01T13:30:00+0000', -25200);
  9. $this->assertEquals('2017-05-01T06:30:00-07:00', $local);
  10. }
  11. public function testFormatLocalZeroOffset() {
  12. $local = p3k\date\format_local('c', '2017-05-01T13:30:00+0200', 0);
  13. $this->assertEquals('2017-05-01T11:30:00+00:00', $local);
  14. }
  15. public function testTZSecondsToTimezonePositive() {
  16. $tz = p3k\date\tz_seconds_to_timezone(7200);
  17. $this->assertInstanceOf(DateTimeZone::class, $tz);
  18. $this->assertEquals('+02:00', $tz->getName());
  19. }
  20. public function testTZSecondsToTimezoneNegative() {
  21. $tz = p3k\date\tz_seconds_to_timezone(-25200);
  22. $this->assertInstanceOf(DateTimeZone::class, $tz);
  23. $this->assertEquals('-07:00', $tz->getName());
  24. }
  25. public function testTZSecondsToTimezoneZero() {
  26. $tz = p3k\date\tz_seconds_to_timezone(0);
  27. $this->assertInstanceOf(DateTimeZone::class, $tz);
  28. $this->assertEquals('UTC', $tz->getName());
  29. }
  30. public function testTZOffsetToSecondsPositive() {
  31. $seconds = p3k\date\tz_offset_to_seconds('+02:00');
  32. $this->assertEquals(7200, $seconds);
  33. $seconds = p3k\date\tz_offset_to_seconds('+0200');
  34. $this->assertEquals(7200, $seconds);
  35. }
  36. public function testTZOffsetToSecondsNegative() {
  37. $seconds = p3k\date\tz_offset_to_seconds('-07:00');
  38. $this->assertEquals(-25200, $seconds);
  39. $seconds = p3k\date\tz_offset_to_seconds('-0700');
  40. $this->assertEquals(-25200, $seconds);
  41. }
  42. public function testTZOffsetToSecondsZero() {
  43. $seconds = p3k\date\tz_offset_to_seconds('+00:00');
  44. $this->assertEquals(0, $seconds);
  45. $seconds = p3k\date\tz_offset_to_seconds('+0000');
  46. $this->assertEquals(0, $seconds);
  47. }
  48. public function testTZOffsetToSecondsInvalid() {
  49. $seconds = p3k\date\tz_offset_to_seconds('foo');
  50. $this->assertEquals(0, $seconds);
  51. }
  52. public function testTZSecondsToOffsetPositive() {
  53. $offset = p3k\date\tz_seconds_to_offset(7200);
  54. $this->assertEquals('+02:00', $offset);
  55. }
  56. public function testTZSecondsToOffsetNegative() {
  57. $offset = p3k\date\tz_seconds_to_offset(-25200);
  58. $this->assertEquals('-07:00', $offset);
  59. }
  60. public function testTZSecondsToOffsetZero() {
  61. $offset = p3k\date\tz_seconds_to_offset(0);
  62. $this->assertEquals('+00:00', $offset);
  63. }
  64. }