-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalue_test.go
75 lines (70 loc) · 1.34 KB
/
value_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package brief_test
import (
"strings"
"testing"
"github.com/robbyriverside/brief"
)
func TestValueSpec(t *testing.T) {
tests := []struct {
Spec string
Elem, Name string
HasKey bool
}{
{
Spec: "foo.bar",
Elem: "foo",
Name: "bar",
HasKey: true,
},
{
Spec: "foo",
Elem: "foo",
Name: brief.NoKey,
HasKey: false,
},
{
Spec: "foo:bar",
Elem: "foo:bar",
Name: brief.NoKey,
HasKey: false,
},
}
for i, test := range tests {
spec := brief.NewValueSpec(test.Spec)
if spec.Elem != test.Elem || spec.Name != test.Name || spec.HasKey != test.HasKey {
t.Errorf("%d> failed Elem: %s != %s, Name: %s != %s, HasKey: %t != %t, ", i, spec.Elem, test.Elem, spec.Name, test.Name, spec.HasKey, test.HasKey)
}
}
}
func TestLookupValue(t *testing.T) {
tests := []struct {
Spec string
Value string
}{
{
Spec: "div",
Value: "main",
},
{
Spec: "div.class",
Value: "myblock",
},
{
Spec: "body.class",
Value: "mybody",
},
}
t.Logf("test0:\n%s\n", test0)
nodes, err := brief.Decode(strings.NewReader(test0), "tests")
if err != nil {
t.Fatal(err)
}
pnode := nodes[0].Find("p")
t.Logf("p: \n%s", pnode)
for i, test := range tests {
res := pnode.Lookup(test.Spec)
if res != test.Value {
t.Errorf("%d> failed %s != %s", i, test.Value, res)
}
}
}