activitypub: go-fed conformant Clock instance

Signed-off-by: Loïc Dachary <loic@dachary.org>
This commit is contained in:
Loïc Dachary 2021-11-09 08:35:27 +01:00 committed by Anthony Wang
parent 678a56fbf8
commit e8907c3c9e
Signed by: a
GPG key ID: BC96B00AEC5F2D76
2 changed files with 58 additions and 0 deletions

View file

@ -0,0 +1,28 @@
// Copyright 2021 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package activitypub
import (
"time"
"code.gitea.io/gitea/modules/setting"
"github.com/go-fed/activity/pub"
)
var _ pub.Clock = &Clock{}
// Clock struct
type Clock struct{}
// NewClock function
func NewClock() (c *Clock, err error) {
c = &Clock{}
return
}
// Now function
func (c *Clock) Now() time.Time {
return time.Now().In(setting.DefaultUILocation)
}

View file

@ -0,0 +1,30 @@
// Copyright 2021 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package activitypub
import (
"regexp"
"testing"
"time"
"code.gitea.io/gitea/modules/setting"
"github.com/stretchr/testify/assert"
)
func TestClock(t *testing.T) {
DefaultUILocation := setting.DefaultUILocation
defer func() {
setting.DefaultUILocation = DefaultUILocation
}()
c, err := NewClock()
assert.NoError(t, err)
setting.DefaultUILocation, err = time.LoadLocation("UTC")
assert.NoError(t, err)
assert.Regexp(t, regexp.MustCompile(`\+0000$`), c.Now().Format(time.Layout))
setting.DefaultUILocation, err = time.LoadLocation("Europe/Paris")
assert.NoError(t, err)
assert.Regexp(t, regexp.MustCompile(`\+0[21]00$`), c.Now().Format(time.Layout))
}