diff --git a/tests/test_builder.py b/tests/test_builder.py
index 175f62a..c987820 100644
--- a/tests/test_builder.py
+++ b/tests/test_builder.py
@@ -201,11 +201,108 @@ class TestBuilder(TreeEqualityTestCase):
def test_tag(self):
"""tests for building Tag nodes"""
tests = [
+ #
([tokens.TagOpenOpen(), tokens.Text(text="ref"),
tokens.TagCloseOpen(padding=""), tokens.TagOpenClose(),
tokens.Text(text="ref"), tokens.TagCloseClose()],
- wrap([Tag(wraptext("ref"), wrap([]), [], True, False, "",
- wraptext("ref"))])),
+ wrap([Tag(wraptext("ref"), wrap([]),
+ closing_tag=wraptext("ref"))])),
+
+ #
+ ([tokens.TagOpenOpen(), tokens.Text(text="ref"),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="name"), tokens.TagCloseOpen(padding=""),
+ tokens.TagOpenClose(), tokens.Text(text="ref"),
+ tokens.TagCloseClose()],
+ wrap([Tag(wraptext("ref"), wrap([]),
+ attrs=[Attribute(wraptext("name"))])])),
+
+ #
+ ([tokens.TagOpenOpen(), tokens.Text(text="ref"),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="name"), tokens.TagAttrEquals(),
+ tokens.TagAttrQuote(), tokens.Text(text="abc"),
+ tokens.TagCloseSelfclose(padding=" ")],
+ wrap([Tag(wraptext("ref"),
+ attrs=[Attribute(wraptext("name"), wraptext("abc"))],
+ self_closing=True, padding=" ")])),
+
+ #
+ ([tokens.TagOpenOpen(), tokens.Text(text="br"),
+ tokens.TagCloseSelfclose(padding="")],
+ wrap([Tag(wraptext("br"), self_closing=True)])),
+
+ #
+ ([tokens.TagOpenOpen(), tokens.Text(text="li"),
+ tokens.TagCloseSelfclose(padding="", implicit=True)],
+ wrap([Tag(wraptext("li"), self_closing=True, implicit=True)])),
+
+ #
+ ([tokens.TagOpenOpen(invalid=True), tokens.Text(text="br"),
+ tokens.TagCloseSelfclose(padding="", implicit=True)],
+ wrap([Tag(wraptext("br"), self_closing=True, invalid=True,
+ implicit=True)])),
+
+ #
+ ([tokens.TagOpenOpen(invalid=True), tokens.Text(text="br"),
+ tokens.TagCloseSelfclose(padding="")],
+ wrap([Tag(wraptext("br"), self_closing=True, invalid=True)])),
+
+ # [[[Source]]]
+ ([tokens.TagOpenOpen(), tokens.Text(text="ref"),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="name"), tokens.TagAttrEquals(),
+ tokens.TemplateOpen(), tokens.Text(text="abc"),
+ tokens.TemplateClose(),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="foo"), tokens.TagAttrEquals(),
+ tokens.TagAttrQuote(), tokens.Text(text="bar "),
+ tokens.TemplateOpen(), tokens.Text(text="baz"),
+ tokens.TemplateClose(),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="abc"), tokens.TagAttrEquals(),
+ tokens.TemplateOpen(), tokens.Text(text="de"),
+ tokens.TemplateClose(), tokens.Text(text="f"),
+ tokens.TagAttrStart(pad_first=" ", pad_before_eq="",
+ pad_after_eq=""),
+ tokens.Text(text="ghi"), tokens.TagAttrEquals(),
+ tokens.Text(text="j"), tokens.TemplateOpen(),
+ tokens.Text(text="k"), tokens.TemplateClose(),
+ tokens.TemplateOpen(), tokens.Text(text="l"),
+ tokens.TemplateClose(),
+ tokens.TagAttrStart(pad_first=" \n ", pad_before_eq=" ",
+ pad_after_eq=" "),
+ tokens.Text(text="mno"), tokens.TagAttrEquals(),
+ tokens.TagAttrQuote(), tokens.TemplateOpen(),
+ tokens.Text(text="p"), tokens.TemplateClose(),
+ tokens.Text(text=" "), tokens.WikilinkOpen(),
+ tokens.Text(text="q"), tokens.WikilinkClose(),
+ tokens.Text(text=" "), tokens.TemplateOpen(),
+ tokens.Text(text="r"), tokens.TemplateClose(),
+ tokens.TagCloseOpen(padding=""), tokens.WikilinkOpen(),
+ tokens.Text(text="Source"), tokens.WikilinkClose(),
+ tokens.TagOpenClose(), tokens.Text(text="ref"),
+ tokens.TagCloseClose()],
+ wrap([Tag(wraptext("ref"), wrap([Wikilink(wraptext("Source"))]), [
+ Attribute(wraptext("name"),
+ wrap([Template(wraptext("abc"))]), False),
+ Attribute(wraptext("foo"), wrap([Text("bar "),
+ Template(wraptext("baz"))]), pad_first=" "),
+ Attribute(wraptext("abc"), wrap([Template(wraptext("de")),
+ Text("f")]), False),
+ Attribute(wraptext("ghi"), wrap([Text("j"),
+ Template(wraptext("k")),
+ Template(wraptext("l"))]), False),
+ Attribute(wraptext("mno"), wrap([Template(wraptext("p")),
+ Text(" "), Wikilink(wraptext("q")), Text(" "),
+ Template(wraptext("r"))]), True, " \n ", " ",
+ " ")])])),
]
for test, valid in tests:
self.assertWikicodeEqual(valid, self.builder.build(test))