This repository has been archived on 2020-11-14. You can view files and clone it, but cannot push or open issues or pull requests.
go-gemtext/render_test.go

57 lines
1.8 KiB
Go

package gemtext
import "testing"
type PrefixCase struct {
Prefix string
Link string
Want string
}
func TestAddPrefix(t *testing.T) {
cases := []PrefixCase{
PrefixCase{Prefix: "", Link: "/test/", Want: "/test"},
PrefixCase{Prefix:"https:itwont.work/", Link: "/test/stuff.gmi", Want: "https:itwont.work/test/stuff.gmi"},
PrefixCase{Prefix:"https:itwont.work/", Link: "test/stuff.gmi", Want: "test/stuff.gmi"},
PrefixCase{Prefix:"", Link: "", Want: ""},
PrefixCase{Prefix:"https:itwont.work/", Link: "", Want: ""},
}
for _, c := range cases {
got := addPrefix(c.Prefix,c.Link)
if got != c.Want {
t.Errorf("Case %#v, Got %#v", c, got)
}
}
}
type LineRenderCase struct {
In GemtextObject
Want string
}
func TestRenderHeading(t *testing.T) {
cases := []LineRenderCase{
LineRenderCase{In: GemtextObject{Type: HEADING, Level: 1, Text: "Hello"}, Want:"# Hello"}, // I'm not adding a Literal to these cases.
LineRenderCase{In: GemtextObject{Type: HEADING, Level: 2, Text: ""}, Want:"## "},
LineRenderCase{In: GemtextObject{Type: HEADING, Level: 2, Text: "Hello"}, Want:"## Hello"},
LineRenderCase{In: GemtextObject{Type: HEADING, Level: 3, Text: "This contains spaces"}, Want:"### This contains spaces"},
}
for _, c := range cases {
got, _ := RenderHeading(c.In)
if got != c.Want {
t.Errorf("Case %#v, Got %#v", c, got)
}
}
}
func TestRenderHTML(t *testing.T) {
out, _ := RenderHTML(&testdocumenttree)
want := "<h1>Document</h1><p>This is paragraph text &amp; It exists</p><a href=\"https://example.com\">example.com</a><br /><ul><li>List Item 1</li><li>List Item 2</li></ul><pre>this should be preformatted.\n=&gt; https://example.com Not a link\n</pre><ul><li>A single list item</li></ul><pre>one line of pre\n</pre><pre></pre><blockquote>Something\n- someone\n</blockquote>"
if out != want {
t.Errorf("Got %#v want %#v", out, want)
}
}