From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/domhandler/test/tests.js | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 node_modules/domhandler/test/tests.js (limited to 'node_modules/domhandler/test/tests.js') diff --git a/node_modules/domhandler/test/tests.js b/node_modules/domhandler/test/tests.js new file mode 100644 index 000000000..fc9d2cc87 --- /dev/null +++ b/node_modules/domhandler/test/tests.js @@ -0,0 +1,59 @@ +var fs = require("fs"), + path = require("path"), + assert = require("assert"), + util = require("util"), + ElementType = require("domelementtype"), + Parser = require("htmlparser2").Parser, + Handler = require("../"); + +var basePath = path.resolve(__dirname, "cases"), + inspectOpts = { showHidden: true, depth: null }; + +fs +.readdirSync(basePath) +.filter(RegExp.prototype.test, /\.json$/) //only allow .json files +.map(function(name){ + return path.resolve(basePath, name); +}) +.map(require) +.forEach(function(test){ + it(test.name, function(){ + var expected = test.expected; + + var handler = new Handler(function(err, actual){ + assert.ifError(err); + try { + compare(expected, actual); + } catch(e){ + e.expected = util.inspect(expected, inspectOpts); + e.actual = util.inspect(actual, inspectOpts); + throw e; + } + }, test.options); + + var data = test.html; + + var parser = new Parser(handler, test.options); + + //first, try to run the test via chunks + for(var i = 0; i < data.length; i++){ + parser.write(data.charAt(i)); + } + parser.done(); + + //then parse everything + parser.parseComplete(data); + }); +}); + +function compare(expected, result){ + assert.equal(typeof expected, typeof result, "types didn't match"); + if(typeof expected !== "object" || expected === null){ + assert.strictEqual(expected, result, "result doesn't equal expected"); + } else { + for(var prop in expected){ + assert.ok(prop in result, "result didn't contain property " + prop); + compare(expected[prop], result[prop]); + } + } +} \ No newline at end of file -- cgit v1.2.3