Skip to content

Commit 401e6ae

Browse files
committed
And more tests
1 parent bd86975 commit 401e6ae

File tree

3 files changed

+79
-18
lines changed

3 files changed

+79
-18
lines changed

acls_test.go

Lines changed: 52 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ import (
55
)
66

77
func (s *Suite) TestWrongPath(c *check.C) {
8-
err := h.LoadPolicy("asdfg")
8+
err := h.LoadAclPolicy("asdfg")
99
c.Assert(err, check.NotNil)
1010
}
1111

1212
func (s *Suite) TestBrokenHuJson(c *check.C) {
13-
err := h.LoadPolicy("./tests/acls/broken.hujson")
13+
err := h.LoadAclPolicy("./tests/acls/broken.hujson")
1414
c.Assert(err, check.NotNil)
1515

1616
}
1717

1818
func (s *Suite) TestInvalidPolicyHuson(c *check.C) {
19-
err := h.LoadPolicy("./tests/acls/invalid.hujson")
19+
err := h.LoadAclPolicy("./tests/acls/invalid.hujson")
2020
c.Assert(err, check.NotNil)
2121
c.Assert(err, check.Equals, errorEmptyPolicy)
2222
}
@@ -36,21 +36,21 @@ func (s *Suite) TestParseInvalidCIDR(c *check.C) {
3636
}
3737

3838
func (s *Suite) TestCheckLoaded(c *check.C) {
39-
err := h.LoadPolicy("./tests/acls/acl_policy_1.hujson")
39+
err := h.LoadAclPolicy("./tests/acls/acl_policy_1.hujson")
4040
c.Assert(err, check.IsNil)
4141
c.Assert(h.aclPolicy, check.NotNil)
4242
}
4343

4444
func (s *Suite) TestValidCheckParsedHosts(c *check.C) {
45-
err := h.LoadPolicy("./tests/acls/acl_policy_1.hujson")
45+
err := h.LoadAclPolicy("./tests/acls/acl_policy_1.hujson")
4646
c.Assert(err, check.IsNil)
4747
c.Assert(h.aclPolicy, check.NotNil)
4848
c.Assert(h.aclPolicy.IsZero(), check.Equals, false)
4949
c.Assert(h.aclPolicy.Hosts, check.HasLen, 2)
5050
}
5151

