aboutsummaryrefslogtreecommitdiff
path: root/test/html/write.tests.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-03 19:19:21 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-03 19:20:00 +0100
commit0b56dfce42c3944cce47e284608e6806f4c839c3 (patch)
tree5f96f9c2908f1c5b00a7192e71d4c192abd7cf47 /test/html/write.tests.js
parent627c4a755395e313234bdb1914d168392006c483 (diff)
Move tests to test for easier Mocha usage
Diffstat (limited to 'test/html/write.tests.js')
-rw-r--r--test/html/write.tests.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/html/write.tests.js b/test/html/write.tests.js
new file mode 100644
index 0000000..531995f
--- /dev/null
+++ b/test/html/write.tests.js
@@ -0,0 +1,44 @@
+var assert = require("assert");
+
+var test = require("../testing").test;
+var html = require("../../lib/html");
+var writers = require("../../lib/writers");
+
+
+describe("HTML write", function() {
+ test("text is HTML escaped", function() {
+ assert.equal(
+ generateString(html.text("<>&")),
+ "&lt;&gt;&amp;");
+ });
+
+ test("double quotes outside of attributes are not escaped", function() {
+ assert.equal(
+ generateString(html.text('"')),
+ '"');
+ });
+
+ test("element attributes are HTML escaped", function() {
+ assert.equal(
+ generateString(html.freshElement("p", {"x": "<"})),
+ '<p x="&lt;"></p>');
+ });
+
+ test("double quotes inside attributes are escaped", function() {
+ assert.equal(
+ generateString(html.freshElement("p", {"x": '"'})),
+ '<p x="&quot;"></p>');
+ });
+
+ test("element children are written", function() {
+ assert.equal(
+ generateString(html.freshElement("p", {}, [html.text("Hello")])),
+ '<p>Hello</p>');
+ });
+});
+
+function generateString(node) {
+ var writer = writers.writer();
+ html.write(writer, [node]);
+ return writer.asString();
+}