summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Gaeremynck <gaeremyncks@gmail.com>2015-05-18 17:44:11 +0100
committerSimon Gaeremynck <gaeremyncks@gmail.com>2015-05-18 17:44:11 +0100
commitfd9d0bc291cbfca042f818d76541464c170dc130 (patch)
tree52dee5b1b01f70715b22b21230040fbe66d40691
parent7fe99cccad64707a46d3120d6a18f2e6d0724b90 (diff)
downloadetherpad-lite-fd9d0bc291cbfca042f818d76541464c170dc130.zip
Added backend tests for TidyHtml
-rw-r--r--tests/backend/specs/api/tidy.js63
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();
+ });
+ });
+});