write.tests.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var assert = require("assert");
  2. var test = require("../test")(module);
  3. var html = require("../../lib/html");
  4. var writers = require("../../lib/writers");
  5. test("text is HTML escaped", function() {
  6. assert.equal(
  7. generateString(html.text("<>&")),
  8. "&lt;&gt;&amp;");
  9. });
  10. test("double quotes outside of attributes are not escaped", function() {
  11. assert.equal(
  12. generateString(html.text('"')),
  13. '"');
  14. });
  15. test("element attributes are HTML escaped", function() {
  16. assert.equal(
  17. generateString(html.freshElement("p", {"x": "<"})),
  18. '<p x="&lt;"></p>');
  19. });
  20. test("double quotes inside attributes are escaped", function() {
  21. assert.equal(
  22. generateString(html.freshElement("p", {"x": '"'})),
  23. '<p x="&quot;"></p>');
  24. });
  25. test("element children are written", function() {
  26. assert.equal(
  27. generateString(html.freshElement("p", {}, [html.text("Hello")])),
  28. '<p>Hello</p>');
  29. });
  30. function generateString(node) {
  31. var writer = writers.writer();
  32. html.write(writer, [node]);
  33. return writer.asString();
  34. }