-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathhaml_nesting_test.go
31 lines (27 loc) · 1.48 KB
/
haml_nesting_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
package gohaml
import "testing"
var nestingTests = []testcase{
testcase{"%tag1\n %tag2", "<tag1>\n <tag2 />\n</tag1>"},
testcase{"%tag1\n%tag2", "<tag1 />\n<tag2 />"},
testcase{"%tag1\n%tag2\n%tag3", "<tag1 />\n<tag2 />\n<tag3 />"},
testcase{"%tag1\n %tag2\n %tag3", "<tag1>\n\t<tag2 />\n\t<tag3 />\n</tag1>"},
testcase{"%tag1\n %tag2\n %tag3", "<tag1>\n\t<tag2>\n\t\t<tag3 />\n\t</tag2>\n</tag1>"},
testcase{"%tag1\n %tag2\n %tag3 tag content", "<tag1>\n\t<tag2>\n\t\t<tag3>tag content</tag3>\n\t</tag2>\n</tag1>"},
testcase{"%tag1\n %tag2\n %tag3 tag content\n %tag4", "<tag1>\n\t<tag2>\n\t\t<tag3>tag content</tag3>\n\t\t<tag4 />\n\t</tag2>\n</tag1>"},
testcase{"%tag1\n %tag2\n %tag3\n %tag4 tag content", "<tag1>\n\t<tag2>\n\t\t<tag3 />\n\t\t<tag4>tag content</tag4>\n\t</tag2>\n</tag1>"},
testcase{"%tag1\n %tag2\n %tag3\n %tag4", "<tag1>\n\t<tag2>\n\t\t<tag3 />\n\t</tag2>\n\t<tag4 />\n</tag1>"},
testcase{"%tag1\n %tag4 tag content\n %tag2#tag2Id.class2.class3\n %tag3", "<tag1>\n\t<tag4>tag content</tag4>\n\t<tag2 id=\"tag2Id\" class=\"class2 class3\">\n\t\t<tag3 />\n\t</tag2>\n</tag1>"},
}
func TestNesting(t *testing.T) {
for i, io := range nestingTests {
scope := make(map[string]interface{})
scope["key1"] = "value1"
scope["key2"] = "value2"
engine, _ := NewEngine(io.input)
output := engine.Render(scope)
if output != io.expected {
t.Errorf("(%d)Input %q\nexpected %q\ngot %q", i, io.input, io.expected, output)
return
}
}
}