package org.zwobble.mammoth.tests.html; import org.junit.Test; import org.zwobble.mammoth.html.Html; import org.zwobble.mammoth.html.HtmlNode; import static org.junit.Assert.assertEquals; import static org.zwobble.mammoth.util.MammothLists.list; import static org.zwobble.mammoth.util.MammothMaps.map; public class HtmlWriteTests { @Test public void textNodesAreWrittenAsPlainText() { assertEquals( "Dark Blue", write(Html.text("Dark Blue"))); } @Test public void textNodesAreHtmlEscaped() { assertEquals( "><&", write(Html.text("><&"))); } @Test public void doubleQuotesInTextNodesArentHtmlEscaped() { assertEquals( "><&\"", write(Html.text("><&\""))); } @Test public void canWriteSelfClosingElement() { assertEquals( "
", write(Html.selfClosingElement("br"))); } @Test public void canWriteElementWithNoChildren() { assertEquals( "

", write(Html.element("p"))); } @Test public void canWriteElementWithChildren() { assertEquals( "

", write(Html.element("div", list( Html.element("p"), Html.element("ul"))))); } @Test public void canWriteElementWithAttributes() { assertEquals( "", write(Html.element("a", map("class", "external", "href", "http://example.com")))); } @Test public void attributeValuesAreEscaped() { assertEquals( "", write(Html.element("a", map("href", "><&\"")))); } private String write(HtmlNode node) { return Html.write(list(node)); } }