Sha256: 3f2caf131b79fefb47e4f01a6ebbb8911e84517152839ab0872a1616611d3681

Contents?: true

Size: 1.52 KB

Versions: 45

Compression:

Stored size: 1.52 KB

Contents

var fs = require("fs"),
    path = require("path"),
    assert = require("assert"),
    util = require("util"),
    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
		if (test.streaming || test.streaming === undefined){
			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]);
		}
	}
}

Version data entries

45 entries across 42 versions & 5 rubygems

Version Path
trusty-cms-6.3.1 node_modules/domhandler/test/tests.js
trusty-cms-5.0.7 node_modules/domhandler/test/tests.js
trusty-cms-5.0.6 node_modules/domhandler/test/tests.js
trusty-cms-5.0.5 node_modules/domhandler/test/tests.js
trusty-cms-5.0.4 node_modules/domhandler/test/tests.js
trusty-cms-5.0.3 node_modules/domhandler/test/tests.js
trusty-cms-5.0.2 node_modules/domhandler/test/tests.js
trusty-cms-5.0.1 node_modules/domhandler/test/tests.js
trusty-cms-4.3.5 node_modules/domhandler/test/tests.js
trusty-cms-5.0.0 node_modules/domhandler/test/tests.js
trusty-cms-4.3.4 node_modules/domhandler/test/tests.js
trusty-cms-4.3.3 node_modules/domhandler/test/tests.js
trusty-cms-4.3.2 node_modules/domhandler/test/tests.js
trusty-cms-4.3.1 node_modules/domhandler/test/tests.js
trusty-cms-4.3 node_modules/domhandler/test/tests.js
trusty-cms-4.2.3 node_modules/domhandler/test/tests.js
trusty-cms-4.2.2 node_modules/domhandler/test/tests.js
trusty-cms-4.2.1 node_modules/domhandler/test/tests.js
trusty-cms-4.2 node_modules/domhandler/test/tests.js
trusty-cms-4.1.9 node_modules/domhandler/test/tests.js