feat(site_store): enable allowSetTheme and autoTheme settings
This commit is contained in:
parent
79ccda2a67
commit
4089e1c319
2 changed files with 116 additions and 12 deletions
|
@ -43,6 +43,8 @@ var (
|
||||||
Align: "fixed",
|
Align: "fixed",
|
||||||
BgColor: "#ccc",
|
BgColor: "#ccc",
|
||||||
}
|
}
|
||||||
|
DefaultAllowSetBg = false
|
||||||
|
DefaultAutoTheme = true
|
||||||
BgRepeatValues = map[string]bool{
|
BgRepeatValues = map[string]bool{
|
||||||
"repeat-x": true,
|
"repeat-x": true,
|
||||||
"repeat-y": true,
|
"repeat-y": true,
|
||||||
|
@ -126,6 +128,8 @@ type ClientConfig struct {
|
||||||
SiteName string `json:"siteName" yaml:"siteName"`
|
SiteName string `json:"siteName" yaml:"siteName"`
|
||||||
SiteDesc string `json:"siteDesc" yaml:"siteDesc"`
|
SiteDesc string `json:"siteDesc" yaml:"siteDesc"`
|
||||||
Bg *BgConfig `json:"bg" yaml:"bg"`
|
Bg *BgConfig `json:"bg" yaml:"bg"`
|
||||||
|
AllowSetBg bool `json:"allowSetBg" yaml:"allowSetBg"`
|
||||||
|
AutoTheme bool `json:"autoTheme" yaml:"autoTheme"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type BgConfig struct {
|
type BgConfig struct {
|
||||||
|
@ -174,6 +178,8 @@ func CheckSiteCfg(cfg *SiteConfig, fillDefault bool) error {
|
||||||
cfg.ClientCfg = &ClientConfig{
|
cfg.ClientCfg = &ClientConfig{
|
||||||
SiteName: DefaultSiteName,
|
SiteName: DefaultSiteName,
|
||||||
SiteDesc: DefaultSiteDesc,
|
SiteDesc: DefaultSiteDesc,
|
||||||
|
AllowSetBg: DefaultAllowSetBg,
|
||||||
|
AutoTheme: DefaultAutoTheme,
|
||||||
Bg: &BgConfig{
|
Bg: &BgConfig{
|
||||||
Url: DefaultBgConfig.Url,
|
Url: DefaultBgConfig.Url,
|
||||||
Repeat: DefaultBgConfig.Repeat,
|
Repeat: DefaultBgConfig.Repeat,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package sitestore
|
package sitestore
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -13,11 +14,95 @@ import (
|
||||||
|
|
||||||
func TestSiteStore(t *testing.T) {
|
func TestSiteStore(t *testing.T) {
|
||||||
|
|
||||||
testSiteMethods := func(t *testing.T, store ISiteStore) {
|
// testSiteMethods := func(t *testing.T, store ISiteStore) {
|
||||||
|
// siteCfg := &db.SiteConfig{
|
||||||
|
// ClientCfg: &db.ClientConfig{
|
||||||
|
// SiteName: "quickshare",
|
||||||
|
// SiteDesc: "simpel file sharing",
|
||||||
|
// AllowSetBg: true,
|
||||||
|
// AutoTheme: true,
|
||||||
|
// Bg: &db.BgConfig{
|
||||||
|
// Url: "/imgs/bg.jpg",
|
||||||
|
// Repeat: "no-repeat",
|
||||||
|
// Position: "center",
|
||||||
|
// Align: "fixed",
|
||||||
|
// BgColor: "#ccc",
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
|
||||||
|
// err := store.SetClientCfg(siteCfg.ClientCfg)
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
// newSiteCfg, err := store.GetCfg()
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// } else if !reflect.DeepEqual(newSiteCfg, siteCfg) {
|
||||||
|
// t.Fatalf("not equal new(%v) original(%v)", newSiteCfg, siteCfg)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// t.Run("Get/Set config", func(t *testing.T) {
|
||||||
|
// rootPath, err := ioutil.TempDir("./", "quickshare_sitestore_test_")
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
// defer os.RemoveAll(rootPath)
|
||||||
|
|
||||||
|
// dbPath := filepath.Join(rootPath, "quickshare.db")
|
||||||
|
// kvstore := boltdbpvd.New(dbPath, 1024)
|
||||||
|
// defer kvstore.Close()
|
||||||
|
|
||||||
|
// store, err := NewSiteStore(kvstore)
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal("fail to new kvstore", err)
|
||||||
|
// }
|
||||||
|
// err = store.Init(&db.SiteConfig{
|
||||||
|
// ClientCfg: &db.ClientConfig{
|
||||||
|
// SiteName: "",
|
||||||
|
// SiteDesc: "",
|
||||||
|
// AllowSetBg: true,
|
||||||
|
// AutoTheme: false,
|
||||||
|
// Bg: &db.BgConfig{
|
||||||
|
// Url: "/imgs/bg.jpg",
|
||||||
|
// Repeat: "repeat",
|
||||||
|
// Position: "top",
|
||||||
|
// Align: "scroll",
|
||||||
|
// BgColor: "#000",
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// })
|
||||||
|
// if err != nil {
|
||||||
|
// panic(err)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// testSiteMethods(t, store)
|
||||||
|
// })
|
||||||
|
|
||||||
|
testMigrations := func(t *testing.T, store ISiteStore) {
|
||||||
|
autoFilledCfg := &db.SiteConfig{
|
||||||
|
ClientCfg: &db.ClientConfig{
|
||||||
|
SiteName: "Quickshare",
|
||||||
|
SiteDesc: "Quickshare",
|
||||||
|
AllowSetBg: false,
|
||||||
|
AutoTheme: false,
|
||||||
|
Bg: &db.BgConfig{
|
||||||
|
Url: "/imgs/bg.jpg",
|
||||||
|
Repeat: "repeat",
|
||||||
|
Position: "top",
|
||||||
|
Align: "scroll",
|
||||||
|
BgColor: "#000",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
siteCfg := &db.SiteConfig{
|
siteCfg := &db.SiteConfig{
|
||||||
ClientCfg: &db.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "quickshare",
|
SiteName: "quickshare",
|
||||||
SiteDesc: "simpel file sharing",
|
SiteDesc: "simpel file sharing",
|
||||||
|
AllowSetBg: true,
|
||||||
|
AutoTheme: true,
|
||||||
Bg: &db.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/imgs/bg.jpg",
|
Url: "/imgs/bg.jpg",
|
||||||
Repeat: "no-repeat",
|
Repeat: "no-repeat",
|
||||||
|
@ -28,7 +113,16 @@ func TestSiteStore(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err := store.SetClientCfg(siteCfg.ClientCfg)
|
oldSiteCfg, err := store.GetCfg()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
} else if !reflect.DeepEqual(oldSiteCfg, autoFilledCfg) {
|
||||||
|
oldSiteCfgBytes, _ := json.Marshal(oldSiteCfg)
|
||||||
|
autoFilledCfgBytes, _ := json.Marshal(autoFilledCfg)
|
||||||
|
t.Fatalf("not equal old \n%s\n filled\n%s\n", oldSiteCfgBytes, autoFilledCfgBytes)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = store.SetClientCfg(siteCfg.ClientCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -40,7 +134,7 @@ func TestSiteStore(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("Get/Set", func(t *testing.T) {
|
t.Run("Test Migrations", func(t *testing.T) {
|
||||||
rootPath, err := ioutil.TempDir("./", "quickshare_sitestore_test_")
|
rootPath, err := ioutil.TempDir("./", "quickshare_sitestore_test_")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -55,10 +149,14 @@ func TestSiteStore(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("fail to new kvstore", err)
|
t.Fatal("fail to new kvstore", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this config does not contain some fields
|
||||||
err = store.Init(&db.SiteConfig{
|
err = store.Init(&db.SiteConfig{
|
||||||
ClientCfg: &db.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "",
|
SiteName: "",
|
||||||
SiteDesc: "",
|
SiteDesc: "",
|
||||||
|
// AllowSetBg: true,
|
||||||
|
// AutoTheme: false,
|
||||||
Bg: &db.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/imgs/bg.jpg",
|
Url: "/imgs/bg.jpg",
|
||||||
Repeat: "repeat",
|
Repeat: "repeat",
|
||||||
|
@ -72,6 +170,6 @@ func TestSiteStore(t *testing.T) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
testSiteMethods(t, store)
|
testMigrations(t, store)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue