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}