grim/hgkeeper
Clone
Summary
Browse
Changes
Graph
Start of hgweb support
feature/hgweb
2019-09-17, Gary Kramlich
45b57bfc4382
Start of hgweb support
package
access
import
(
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func
TestAccessControlLoadSimple
(
t
*
testing
.
T
)
{
data
:=
`
global:
init:
- admins
read:
- public
groups:
admins:
- root
patterns:
hgkeeper:
read:
- admins
`
a
:=
New
(
""
)
err
:=
a
.
load
(
strings
.
NewReader
(
data
))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
a
)
assert
.
Equal
(
t
,
Acl
{
Init
:
[]
string
{
"admins"
},
Read
:
[]
string
{
"public"
},
Write
:
nil
,
},
a
.
global
,
)
assert
.
Equal
(
t
,
map
[
string
][]
string
{
"admins"
:
[]
string
{
"root"
},
},
a
.
groups
,
)
assert
.
Equal
(
t
,
Acl
{
Init
:
nil
,
Read
:
[]
string
{
"admins"
},
Write
:
nil
,
},
a
.
patterns
[
"hgkeeper"
],
)
assert
.
ElementsMatch
(
t
,
[]
string
{
"root"
,
"public"
},
a
.
findUsers
(),
)
}
func
TestAccessFindUsersComplicated
(
t
*
testing
.
T
)
{
data
:=
`
global:
init:
- admins
read:
- public
groups:
admins:
- foo
- bar
devs:
- baz
- qux
managers:
- admins
- devs
- quux
patterns:
hgkeeper/:
write:
- admins
read:
- admins
project1/:
read:
- foobar
- devs
- admins
`
a
:=
New
(
""
)
err
:=
a
.
load
(
strings
.
NewReader
(
data
))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
a
)
assert
.
ElementsMatch
(
t
,
[]
string
{
"public"
,
"foo"
,
"foobar"
,
"bar"
,
"baz"
,
"qux"
,
"quux"
},
a
.
findUsers
(),
)
}