var wows = require('vows');
var DOMParser = require('xmldom').DOMParser;
// Create a Test Suite
wows.describe('XML attrs').addBatch({
"set attribute":function(){
var root = new DOMParser().parseFromString("",'text/xml').documentElement;
root.setAttribute('a','1');
console.assert(root.attributes[0].localName == 'a');
root.setAttribute('b',2);
root.setAttribute('a',1);
root.setAttribute('a',1);
root.setAttribute('a',1);
console.assert(root.attributes.length == 2);
try {
var c = root.ownerDocument.createElement('c');
c.setAttributeNode(root.attributes.item(0));
} catch (e) {
console.assert(e.code == 10);
return;
}
console.assert(false);
},
"set ns attribute":function(){
var root = new DOMParser().parseFromString("",'text/xml').documentElement;
var child = root.firstChild
child.setAttributeNS('a','a:a','1');
child.setAttributeNS('b','b:b','2');
child.setAttributeNS('b','b:a','1');
console.assert(child.attributes.length == 3,child.attributes.length,child+'');
child.setAttribute('a',1);
child.setAttributeNS('b','b:b','2');
console.assert(child.attributes.length == 4,child.attributes.length);
try {
var c = root.ownerDocument.createElement('c');
c.setAttributeNodeNS(root.attributes.item(0));
} catch (e) {
console.assert(e.code == 10);
return;
}
console.assert(false);
},
"override attribute":function(){
var root = new DOMParser().parseFromString("",'text/xml').documentElement;
root.setAttributeNS('a','a:a','1');
console.assert(root.attributes.length == 4,root.attributes.length);
//not standart
// root.firstChild.setAttributeNode(root.attributes[0]);
// console.assert(root.attributes.length == 0);
},
"attribute namespace":function(){
var root = new DOMParser().parseFromString("",'text/xml').documentElement;
console.assert(root.getAttributeNS("a", "b"), "e");
},
"override ns attribute":function(){
},
"set existed attribute":function(){
},
"set document existed attribute":function(){
}
}).run(); // Run it