You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

datetime_test.go 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package timeutil
  4. import (
  5. "testing"
  6. "time"
  7. "code.gitea.io/gitea/modules/setting"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestDateTime(t *testing.T) {
  11. oldTz := setting.DefaultUILocation
  12. setting.DefaultUILocation, _ = time.LoadLocation("America/New_York")
  13. defer func() {
  14. setting.DefaultUILocation = oldTz
  15. }()
  16. refTimeStr := "2018-01-01T00:00:00Z"
  17. refTime, _ := time.Parse(time.RFC3339, refTimeStr)
  18. refTimeStamp := TimeStamp(refTime.Unix())
  19. assert.EqualValues(t, "-", DateTime("short", nil))
  20. assert.EqualValues(t, "-", DateTime("short", 0))
  21. assert.EqualValues(t, "-", DateTime("short", time.Time{}))
  22. assert.EqualValues(t, "-", DateTime("short", TimeStamp(0)))
  23. actual := DateTime("short", "invalid")
  24. assert.EqualValues(t, `<relative-time format="datetime" year="numeric" month="short" day="numeric" weekday="" datetime="invalid">invalid</relative-time>`, actual)
  25. actual = DateTime("short", refTimeStr)
  26. assert.EqualValues(t, `<relative-time format="datetime" year="numeric" month="short" day="numeric" weekday="" datetime="2018-01-01T00:00:00Z">2018-01-01T00:00:00Z</relative-time>`, actual)
  27. actual = DateTime("short", refTime)
  28. assert.EqualValues(t, `<relative-time format="datetime" year="numeric" month="short" day="numeric" weekday="" datetime="2018-01-01T00:00:00Z">2018-01-01</relative-time>`, actual)
  29. actual = DateTime("short", refTimeStamp)
  30. assert.EqualValues(t, `<relative-time format="datetime" year="numeric" month="short" day="numeric" weekday="" datetime="2017-12-31T19:00:00-05:00">2017-12-31</relative-time>`, actual)
  31. actual = DateTime("full", refTimeStamp)
  32. assert.EqualValues(t, `<relative-time format="datetime" weekday="" year="numeric" month="short" day="numeric" hour="numeric" minute="numeric" second="numeric" datetime="2017-12-31T19:00:00-05:00">2017-12-31 19:00:00 -05:00</relative-time>`, actual)
  33. }