TimeHelperTest.php 2.1 KB

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