08-27-周三_17-09-29
This commit is contained in:
60
node_modules/domhandler/test/tests.js
generated
vendored
Normal file
60
node_modules/domhandler/test/tests.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
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]);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user