48 lines
1.3 KiB
Go
48 lines
1.3 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)
|
||
|
}
|
||
|
}
|
||
|
}
|