TimeHelperTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\View\View;
  4. use Tools\TestSuite\TestCase;
  5. use Tools\Utility\Time;
  6. use Tools\View\Helper\TimeHelper;
  7. /**
  8. * Datetime Test Case
  9. */
  10. class TimeHelperTest extends TestCase {
  11. /**
  12. * @return void
  13. */
  14. public function setUp() {
  15. parent::setUp();
  16. $this->Time = new TimeHelper(new View(null));
  17. }
  18. /**
  19. * Test calling Utility.Number class
  20. *
  21. * @return void
  22. */
  23. public function testParentCall() {
  24. $result = $this->Time->age((date('Y') - 15) . '-01-01');
  25. $this->assertSame(15, $result);
  26. }
  27. /**
  28. * Test user age
  29. *
  30. * @return void
  31. */
  32. public function testUserAge() {
  33. $res = $this->Time->userAge((date('Y') - 4) . '-01-01');
  34. $this->assertTrue($res >= 3 && $res <= 5);
  35. $res = $this->Time->userAge('2023-01-01');
  36. $this->assertSame('', $res);
  37. $res = $this->Time->userAge('1903-01-01');
  38. $this->assertSame('', $res);
  39. $res = $this->Time->userAge('1901-01-01');
  40. $this->assertSame('', $res);
  41. }
  42. /**
  43. * Tests that calling a CakeTime method works.
  44. *
  45. * @return void
  46. */
  47. public function testTimeAgoInWords() {
  48. $res = $this->Time->timeAgoInWords(date(FORMAT_DB_DATETIME, time() - 4 * DAY - 5 * HOUR));
  49. $this->debug($res);
  50. }
  51. /**
  52. * DatetimeHelperTest::testPublished()
  53. *
  54. * @return void
  55. */
  56. public function testPublished() {
  57. $result = $this->Time->published((new Time(date(FORMAT_DB_DATETIME)))->addSeconds(1));
  58. $expected = 'class="published today';
  59. $this->assertContains($expected, $result);
  60. $result = $this->Time->published((new Time(date(FORMAT_DB_DATETIME)))->addDays(1));
  61. $expected = 'class="published notyet';
  62. $this->assertContains($expected, $result);
  63. $result = $this->Time->published((new Time(date(FORMAT_DB_DATETIME)))->subDays(2));
  64. $expected = 'class="published already';
  65. $this->assertContains($expected, $result);
  66. }
  67. /**
  68. * DatetimeHelperTest::testTimezones()
  69. *
  70. * @return void
  71. */
  72. public function testTimezones() {
  73. $result = $this->Time->timezones();
  74. $this->assertTrue(!empty($result));
  75. }
  76. /**
  77. * TearDown method
  78. *
  79. * @return void
  80. */
  81. public function tearDown() {
  82. parent::tearDown();
  83. unset($this->Time);
  84. }
  85. }