From b2ccfa5cc2cd4d7f8f80f0555e2586387375a98e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 4 Feb 2015 18:41:12 +0000 Subject: Move writers into a separate directory --- tests/writers/html-writer.tests.js | 106 +++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/writers/html-writer.tests.js (limited to 'tests/writers/html-writer.tests.js') diff --git a/tests/writers/html-writer.tests.js b/tests/writers/html-writer.tests.js new file mode 100644 index 0000000..5e398e8 --- /dev/null +++ b/tests/writers/html-writer.tests.js @@ -0,0 +1,106 @@ +var assert = require("assert"); +var test = require("../testing").test; + +var htmlWriter = require("../../lib/writers/html-writer"); + + +describe('html-writer', function() { + test('can generate simple paragraph', function() { + var writer = htmlWriter.writer(); + writer.open("p"); + writer.text("Hello"); + writer.close("p"); + return assert.equal(writer.asString(), "

Hello

"); + }); + + test('can nest elements', function() { + var writer = htmlWriter.writer(); + writer.open("ul"); + writer.open("li"); + writer.text("One"); + writer.close("li"); + writer.open("li"); + writer.text("Two"); + writer.close("li"); + writer.close("ul"); + return assert.equal(writer.asString(), ""); + }); + + test('indents text if prettyPrint is true', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.text("One"); + writer.close("p"); + writer.open("p"); + writer.text("Two"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n One\n

\n

\n Two\n

"); + }); + + test('indents element if prettyPrint is true', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("ul"); + writer.open("li"); + writer.text("One"); + writer.close("li"); + writer.open("li"); + writer.text("Two"); + writer.close("li"); + writer.close("ul"); + return assert.equal(writer.asString(), ""); + }); + + test('indents closing element correctly when nested inside another indented element', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("div"); + writer.open("div"); + writer.open("div"); + writer.text("Hello"); + writer.close("div"); + writer.close("div"); + writer.close("div"); + return assert.equal(writer.asString(), "
\n
\n
\n Hello\n
\n
\n
"); + }); + + test('newlines in text are indented', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.text("One\nTwo"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n One\n Two\n

"); + }); + + test('run of text has only one new line', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.text("One"); + writer.text("Two"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n OneTwo\n

"); + }); + + test('run of html has only one new line', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.append("One"); + writer.append("Two"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n OneTwo\n

"); + }); + + test('self closing elements are indented', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.selfClosing("br"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n
\n

"); + }); + + test('newlines in appended HTML are indented', function() { + var writer = htmlWriter.writer({prettyPrint: true}); + writer.open("p"); + writer.append("One\nTwo"); + writer.close("p"); + return assert.equal(writer.asString(), "

\n One\n Two\n

"); + }); +}); -- cgit v1.2.3