You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.3 KiB
71 lines
2.3 KiB
var wows = require('vows');
|
|
var DOMParser = require('xmldom').DOMParser;
|
|
|
|
|
|
wows.describe('errorHandle').addBatch({
|
|
'only function two args': function() {
|
|
var error = {}
|
|
var parser = new DOMParser({
|
|
errorHandler:function(key,msg){error[key] = msg}
|
|
});
|
|
try{
|
|
var doc = parser.parseFromString('<html disabled><1 1="2"/></body></html>', 'text/xml');
|
|
console.assert(error.warning!=null ,'error.error:'+error.warning);
|
|
console.assert(error.error!=null ,'error.error:'+error.error);
|
|
console.assert(error.fatalError!=null ,'error.error:'+error.fatalError);
|
|
//console.log(doc+'')
|
|
}catch(e){
|
|
}
|
|
},
|
|
'only function': function() {
|
|
var error = []
|
|
var parser = new DOMParser({
|
|
errorHandler:function(msg){error.push(msg)}
|
|
});
|
|
try{
|
|
var doc = parser.parseFromString('<html disabled><1 1="2"/></body></html>', 'text/xml');
|
|
error.map(function(e){error[e.replace(/\:[\s\S]*/,'')]=e})
|
|
console.assert(error.warning!=null ,'error.error:'+error.warning);
|
|
console.assert(error.error!=null ,'error.error:'+error.error);
|
|
console.assert(error.fatalError!=null ,'error.error:'+error.fatalError);
|
|
//console.log(doc+'')
|
|
}catch(e){
|
|
}
|
|
},
|
|
'only function': function() {
|
|
var error = []
|
|
var errorMap = []
|
|
new DOMParser({
|
|
errorHandler:function(msg){error.push(msg)}
|
|
}).parseFromString('<html><body title="1<2">test</body></html>', 'text/xml');
|
|
'warn,warning,error,fatalError'.replace(/\w+/g,function(k){
|
|
var errorHandler = {};
|
|
errorMap[k] = [];
|
|
errorHandler[k] = function(msg){errorMap[k] .push(msg)}
|
|
new DOMParser({errorHandler:errorHandler}).parseFromString('<html><body title="1<2">test</body></html>', 'text/xml');
|
|
});
|
|
for(var n in errorMap){
|
|
console.assert(error.length == errorMap[n].length)
|
|
}
|
|
},
|
|
'error function': function() {
|
|
var error = []
|
|
var parser = new DOMParser({
|
|
locator:{},
|
|
errorHandler:{
|
|
error:function(msg){
|
|
error.push(msg);
|
|
throw new Error(msg)
|
|
}
|
|
}
|
|
});
|
|
try{
|
|
var doc = parser.parseFromString('<html><body title="1<2"><table><;test</body></body></html>', 'text/html');
|
|
}catch(e){
|
|
console.log(e);
|
|
console.assert(/\n@#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error)
|
|
return;
|
|
}
|
|
console.assert(false,doc+' should be null');
|
|
}
|
|
}).run(); |