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
|
package gohtml
import (
"strings"
"testing"
)
func TestHTMLDocumentHTML(t *testing.T) {
s := `<!DOCTYPE html><html><head><title>This is a title.</title></head><body><p>Line1<br>Line2</p><br/></body></html><!-- aaa -->`
htmlDoc := parse(strings.NewReader(s))
actual := htmlDoc.html()
expected := `<!DOCTYPE html>
<html>
<head>
<title>
This is a title.
</title>
</head>
<body>
<p>
Line1
<br>
Line2
</p>
<br/>
</body>
</html>
<!-- aaa -->`
if actual != expected {
t.Errorf("Invalid result. [expected: %s][actual: %s]", expected, actual)
}
}
func TestHTMLDocumentAppend(t *testing.T) {
htmlDoc := &htmlDocument{}
textElem := &textElement{text: "TestText"}
htmlDoc.append(textElem)
if len(htmlDoc.elements) != 1 || htmlDoc.elements[0] != textElem {
t.Errorf("htmlDocument.elements is invalid. [expected: %+v][actual: %+v]", []element{textElem}, htmlDoc.elements)
}
}
func TestCondense(t *testing.T) {
Condense = true
defer func() {
Condense = false
}()
s := `<!DOCTYPE html><html><head><title>This is a title.</title></head><body><p>Line1<br>Line2</p><p>A Single Line</p><br/></body></html><!-- aaa -->`
htmlDoc := parse(strings.NewReader(s))
actual := htmlDoc.html()
expected := `<!DOCTYPE html>
<html>
<head>
<title>This is a title.</title>
</head>
<body>
<p>
Line1
<br>
Line2
</p>
<p>A Single Line</p>
<br/>
</body>
</html>
<!-- aaa -->`
if actual != expected {
t.Errorf("Invalid result. [expected: %s][actual: %s]", expected, actual)
}
}
|