You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
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": "<"})),
|
|
'<p x="<"></p>');
|
|
});
|
|
|
|
test("double quotes inside attributes are escaped", function() {
|
|
assert.equal(
|
|
generateString(html.freshElement("p", {"x": '"'})),
|
|
'<p x="""></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();
|
|
}
|
|
|