diff --git a/lexer_test.go b/lexer_test.go index cb19e16..8c0fa3e 100644 --- a/lexer_test.go +++ b/lexer_test.go @@ -16,26 +16,67 @@ func Test_Lexer(t *testing.T) { { name: "wikilink", in: "[[wikilink]]", expected: []wikilink.Item{ {Typ: wikilink.ItemOpenLink, Val: "[["}, - {Typ: wikilink.ItemText, Val: "wikilink"}, + {Typ: wikilink.ItemIdent, Val: "wikilink"}, {Typ: wikilink.ItemCloseLink, Val: "]]"}, }, }, { name: "wikilink|display name", in: "[[wikilink|display name]]", expected: []wikilink.Item{ {Typ: wikilink.ItemOpenLink, Val: "[["}, - {Typ: wikilink.ItemText, Val: "wikilink"}, + {Typ: wikilink.ItemIdent, Val: "wikilink"}, {Typ: wikilink.ItemAlias, Val: "|"}, - {Typ: wikilink.ItemText, Val: "display name"}, + {Typ: wikilink.ItemIdent, Val: "display name"}, + {Typ: wikilink.ItemCloseLink, Val: "]]"}, + }, + }, + { + name: "wikilink|display name|second pipe", in: "[[wikilink|display name|second pipe]]", expected: []wikilink.Item{ + {Typ: wikilink.ItemOpenLink, Val: "[["}, + {Typ: wikilink.ItemIdent, Val: "wikilink"}, + {Typ: wikilink.ItemAlias, Val: "|"}, + {Typ: wikilink.ItemIdent, Val: "display name"}, + {Typ: wikilink.ItemAlias, Val: "|"}, + {Typ: wikilink.ItemIdent, Val: "second pipe"}, + {Typ: wikilink.ItemCloseLink, Val: "]]"}, + }, + }, + { + name: "wikilink with numeric alias|420|second pipe", in: "[[wikilink|420|second pipe]]", expected: []wikilink.Item{ + {Typ: wikilink.ItemOpenLink, Val: "[["}, + {Typ: wikilink.ItemIdent, Val: "wikilink"}, + {Typ: wikilink.ItemAlias, Val: "|"}, + {Typ: wikilink.ItemIdent, Val: "420"}, + {Typ: wikilink.ItemAlias, Val: "|"}, + {Typ: wikilink.ItemIdent, Val: "second pipe"}, + {Typ: wikilink.ItemCloseLink, Val: "]]"}, + }, + }, + { + name: "wikilink with spaces in filename", in: "[[wikilink spaces]]", expected: []wikilink.Item{ + {Typ: wikilink.ItemOpenLink, Val: "[["}, + {Typ: wikilink.ItemIdent, Val: "wikilink spaces"}, + {Typ: wikilink.ItemCloseLink, Val: "]]"}, + }, + }, + { + name: "#heading", in: "[[#heading]]", expected: []wikilink.Item{ + {Typ: wikilink.ItemOpenLink, Val: "[["}, + {Typ: wikilink.ItemHeading, Val: "#"}, + {Typ: wikilink.ItemIdent, Val: "heading"}, + {Typ: wikilink.ItemCloseLink, Val: "]]"}, + }, + }, + { + name: "wikilink#heading", in: "[[wikilink#heading]]", expected: []wikilink.Item{ + {Typ: wikilink.ItemOpenLink, Val: "[["}, + {Typ: wikilink.ItemIdent, Val: "wikilink"}, + {Typ: wikilink.ItemHeading, Val: "#"}, + {Typ: wikilink.ItemIdent, Val: "heading"}, {Typ: wikilink.ItemCloseLink, Val: "]]"}, }, }, - // {name: "", in: "", expected: []wikilink.ItemType{wikilink.ItemOpenLink, wikilink.ItemText, wikilink.ItemAlias, wikilink.ItemText, wikilink.ItemCloseLink}}, /* - {name: "wikilink|display name|second pipe", in: "[[wikilink|display name|second pipe]]", expected: []wikilink.ItemType{}}, - {name: "wikilink with numeric alias|420|second pipe", in: "[[wikilink|420|second pipe]]", expected: []wikilink.ItemType{}}, - {name: "wikilink with spaces in filename", in: "[[wikilink spaces]]", expected: []wikilink.ItemType{}}, - {name: "#heading", in: "[[#heading]]", expected: []wikilink.ItemType{}}, - {name: "wikilink#heading", in: "[[wikilink#heading]]", expected: []wikilink.ItemType{}}, + {name: "", in: "", expected: []wikilink.ItemType{}}, {name: "wikilink#heading|display name", in: "[[wikilink#heading|display name]]", expected: []wikilink.ItemType{}}, {name: "wikilink#heading|display name|second pipe", in: "[[wikilink#heading|display name|second pipe]]", expected: []wikilink.ItemType{}}, {name: "wikilink with numeric aliases#heading|420|display name", in: "[[wikilink#heading|420|second pipe]]", expected: []wikilink.ItemType{}}, @@ -55,12 +96,12 @@ func Test_Lexer(t *testing.T) { for _, e := range tc.expected { n := l.NextItem() if e.Typ != n.Typ { - t.Logf("expected Type %s, received %s with raw value %q", e.String(), n, n.Val) + t.Logf("expected Type %s, received %s", e.Typ.String(), n.Typ.String()) t.Fail() } if e.Val != n.Val { - t.Logf("expected Value %s, received %s with raw value %q", e.String(), n, n.Val) + t.Logf("expected Value %q, received %q", e.Val, n.Val) t.Fail() } }