diff options
author | Simon Gaeremynck <gaeremyncks@gmail.com> | 2015-05-18 17:44:11 +0100 |
---|---|---|
committer | Simon Gaeremynck <gaeremyncks@gmail.com> | 2015-05-18 17:44:11 +0100 |
commit | fd9d0bc291cbfca042f818d76541464c170dc130 (patch) | |
tree | 52dee5b1b01f70715b22b21230040fbe66d40691 | |
parent | 7fe99cccad64707a46d3120d6a18f2e6d0724b90 (diff) | |
download | etherpad-lite-fd9d0bc291cbfca042f818d76541464c170dc130.zip |
Added backend tests for TidyHtml
-rw-r--r-- | tests/backend/specs/api/tidy.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/backend/specs/api/tidy.js b/tests/backend/specs/api/tidy.js new file mode 100644 index 00000000..47cb49f6 --- /dev/null +++ b/tests/backend/specs/api/tidy.js @@ -0,0 +1,63 @@ +var assert = require('assert') + fs = require('fs'), + path = require('path'), + TidyHtml = null, + Settings = null; + +var npm = require("../../../../src/node_modules/npm/lib/npm.js"); + +describe('tidyHtml', function() { + before(function(done) { + npm.load({}, function(err) { + assert.ok(!err); + TidyHtml = require('../../../../src/node/utils/TidyHtml'); + Settings = require('../../../../src/node/utils/Settings'); + return done() + }); + }); + + it('Tidies HTML', function(done) { + // If the user hasn't configured Tidy, we skip this tests as it's required for this test + if (!Settings.tidyHtml) { + this.skip(); + } + + // Try to tidy up a bad HTML file + var tmpDir = process.env.TEMP || "/tmp"; + var tmpFile = path.join(tmpDir, 'tmp_' + (Math.floor(Math.random() * 1000000)) + '.html') + fs.writeFileSync(tmpFile, '<html><body><p>a paragraph</p><li>List without outer UL</li>trailing closing p</p></body></html>'); + TidyHtml.tidy(tmpFile, function(err){ + assert.ok(!err); + + // Read the file again + var cleanedHtml = fs.readFileSync(tmpFile).toString(); + + var expectedHtml = [ + '<title></title>', + '</head>', + '<body>', + '<p>a paragraph</p>', + '<ul>', + '<li>List without outer UL</li>', + '<li style="list-style: none">trailing closing p</li>', + '</ul>', + '</body>', + '</html>', + ].join('\n'); + assert.notStrictEqual(cleanedHtml.indexOf(expectedHtml), -1); + return done(); + }); + }); + + it('can deal with errors', function(done) { + // If the user hasn't configured Tidy, we skip this tests as it's required for this test + if (!Settings.tidyHtml) { + this.skip(); + } + + TidyHtml.tidy('/some/none/existing/file.html', function(err) { + assert.ok(err); + return done(); + }); + }); +}); |