File: dom_test.go

package info (click to toggle)
golang-github-masterzen-simplexml 0.0~git20190410.31eea30-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 88 kB
  • sloc: makefile: 2
file content (110 lines) | stat: -rw-r--r-- 2,670 bytes parent folder | download
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
package dom

import (
	"testing"

	. "github.com/google/go-cmp/cmp"
)

func TestEmptyDocument(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	if diff := Diff(doc.String(), "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}

func TestOneEmptyNode(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	root := CreateElement("root")
	doc.SetRoot(root)
	if diff := Diff(doc.String(), "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root/>\n"); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}

func TestMoreNodes(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	root := CreateElement("root")
	node1 := CreateElement("node1")
	root.AddChild(node1)
	subnode := CreateElement("sub")
	node1.AddChild(subnode)
	node2 := CreateElement("node2")
	root.AddChild(node2)
	doc.SetRoot(root)

	expected := `<?xml version="1.0" encoding="utf-8" ?>
<root>
  <node1>
    <sub/>
  </node1>
  <node2/>
</root>
`

	if diff := Diff(doc.String(), expected); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}

func TestAttributes(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	root := CreateElement("root")
	node1 := CreateElement("node1")
	node1.SetAttr("attr1", "pouet")
	root.AddChild(node1)
	doc.SetRoot(root)

	expected := `<?xml version="1.0" encoding="utf-8" ?>
<root>
  <node1 attr1="pouet"/>
</root>
`
	if diff := Diff(doc.String(), expected); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}

func TestContent(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	root := CreateElement("root")
	node1 := CreateElement("node1")
	node1.SetContent("this is a text content")
	root.AddChild(node1)
	doc.SetRoot(root)

	expected := `<?xml version="1.0" encoding="utf-8" ?>
<root>
  <node1>this is a text content</node1>
</root>
`
	if diff := Diff(doc.String(), expected); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}

func TestNamespace(t *testing.T) {
	doc := CreateDocument()
	doc.PrettyPrint = true
	root := CreateElement("root")
	root.DeclareNamespace(Namespace{Prefix: "a", Uri: "http://schemas.xmlsoap.org/ws/2004/08/addressing"})
	node1 := CreateElement("node1")
	root.AddChild(node1)
	node1.SetNamespace("a", "http://schemas.xmlsoap.org/ws/2004/08/addressing")
	node1.SetContent("this is a text content")
	doc.SetRoot(root)

	expected := `<?xml version="1.0" encoding="utf-8" ?>
<root xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">
  <a:node1>this is a text content</a:node1>
</root>
`
	if diff := Diff(doc.String(), expected); diff != "" {
		t.Fatalf("Unexpected output: %s", diff)
	}
}