TimeHelperTest.php 2.1 KB

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