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)
}
}
|