From 3a3a864bcb542471716c4b8003399168284adbcb Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Wed, 9 Jan 2019 00:56:10 +0900 Subject: [PATCH] Add unit tests for date related helpers --- .../gitbucket/core/view/HelpersSpec.scala | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/src/test/scala/gitbucket/core/view/HelpersSpec.scala b/src/test/scala/gitbucket/core/view/HelpersSpec.scala index fc1a2b2a9..52fa5cfe9 100644 --- a/src/test/scala/gitbucket/core/view/HelpersSpec.scala +++ b/src/test/scala/gitbucket/core/view/HelpersSpec.scala @@ -4,6 +4,8 @@ import gitbucket.core.controller.Context import gitbucket.core.service.RepositoryService.RepositoryInfo import org.scalatest.FunSpec import org.scalatest.mockito.MockitoSugar +import java.util.Date +import java.util.TimeZone class HelpersSpec extends FunSpec with MockitoSugar { @@ -64,4 +66,77 @@ class HelpersSpec extends FunSpec with MockitoSugar { assert(after == """http://exa"mple.com""") } } + + describe("datetimeAgo") { + it("should render a time within a minute") { + val time = System.currentTimeMillis() + val datetime = datetimeAgo(new Date(time)) + assert(datetime == "just now") + } + + it("should render a time 1 minute ago") { + val time = System.currentTimeMillis() - (60 * 1000) + val datetime = datetimeAgo(new Date(time)) + assert(datetime == "1 minute ago") + } + + it("should render a time 2 minute ago") { + val time = System.currentTimeMillis() - (60 * 1000 * 2) + val datetime = datetimeAgo(new Date(time)) + assert(datetime == "2 minutes ago") + } + } + + describe("datetimeRFC3339") { + it("should format date as RFC3339 format") { + val time = 1546961077224L + val datetime = datetimeRFC3339(new Date(time)) + assert(datetime == "2019-01-08T15:24:37Z") + } + } + + describe("date") { + it("should format date as yyyy-MM-dd with default timezone") { + val defaultTimeZone = TimeZone.getDefault + + try { + val time = 1546961077247L + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + val datetimeUTC = date(new Date(time)) + assert(datetimeUTC == "2019-01-08") + + TimeZone.setDefault(TimeZone.getTimeZone("JST")) + val datetimeJST = date(new Date(time)) + assert(datetimeJST == "2019-01-09") + + } finally { + TimeZone.setDefault(defaultTimeZone) + } + } + } + + describe("hashDate") { + it("should format date as yyyyMMDDHHmmss with default timezone") { + val defaultTimeZone = TimeZone.getDefault + + try { + val time = 1546961077247L + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + val hash = hashDate(new Date(time)) + assert(hash == "20190108152437") + } finally { + TimeZone.setDefault(defaultTimeZone) + } + } + } + + describe("hashQuery") { + it("should return same value for multiple calls") { + val time = 1546961077247L + val hash1 = hashQuery + Thread.sleep(500) + val hash2 = hashQuery + assert(hash1 == hash2) + } + } }