TimeHelperTest.php 2.1 KB

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