var assert = require("assert"); var test = require("../test")(module); var html = require("../../lib/html"); var writers = require("../../lib/writers"); test("text is HTML escaped", function() { assert.equal( generateString(html.text("<>&")), "<>&"); }); 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": "<"})), '

'); }); test("double quotes inside attributes are escaped", function() { assert.equal( generateString(html.freshElement("p", {"x": '"'})), '

'); }); test("element children are written", function() { assert.equal( generateString(html.freshElement("p", {}, [html.text("Hello")])), '

Hello

'); }); function generateString(node) { var writer = writers.writer(); html.write(writer, [node]); return writer.asString(); }