internal/library/org_test.go
32 lines · 784 bytes
1package library
2
3import (
4 "strings"
5 "testing"
6)
7
8func TestParseOrg(t *testing.T) {
9 src := "#+title: Tokyo: nights\n#+COVER: a.jpg\n\n#+begin_quote\nA /quiet/ week.\n#+end_quote\n"
10 kw, html, err := parseOrg([]byte(src), "album.org")
11 if err != nil {
12 t.Fatal(err)
13 }
14 if len(kw) != 2 || kw["title"] != "Tokyo: nights" || kw["cover"] != "a.jpg" {
15 t.Fatalf("keywords = %v", kw)
16 }
17 for _, want := range []string{"<blockquote>", "<em>quiet</em>"} {
18 if !strings.Contains(string(html), want) {
19 t.Errorf("html missing %q:\n%s", want, html)
20 }
21 }
22}
23
24func TestParseOrgKeywordsOnly(t *testing.T) {
25 kw, html, err := parseOrg([]byte("#+title: x\n\n"), "album.org")
26 if err != nil {
27 t.Fatal(err)
28 }
29 if kw["title"] != "x" || html != "" {
30 t.Fatalf("kw=%v html=%q", kw, html)
31 }
32}