47 lines
983 B
Go
47 lines
983 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoadAccountSections(t *testing.T) {
|
|
d := t.TempDir()
|
|
p := filepath.Join(d, "chfs.ini")
|
|
content := `path=/srv/share
|
|
port=8080
|
|
[demo]
|
|
password=abc
|
|
rule.default=r
|
|
rule.none=secret|private
|
|
rule.r=docs
|
|
rule.r=public
|
|
rule.w=upload
|
|
rule.d=admin
|
|
[guest]
|
|
password=
|
|
rule.default=
|
|
rule.none=hidden
|
|
`
|
|
if err := os.WriteFile(p, []byte(content), 0600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
c, err := Load(p)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(c.Accounts) != 2 {
|
|
t.Fatalf("accounts=%d", len(c.Accounts))
|
|
}
|
|
if c.Accounts[0].Username != "demo" || c.Accounts[0].Default != "r" {
|
|
t.Fatalf("demo=%#v", c.Accounts[0])
|
|
}
|
|
if len(c.Accounts[0].Read) != 2 || c.Accounts[0].Read[0] != "docs" || c.Accounts[0].Read[1] != "public" {
|
|
t.Fatalf("read=%#v", c.Accounts[0].Read)
|
|
}
|
|
if len(c.Accounts[0].Write) != 1 || len(c.Accounts[0].Delete) != 1 || len(c.Accounts[0].None) != 2 {
|
|
t.Fatalf("rules=%#v", c.Accounts[0])
|
|
}
|
|
}
|