aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-14 10:59:45 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-14 10:59:45 +0000
commit680d29eb63b3f083cbca8b5be367394006f71fb3 (patch)
treebd3fa7c3bae8298e08e630c6cc8ad51bc152809f /src
parent5c8c5d57d37f4411630828e3c658bb23e10e207b (diff)
Escape HTML text nodes
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/html/HtmlTextNode.java2
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/html/HtmlWriteTests.java28
2 files changed, 29 insertions, 1 deletions
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("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;"));
}
}
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(
+ "&gt;&lt;&amp;",
+ write(Html.text("><&")));
+ }
+
+ private String write(HtmlNode node) {
+ return Html.write(list(node));
+ }
+}