-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxslt_test.go
120 lines (100 loc) · 2.17 KB
/
xslt_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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package xslt
import (
"bytes"
_ "embed"
"testing"
)
//go:embed testdata/document.xml
var document []byte
//go:embed testdata/style1.xsl
var style1 []byte
//go:embed testdata/style2.xsl
var style2 []byte
//go:embed testdata/result1.xml
var result1 []byte
//go:embed testdata/result2.xhtml
var result2 []byte
func TestNewStylesheet(t *testing.T) {
xs1, err := NewStylesheet(style1)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs1 == nil {
t.Errorf("xs1 = %v, want non-nil", xs1)
}
defer xs1.Close()
xs2, err := NewStylesheet(style2)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs2 == nil {
t.Errorf("xs2 = %v, want non-nil", xs2)
}
defer xs2.Close()
xs3, err := NewStylesheet(nil)
if err != ErrXSLParseFailure {
t.Errorf("err = %v; want %v", err, ErrXSLParseFailure)
}
if xs3 != nil {
t.Errorf("xs3 = %v, want %v", xs3, nil)
}
}
func TestStylesheetClose(t *testing.T) {
xs1, err := NewStylesheet(style1)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs1 == nil {
t.Errorf("xs1 = %v, want non-nil", xs1)
}
xs1.Close()
xs2 := Stylesheet{}
xs2.Close()
}
func TestStylesheetTransform(t *testing.T) {
xs1, err := NewStylesheet(style1)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs1 == nil {
t.Errorf("xs1 = %v, want non-nil", xs1)
}
defer xs1.Close()
res1, err := xs1.Transform(document)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if !bytes.Equal(result1, res1) {
t.FailNow()
}
xs2, err := NewStylesheet(style2)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs2 == nil {
t.Errorf("xs2 = %v, want non-nil", xs2)
}
defer xs2.Close()
res2, err := xs2.Transform(document)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if !bytes.Equal(result2, res2) {
t.FailNow()
}
xs3, err := NewStylesheet(style1)
if err != nil {
t.Errorf("err = %v; want %v", err, nil)
}
if xs3 == nil {
t.Errorf("xs3 = %v, want non-nil", xs3)
}
defer xs3.Close()
res3, err := xs3.Transform(nil)
if err != ErrXSLTFailure {
t.Errorf("err = %v; want %v", err, ErrXSLTFailure)
}
if res3 != nil {
t.Errorf("xs3 = %v, want %v", res3, nil)
}
}