| @@ -23,8 +23,8 @@ | |||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
| import unittest | import unittest | ||||
| from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, | |||||
| Tag, Template, Text, Wikilink) | |||||
| from mwparserfromhell.nodes import (Argument, Comment, ExternalLink, Heading, | |||||
| HTMLEntity, Tag, Template, Text, Wikilink) | |||||
| from mwparserfromhell.nodes.extras import Attribute, Parameter | from mwparserfromhell.nodes.extras import Attribute, Parameter | ||||
| from mwparserfromhell.parser import tokens | from mwparserfromhell.parser import tokens | ||||
| from mwparserfromhell.parser.builder import Builder | from mwparserfromhell.parser.builder import Builder | ||||
| @@ -150,6 +150,48 @@ class TestBuilder(TreeEqualityTestCase): | |||||
| for test, valid in tests: | for test, valid in tests: | ||||
| self.assertWikicodeEqual(valid, self.builder.build(test)) | self.assertWikicodeEqual(valid, self.builder.build(test)) | ||||
| def test_external_link(self): | |||||
| """tests for building ExternalLink nodes""" | |||||
| tests = [ | |||||
| ([tokens.ExternalLinkOpen(brackets=False), | |||||
| tokens.Text(text="http://example.com/"), | |||||
| tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example.com/"), | |||||
| brackets=False)])), | |||||
| ([tokens.ExternalLinkOpen(brackets=True), | |||||
| tokens.Text(text="http://example.com/"), | |||||
| tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example.com/"))])), | |||||
| ([tokens.ExternalLinkOpen(brackets=True), | |||||
| tokens.Text(text="http://example.com/"), | |||||
| tokens.ExternalLinkSeparator(), tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example.com/"), wrap([]))])), | |||||
| ([tokens.ExternalLinkOpen(brackets=True), | |||||
| tokens.Text(text="http://example.com/"), | |||||
| tokens.ExternalLinkSeparator(), tokens.Text(text="Example"), | |||||
| tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example.com/"), | |||||
| wraptext("Example"))])), | |||||
| ([tokens.ExternalLinkOpen(brackets=False), | |||||
| tokens.Text(text="http://example"), tokens.Text(text=".com/foo"), | |||||
| tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example", ".com/foo"), | |||||
| brackets=False)])), | |||||
| ([tokens.ExternalLinkOpen(brackets=True), | |||||
| tokens.Text(text="http://example"), tokens.Text(text=".com/foo"), | |||||
| tokens.ExternalLinkSeparator(), tokens.Text(text="Example"), | |||||
| tokens.Text(text=" Web Page"), tokens.ExternalLinkClose()], | |||||
| wrap([ExternalLink(wraptext("http://example", ".com/foo"), | |||||
| wraptext("Example", " Web Page"))])), | |||||
| ] | |||||
| for test, valid in tests: | |||||
| self.assertWikicodeEqual(valid, self.builder.build(test)) | |||||
| def test_html_entity(self): | def test_html_entity(self): | ||||
| """tests for building HTMLEntity nodes""" | """tests for building HTMLEntity nodes""" | ||||
| tests = [ | tests = [ | ||||