Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

TimeUtilsTest.java 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. * Copyright 2011 gitblit.com.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.gitblit.tests;
  17. import java.util.Date;
  18. import org.junit.Test;
  19. import com.gitblit.utils.TimeUtils;
  20. public class TimeUtilsTest extends GitblitUnitTest {
  21. private Date offset(long subtract) {
  22. return new Date(System.currentTimeMillis() - subtract);
  23. }
  24. @Test
  25. public void testBasicTimeFunctions() throws Exception {
  26. assertEquals(2, TimeUtils.minutesAgo(offset(2 * TimeUtils.MIN), false));
  27. assertEquals(3, TimeUtils.minutesAgo(offset((2 * TimeUtils.MIN) + (35 * 1000L)), true));
  28. assertEquals(2, TimeUtils.hoursAgo(offset(2 * TimeUtils.ONEHOUR), false));
  29. assertEquals(3, TimeUtils.hoursAgo(offset(5 * TimeUtils.HALFHOUR), true));
  30. assertEquals(4, TimeUtils.daysAgo(offset(4 * TimeUtils.ONEDAY)));
  31. }
  32. @Test
  33. public void testToday() throws Exception {
  34. assertTrue(TimeUtils.isToday(new Date(), null));
  35. }
  36. @Test
  37. public void testYesterday() throws Exception {
  38. assertTrue(TimeUtils.isYesterday(offset(TimeUtils.ONEDAY), null));
  39. }
  40. @Test
  41. public void testDurations() throws Exception {
  42. TimeUtils timeUtils = new TimeUtils();
  43. assertEquals("1 day", timeUtils.duration(1));
  44. assertEquals("5 days", timeUtils.duration(5));
  45. assertEquals("3 months", timeUtils.duration(75));
  46. assertEquals("12 months", timeUtils.duration(364));
  47. assertEquals("1 year", timeUtils.duration(365 + 0));
  48. assertEquals("1 year", timeUtils.duration(365 + 10));
  49. assertEquals("1 year, 1 month", timeUtils.duration(365 + 15));
  50. assertEquals("1 year, 1 month", timeUtils.duration(365 + 30));
  51. assertEquals("1 year, 1 month", timeUtils.duration(365 + 44));
  52. assertEquals("1 year, 2 months", timeUtils.duration(365 + 45));
  53. assertEquals("1 year, 2 months", timeUtils.duration(365 + 60));
  54. assertEquals("2 years", timeUtils.duration(2 * 365 + 0));
  55. assertEquals("2 years", timeUtils.duration(2 * 365 + 10));
  56. assertEquals("2 years, 1 month", timeUtils.duration(2 * 365 + 15));
  57. assertEquals("2 years, 1 month", timeUtils.duration(2 * 365 + 30));
  58. assertEquals("2 years, 1 month", timeUtils.duration(2 * 365 + 44));
  59. assertEquals("2 years, 2 months", timeUtils.duration(2 * 365 + 45));
  60. assertEquals("2 years, 2 months", timeUtils.duration(2 * 365 + 60));
  61. }
  62. @Test
  63. public void testTimeAgo() throws Exception {
  64. // standard time ago tests
  65. TimeUtils timeUtils = new TimeUtils();
  66. assertEquals("just now", timeUtils.timeAgo(offset(1 * TimeUtils.MIN)));
  67. assertEquals("60 mins ago", timeUtils.timeAgo(offset(60 * TimeUtils.MIN)));
  68. assertEquals("2 hours ago", timeUtils.timeAgo(offset(120 * TimeUtils.MIN)));
  69. assertEquals("15 hours ago", timeUtils.timeAgo(offset(15 * TimeUtils.ONEHOUR)));
  70. assertEquals("yesterday", timeUtils.timeAgo(offset(24 * TimeUtils.ONEHOUR)));
  71. assertEquals("2 days ago", timeUtils.timeAgo(offset(2 * TimeUtils.ONEDAY)));
  72. assertEquals("5 weeks ago", timeUtils.timeAgo(offset(35 * TimeUtils.ONEDAY)));
  73. assertEquals("3 months ago", timeUtils.timeAgo(offset(84 * TimeUtils.ONEDAY)));
  74. assertEquals("3 months ago", timeUtils.timeAgo(offset(95 * TimeUtils.ONEDAY)));
  75. assertEquals("4 months ago", timeUtils.timeAgo(offset(104 * TimeUtils.ONEDAY)));
  76. assertEquals("1 year ago", timeUtils.timeAgo(offset(365 * TimeUtils.ONEDAY)));
  77. assertEquals("13 months ago", timeUtils.timeAgo(offset(395 * TimeUtils.ONEDAY)));
  78. assertEquals("2 years ago", timeUtils.timeAgo(offset((2 * 365 + 30) * TimeUtils.ONEDAY)));
  79. // css class tests
  80. assertEquals("age0", timeUtils.timeAgoCss(offset(1 * TimeUtils.MIN)));
  81. assertEquals("age0", timeUtils.timeAgoCss(offset(60 * TimeUtils.MIN)));
  82. assertEquals("age1", timeUtils.timeAgoCss(offset(120 * TimeUtils.MIN)));
  83. assertEquals("age1", timeUtils.timeAgoCss(offset(24 * TimeUtils.ONEHOUR)));
  84. assertEquals("age2", timeUtils.timeAgoCss(offset(2 * TimeUtils.ONEDAY)));
  85. }
  86. @Test
  87. public void testFrequency() {
  88. assertEquals(5, TimeUtils.convertFrequencyToMinutes("2 mins"));
  89. assertEquals(10, TimeUtils.convertFrequencyToMinutes("10 mins"));
  90. assertEquals(600, TimeUtils.convertFrequencyToMinutes("10 hours"));
  91. assertEquals(14400, TimeUtils.convertFrequencyToMinutes(" 10 days "));
  92. }
  93. }