aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/config.go25
-rw-r--r--config/config_test.go149
2 files changed, 13 insertions, 161 deletions
diff --git a/config/config.go b/config/config.go
index e62a8bd..634120b 100644
--- a/config/config.go
+++ b/config/config.go
@@ -26,9 +26,10 @@ import (
"gopkg.in/yaml.v2"
"maunium.net/go/mautrix"
+ "maunium.net/go/mautrix/id"
+ "maunium.net/go/mautrix/pushrules"
"maunium.net/go/gomuks/debug"
- "maunium.net/go/gomuks/matrix/pushrules"
"maunium.net/go/gomuks/matrix/rooms"
)
@@ -52,9 +53,9 @@ type UserPreferences struct {
// Config contains the main config of gomuks.
type Config struct {
- UserID string `yaml:"mxid"`
- AccessToken string `yaml:"access_token"`
- HS string `yaml:"homeserver"`
+ UserID id.UserID `yaml:"mxid"`
+ AccessToken string `yaml:"access_token"`
+ HS string `yaml:"homeserver"`
RoomCacheSize int `yaml:"room_cache_size"`
RoomCacheAge int64 `yaml:"room_cache_age"`
@@ -242,36 +243,36 @@ func (config *Config) save(name, dir, file string, source interface{}) {
}
}
-func (config *Config) GetUserID() string {
+func (config *Config) GetUserID() id.UserID {
return config.UserID
}
-func (config *Config) SaveFilterID(_, filterID string) {
+func (config *Config) SaveFilterID(_ id.UserID, filterID string) {
config.AuthCache.FilterID = filterID
config.SaveAuthCache()
}
-func (config *Config) LoadFilterID(_ string) string {
+func (config *Config) LoadFilterID(_ id.UserID) string {
return config.AuthCache.FilterID
}
-func (config *Config) SaveNextBatch(_, nextBatch string) {
+func (config *Config) SaveNextBatch(_ id.UserID, nextBatch string) {
config.AuthCache.NextBatch = nextBatch
config.SaveAuthCache()
}
-func (config *Config) LoadNextBatch(_ string) string {
+func (config *Config) LoadNextBatch(_ id.UserID) string {
return config.AuthCache.NextBatch
}
-func (config *Config) SaveRoom(room *mautrix.Room) {
+func (config *Config) SaveRoom(_ *mautrix.Room) {
panic("SaveRoom is not supported")
}
-func (config *Config) LoadRoom(roomID string) *mautrix.Room {
+func (config *Config) LoadRoom(_ id.RoomID) *mautrix.Room {
panic("LoadRoom is not supported")
}
-func (config *Config) GetRoom(roomID string) *rooms.Room {
+func (config *Config) GetRoom(roomID id.RoomID) *rooms.Room {
return config.Rooms.GetOrCreate(roomID)
}
diff --git a/config/config_test.go b/config/config_test.go
deleted file mode 100644
index 4aa076f..0000000
--- a/config/config_test.go
+++ /dev/null
@@ -1,149 +0,0 @@
-// gomuks - A terminal Matrix client written in Go.
-// Copyright (C) 2019 Tulir Asokan
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-package config_test
-
-import (
- "io/ioutil"
- "os"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "maunium.net/go/gomuks/config"
-)
-
-func TestNewConfig_Defaults(t *testing.T) {
- cfg := config.NewConfig("/tmp/gomuks-test-0", "/tmp/gomuks-test-0")
- assert.Equal(t, "/tmp/gomuks-test-0", cfg.Dir)
- assert.Equal(t, "/tmp/gomuks-test-0/history.db", cfg.HistoryPath)
- assert.Equal(t, "/tmp/gomuks-test-0/media", cfg.MediaDir)
-}
-
-func TestConfig_Load_NonexistentDoesntFail(t *testing.T) {
- cfg := config.NewConfig("/tmp/gomuks-test-1", "/tmp/gomuks-test-1")
-
- defer os.RemoveAll("/tmp/gomuks-test-1")
-
- cfg.Load()
-
- stat, err := os.Stat(cfg.MediaDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())
-
- /* FIXME
- stat, err = os.Stat(cfg.HistoryDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())*/
-}
-
-func TestConfig_Load_DirectoryFails(t *testing.T) {
- os.MkdirAll("/tmp/gomuks-test-2/config.yaml", 0700)
- cfg := config.NewConfig("/tmp/gomuks-test-2", "/tmp/gomuks-test-2")
-
- defer os.RemoveAll("/tmp/gomuks-test-2")
- defer func() {
- if err := recover(); err == nil {
- t.Fatalf("Load() didn't panic")
- }
- }()
-
- cfg.Load()
-}
-
-func TestConfig_Load_ExistingFileIsLoaded(t *testing.T) {
- os.MkdirAll("/tmp/gomuks-test-3", 0700)
- ioutil.WriteFile("/tmp/gomuks-test-3/config.yaml", []byte(`{
- "mxid": "foo",
- "homeserver": "bar",
- "history_path": "/tmp/gomuks-test-3/foo.db",
- "media_dir": "/tmp/gomuks-test-3/bar"
- }`), 0700)
- cfg := config.NewConfig("/tmp/gomuks-test-3", "/tmp/gomuks-test-3")
-
- defer os.RemoveAll("/tmp/gomuks-test-3")
-
- cfg.Load()
-
- assert.Equal(t, "foo", cfg.UserID)
- assert.Equal(t, "bar", cfg.HS)
- assert.Equal(t, "/tmp/gomuks-test-3/foo.db", cfg.HistoryPath)
- assert.Equal(t, "/tmp/gomuks-test-3/bar", cfg.MediaDir)
-
- stat, err := os.Stat(cfg.MediaDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())
-
- /* FIXME
- stat, err = os.Stat(cfg.HistoryDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())*/
-}
-
-func TestConfig_Load_InvalidExistingFilePanics(t *testing.T) {
- os.MkdirAll("/tmp/gomuks-test-4", 0700)
- ioutil.WriteFile("/tmp/gomuks-test-4/config.yaml", []byte(`this is not JSON.`), 0700)
- cfg := config.NewConfig("/tmp/gomuks-test-4", "/tmp/gomuks-test-4")
-
- defer os.RemoveAll("/tmp/gomuks-test-4")
- defer func() {
- if err := recover(); err == nil {
- t.Fatalf("Load() didn't panic")
- }
- }()
-
- cfg.Load()
-}
-
-func TestConfig_Clear(t *testing.T) {
- cfg := config.NewConfig("/tmp/gomuks-test-5", "/tmp/gomuks-test-5")
-
- defer os.RemoveAll("/tmp/gomuks-test-5")
-
- cfg.Load()
-
- stat, err := os.Stat(cfg.MediaDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())
-
- /* FIXME
- stat, err = os.Stat(cfg.HistoryDir)
- assert.Nil(t, err)
- assert.True(t, stat.IsDir())*/
-
- cfg.Clear()
-
- stat, err = os.Stat(cfg.MediaDir)
- assert.True(t, os.IsNotExist(err))
- assert.Nil(t, stat)
-
- /* FIXME
- stat, err = os.Stat(cfg.HistoryDir)
- assert.True(t, os.IsNotExist(err))
- assert.Nil(t, stat)*/
-}
-
-func TestConfig_Save(t *testing.T) {
- cfg := config.NewConfig("/tmp/gomuks-test-6", "/tmp/gomuks-test-6")
-
- defer os.RemoveAll("/tmp/gomuks-test-6")
-
- cfg.Load()
- cfg.Save()
-
- dat, err := ioutil.ReadFile("/tmp/gomuks-test-6/config.yaml")
- assert.Nil(t, err)
- assert.Contains(t, string(dat), "/tmp/gomuks-test-6")
-}