forked from PlayTechnique/andrew
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpage_test.go
67 lines (51 loc) · 1.58 KB
/
page_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
package andrew
import (
"maps"
"testing"
"github.com/google/go-cmp/cmp"
)
func TestTitleDiscoveryReturnsErrorWhenNoTitleElementInPageContent(t *testing.T) {
_, err := titleFromHTMLTitleElement([]byte("snibble"))
if err.Error() != "no title element found" {
t.Fatalf("Expected error, received %v", err)
}
}
func TestTitleElementDiscoveredWhenPresentInPageContent(t *testing.T) {
expected := "my title"
received, err := titleFromHTMLTitleElement([]byte("<title>" + expected + "</title>"))
if err != nil {
t.Fatal(err)
}
if received != expected {
t.Fatal(cmp.Diff(expected, received))
}
}
func TestGetTitleReturnsPageFileNameWhenNoTitleInDocument(t *testing.T) {
received, err := getTitle("page title", []byte{})
if err != nil {
t.Fatal(err)
}
if received != "page title" {
t.Fatal(cmp.Diff("", received))
}
}
func TestOneMetaTagPopulatesATag(t *testing.T) {
expected := map[string]string{"andrew-publish-time": "2025-03-01"}
received, err := GetMetaElements([]byte("<meta name=andrew-publish-time content=2025-03-01>"))
if err != nil {
t.Fatal(err)
}
if !maps.Equal(expected, received) {
t.Fatal(cmp.Diff(expected, received))
}
}
func TestMultipleMetaTagsPopulatedWithExpectedElements(t *testing.T) {
expected := map[string]string{"andrew-publish-time": "2025-03-01", "andrew-roflcopter": "hippolol"}
received, err := GetMetaElements([]byte("<meta name=andrew-publish-time content=2025-03-01> <meta name=andrew-roflcopter content=hippolol>"))
if err != nil {
t.Fatal(err)
}
if !maps.Equal(expected, received) {
t.Fatal(cmp.Diff(expected, received))
}
}