deprecate timezones.json (#10311)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5b24c44e19
Коммит
72448d12a9
@@ -3,46 +3,20 @@
|
||||
|
||||
package timezones
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/mattermost/mattermost-server/utils/fileutils"
|
||||
)
|
||||
|
||||
type Timezones struct {
|
||||
supportedZones atomic.Value
|
||||
supportedZones []string
|
||||
}
|
||||
|
||||
func New(timezonesConfigFile string) *Timezones {
|
||||
func New() *Timezones {
|
||||
timezones := Timezones{}
|
||||
|
||||
if len(timezonesConfigFile) == 0 {
|
||||
timezonesConfigFile = "timezones.json"
|
||||
}
|
||||
|
||||
var supportedTimezones []string
|
||||
|
||||
// Attempt to get timezones from config. Failure results in defaults.
|
||||
if timezoneFile := fileutils.FindConfigFile(timezonesConfigFile); timezoneFile == "" {
|
||||
supportedTimezones = DefaultSupportedTimezones
|
||||
} else if raw, err := ioutil.ReadFile(timezoneFile); err != nil {
|
||||
supportedTimezones = DefaultSupportedTimezones
|
||||
} else if err := json.Unmarshal(raw, &supportedTimezones); err != nil {
|
||||
supportedTimezones = DefaultSupportedTimezones
|
||||
}
|
||||
|
||||
timezones.supportedZones.Store(supportedTimezones)
|
||||
timezones.supportedZones = DefaultSupportedTimezones
|
||||
|
||||
return &timezones
|
||||
}
|
||||
|
||||
func (t *Timezones) GetSupported() []string {
|
||||
if supportedZonesValue := t.supportedZones.Load(); supportedZonesValue != nil {
|
||||
return supportedZonesValue.([]string)
|
||||
}
|
||||
return []string{}
|
||||
return t.supportedZones
|
||||
}
|
||||
|
||||
func DefaultUserTimezone() map[string]string {
|
||||
|
||||
@@ -7,12 +7,27 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTimezoneConfig(t *testing.T) {
|
||||
tz1 := New("timezones.json")
|
||||
tz1 := New()
|
||||
assert.NotEmpty(t, tz1.GetSupported())
|
||||
|
||||
tz2 := New("timezones_file_does_not_exists.json")
|
||||
assert.Equal(t, DefaultSupportedTimezones, tz2.GetSupported())
|
||||
}
|
||||
|
||||
func TestDefaultUserTimezone(t *testing.T) {
|
||||
defaultTimezone := DefaultUserTimezone()
|
||||
require.Equal(t, "true", defaultTimezone["useAutomaticTimezone"])
|
||||
require.Empty(t, defaultTimezone["automaticTimezone"])
|
||||
require.Empty(t, defaultTimezone["manualTimezone"])
|
||||
|
||||
defaultTimezone["useAutomaticTimezone"] = "false"
|
||||
defaultTimezone["automaticTimezone"] = "EST"
|
||||
defaultTimezone["manualTimezone"] = "AST"
|
||||
|
||||
defaultTimezone2 := DefaultUserTimezone()
|
||||
require.Equal(t, "true", defaultTimezone2["useAutomaticTimezone"])
|
||||
require.Empty(t, defaultTimezone2["automaticTimezone"])
|
||||
require.Empty(t, defaultTimezone2["manualTimezone"])
|
||||
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user