blob: d5350392f50b629c184cfd28e46b3a390abf8fc8 [file] [log] [blame]
Tilak Sharmad6ade0e2014-08-20 16:28:32 -07001package security
2
3import (
4 "bytes"
5 "reflect"
6 "testing"
7
8 "veyron2/security"
9)
10
11func TestLoadSaveIdentity(t *testing.T) {
12 id := security.FakePrivateID("test")
13
14 var buf bytes.Buffer
15 if err := SaveIdentity(&buf, id); err != nil {
16 t.Fatalf("Failed to save PrivateID %q: %v", id, err)
17 }
18
19 loadedID, err := LoadIdentity(&buf)
20 if err != nil {
21 t.Fatalf("Failed to load PrivateID: %v", err)
22 }
23 if !reflect.DeepEqual(loadedID, id) {
24 t.Fatalf("Got Identity %v, but want %v", loadedID, id)
25 }
26}
27
28func TestLoadSaveACL(t *testing.T) {
29 acl := security.ACL{}
Asim Shankar9f6db082014-08-27 16:44:03 -070030 acl.In = map[security.BlessingPattern]security.LabelSet{
31 "veyron/...": security.LabelSet(security.ReadLabel),
Tilak Sharmad6ade0e2014-08-20 16:28:32 -070032 "veyron/alice": security.LabelSet(security.ReadLabel | security.WriteLabel),
33 "veyron/bob": security.LabelSet(security.AdminLabel),
34 }
Asim Shankar9f6db082014-08-27 16:44:03 -070035 acl.NotIn = map[string]security.LabelSet{
Tilak Sharmad6ade0e2014-08-20 16:28:32 -070036 "veyron/che": security.LabelSet(security.ReadLabel),
37 }
38
39 var buf bytes.Buffer
40 if err := SaveACL(&buf, acl); err != nil {
41 t.Fatalf("Failed to save ACL %q: %v", acl, err)
42 }
43
44 loadedACL, err := LoadACL(&buf)
45 if err != nil {
46 t.Fatalf("Failed to load ACL: %v", err)
47 }
48 if !reflect.DeepEqual(loadedACL, acl) {
49 t.Fatalf("Got ACL %v, but want %v", loadedACL, acl)
50 }
51}