From 680d29eb63b3f083cbca8b5be367394006f71fb3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 14 Feb 2016 10:59:45 +0000 Subject: Escape HTML text nodes --- .../org/zwobble/mammoth/html/HtmlTextNode.java | 2 +- .../zwobble/mammoth/tests/html/HtmlWriteTests.java | 28 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/zwobble/mammoth/tests/html/HtmlWriteTests.java (limited to 'src') diff --git a/src/main/java/org/zwobble/mammoth/html/HtmlTextNode.java b/src/main/java/org/zwobble/mammoth/html/HtmlTextNode.java index 2c3a7c2..c6d02ec 100644 --- a/src/main/java/org/zwobble/mammoth/html/HtmlTextNode.java +++ b/src/main/java/org/zwobble/mammoth/html/HtmlTextNode.java @@ -9,6 +9,6 @@ public class HtmlTextNode implements HtmlNode { @Override public void write(StringBuilder builder) { - builder.append(value); + builder.append(value.replace("&", "&").replace("<", "<").replace(">", ">")); } } diff --git a/src/test/java/org/zwobble/mammoth/tests/html/HtmlWriteTests.java b/src/test/java/org/zwobble/mammoth/tests/html/HtmlWriteTests.java new file mode 100644 index 0000000..9ce869d --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/html/HtmlWriteTests.java @@ -0,0 +1,28 @@ +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; + +public class HtmlWriteTests { + @Test + public void textNodesAreWrittenAsPlainText() { + assertEquals( + "Dark Blue", + write(Html.text("Dark Blue"))); + } + + @Test + public void textNodesAreHtmlEscaped() { + assertEquals( + "><&", + write(Html.text("><&"))); + } + + private String write(HtmlNode node) { + return Html.write(list(node)); + } +} -- cgit v1.2.3