5252
func (s *Suite) TestRuleInvalidGeneration(c *check.C) {
53-
err := h.LoadPolicy("./tests/acls/acl_policy_invalid.hujson")
53+
err := h.LoadAclPolicy("./tests/acls/acl_policy_invalid.hujson")
5454
c.Assert(err, check.IsNil)
5555

5656
rules, err := h.generateACLRules()
@@ -59,7 +59,7 @@ func (s *Suite) TestRuleInvalidGeneration(c *check.C) {
5959
}
6060

6161
func (s *Suite) TestBasicRule(c *check.C) {
62-
err := h.LoadPolicy("./tests/acls/acl_policy_basic_1.hujson")
62+
err := h.LoadAclPolicy("./tests/acls/acl_policy_basic_1.hujson")
6363
c.Assert(err, check.IsNil)
6464

6565
rules, err := h.generateACLRules()
@@ -68,7 +68,7 @@ func (s *Suite) TestBasicRule(c *check.C) {
6868
}
6969

7070
func (s *Suite) TestPortRange(c *check.C) {
71-
err := h.LoadPolicy("./tests/acls/acl_policy_basic_range.hujson")
71+
err := h.LoadAclPolicy("./tests/acls/acl_policy_basic_range.hujson")
7272
c.Assert(err, check.IsNil)
7373

7474
rules, err := h.generateACLRules()
@@ -82,7 +82,7 @@ func (s *Suite) TestPortRange(c *check.C) {
8282
}
8383

8484
func (s *Suite) TestPortWildcard(c *check.C) {
85-
err := h.LoadPolicy("./tests/acls/acl_policy_basic_wildcards.hujson")
85+
err := h.LoadAclPolicy("./tests/acls/acl_policy_basic_wildcards.hujson")
8686
c.Assert(err, check.IsNil)
8787

8888
rules, err := h.generateACLRules()
@@ -126,7 +126,7 @@ func (s *Suite) TestPortNamespace(c *check.C) {
126126
}
127127
db.Save(&m)
128128

129-
err = h.LoadPolicy("./tests/acls/acl_policy_basic_namespace_as_user.hujson")
129+
err = h.LoadAclPolicy("./tests/acls/acl_policy_basic_namespace_as_user.hujson")
130130
c.Assert(err, check.IsNil)
131131

132132
rules, err := h.generateACLRules()
@@ -142,12 +142,47 @@ func (s *Suite) TestPortNamespace(c *check.C) {
142142
c.Assert((*rules)[0].SrcIPs[0], check.Equals, ip.String())
143143
}
144144

145-
// func (s *Suite) TestRuleGeneration(c *check.C) {
146-
// err := h.LoadPolicy("./tests/acls/acl_policy_1.hujson")
147-
// c.Assert(err, check.IsNil)
145+
func (s *Suite) TestPortGroup(c *check.C) {
146+
n, err := h.CreateNamespace("testnamespace")
147+
c.Assert(err, check.IsNil)
148+
149+
pak, err := h.CreatePreAuthKey(n.Name, false, false, nil)
150+
c.Assert(err, check.IsNil)
151+
152+
db, err := h.db()
153+
if err != nil {
154+
c.Fatal(err)
155+
}
156+
157+
_, err = h.GetMachine("testnamespace", "testmachine")
158+
c.Assert(err, check.NotNil)
159+
ip, _ := h.getAvailableIP()
160+
m := Machine{
161+
ID: 0,
162+
MachineKey: "foo",
163+
NodeKey: "bar",
164+
DiscoKey: "faa",
165+
Name: "testmachine",
166+
NamespaceID: n.ID,
167+
Registered: true,
168+
RegisterMethod: "authKey",
169+
IPAddress: ip.String(),
170+
AuthKeyID: uint(pak.ID),
171+
}
172+
db.Save(&m)
148173

149-
// rules, err := h.generateACLRules()
150-
// c.Assert(err, check.IsNil)
151-
// c.Assert(rules, check.NotNil)
174+
err = h.LoadAclPolicy("./tests/acls/acl_policy_basic_groups.hujson")
175+
c.Assert(err, check.IsNil)
176+
177+
rules, err := h.generateACLRules()
178+
c.Assert(err, check.IsNil)
179+
c.Assert(rules, check.NotNil)
152180

153-
// }
181+
c.Assert(*rules, check.HasLen, 1)
182+
c.Assert((*rules)[0].DstPorts, check.HasLen, 1)
183+
c.Assert((*rules)[0].DstPorts[0].Ports.First, check.Equals, uint16(0))
184+
c.Assert((*rules)[0].DstPorts[0].Ports.Last, check.Equals, uint16(65535))
185+
c.Assert((*rules)[0].SrcIPs, check.HasLen, 1)
186+
c.Assert((*rules)[0].SrcIPs[0], check.Not(check.Equals), "not an ip")
187+
c.Assert((*rules)[0].SrcIPs[0], check.Equals, ip.String())
188+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// This ACL is used to test group expansion
2+
3+
{
4+
"Groups": {
5+
"group:example": [
6+
"testnamespace",
7+
],
8+
},
9+
10+
"Hosts": {
11+
"host-1": "100.100.100.100",
12+
"subnet-1": "100.100.101.100/24",
13+
},
14+
15+
"ACLs": [
16+
{
17+
"Action": "accept",
18+
"Users": [
19+
"group:example",
20+
],
21+
"Ports": [
22+
"host-1:*",
23+
],
24+
},
25+
],
26+
}

tests/acls/acl_policy_basic_namespace_as_user.hujson

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// This ACL is used to test wildcards
1+
// This ACL is used to test namespace expansion
22

33
{
44
"Hosts": {

0 commit comments

Comments
 (0)