21 lines
453 B
Go
21 lines
453 B
Go
package auth
|
|
|
|
import "testing"
|
|
|
|
func TestParseRules(t *testing.T) {
|
|
m, err := ParseRules([]string{"::r|admin:secret:rw:private:d"})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !m.Guest.Mask.HasRead() || m.Guest.Mask.HasWrite() {
|
|
t.Fatal("guest mask")
|
|
}
|
|
a := m.Accounts["admin"]
|
|
if a == nil || !a.Mask.HasWrite() || a.Mask.HasDelete() {
|
|
t.Fatal("admin mask")
|
|
}
|
|
if got := a.MaskFor("private/x"); !got.HasDelete() {
|
|
t.Fatalf("subrule=%v", got)
|
|
}
|
|
}
|