Skip to content

Commit

Permalink
Convert Vows assertions to Node.js assertion library
Browse files Browse the repository at this point in the history
  • Loading branch information
awwright committed Sep 16, 2020
1 parent 3c762e6 commit 3081e08
Show file tree
Hide file tree
Showing 22 changed files with 197 additions and 322 deletions.
2 changes: 2 additions & 0 deletions lib/dom-parser.js
@@ -1,3 +1,5 @@
"use strict";

function DOMParser(options){
this.options = options ||{locator:{}};
}
Expand Down
2 changes: 1 addition & 1 deletion test/3rd-cases/mock.js
@@ -1 +1 @@
exports.test = 1;
exports.test = 1;
114 changes: 0 additions & 114 deletions test/assert.js

This file was deleted.

18 changes: 9 additions & 9 deletions test/dom/attr.test.js
@@ -1,24 +1,24 @@
"use strict";

var DOMParser = require('../../lib/dom-parser').DOMParser;
const assert = require('../assert')
const assert = require('assert');

// Create a Test Suite
describe('XML attrs', () => {
it("can properly set attribute", () => {
var root = new DOMParser().parseFromString("<xml/>",'text/xml').documentElement;
root.setAttribute('a','1');
assert(root.attributes[0].localName, 'a');
assert.strictEqual(root.attributes[0].localName, 'a');
root.setAttribute('b',2);
root.setAttribute('a',1);
root.setAttribute('a',1);
root.setAttribute('a',1);
assert(root.attributes.length, 2);
assert.strictEqual(root.attributes.length, 2);
try {
var c = root.ownerDocument.createElement('c');
c.setAttributeNode(root.attributes.item(0));
} catch (e) {
assert(e.code, 10);
assert.strictEqual(e.code, 10);
return;
}
assert.fail('expected error but none was thrown');
Expand All @@ -30,15 +30,15 @@ describe('XML attrs', () => {
child.setAttributeNS('a','a:a','1');
child.setAttributeNS('b','b:b','2');
child.setAttributeNS('b','b:a','1');
assert(child.attributes.length, 3, 'after adding 3', child);
assert.strictEqual(child.attributes.length, 3, 'after adding 3', child);
child.setAttribute('a',1);
child.setAttributeNS('b','b:b','2');
assert(child.attributes.length, 4, 'after adding 4 and one with namespace');
assert.strictEqual(child.attributes.length, 4, 'after adding 4 and one with namespace');
try {
var c = root.ownerDocument.createElement('c');
c.setAttributeNodeNS(root.attributes.item(0));
} catch (e) {
assert(e.code, 10, 'wrong error code');
assert.strictEqual(e.code, 10, 'wrong error code');
return;
}
assert.fail('expected error but none was thrown');
Expand All @@ -47,15 +47,15 @@ describe('XML attrs', () => {
it("can properly override attribute", () => {
var root = new DOMParser().parseFromString("<xml xmlns:a='a' xmlns:b='b' xmlns='e'><child/></xml>",'text/xml').documentElement;
root.setAttributeNS('a','a:a','1');
assert(root.attributes.length, 4);
assert.strictEqual(root.attributes.length, 4);
//not standart
// root.firstChild.setAttributeNode(root.attributes[0]);
// assert(root.attributes.length, 0);
})

it("properly supports attribute namespace", () => {
var root = new DOMParser().parseFromString("<xml xmlns:a='a' xmlns:b='b' a:b='e'></xml>",'text/xml').documentElement;
assert(root.getAttributeNS("a", "b"), "e");
assert.strictEqual(root.getAttributeNS("a", "b"), "e");
})

xit("can properly override ns attribute", () => {
Expand Down
6 changes: 3 additions & 3 deletions test/dom/clone.test.js
Expand Up @@ -3,15 +3,15 @@
var wows = require('vows');
var XMLSerializer = require('../../lib/dom-parser').XMLSerializer;
var DOMParser = require('../../lib/dom-parser').DOMParser;
const assert = require('../assert')
const assert = require('assert');

// Create a Test Suite
describe('XML Namespace Parse', () => {
it("can properly set clone", () => {
var doc1 = new DOMParser().parseFromString("<doc1 attr1='1' attr2='a2'>text1<child>text2</child></doc1>",'text/xml')
var doc1s = new XMLSerializer().serializeToString(doc1);
var n =doc1.cloneNode(true)
assert(n, doc1s)
assert.strictEqual(n, doc1s)
})

it("can properly import", () => {
Expand All @@ -21,7 +21,7 @@ describe('XML Namespace Parse', () => {
var doc3 = new DOMParser().parseFromString("<doc2 attr='2'><doc1 attr1='1' attr2='a2'>text1<child>text2</child></doc1></doc2>")
var n =doc1.importNode(doc2.documentElement, true)
doc1.documentElement.appendChild(n)
assert(doc1, doc3+'')
assert.strictEqual(doc1, doc3+'')
assert.isTrue(doc2 != doc3+'')
})
})
70 changes: 35 additions & 35 deletions test/dom/element.test.js
Expand Up @@ -2,16 +2,16 @@

var wows = require('vows');
var DOMParser = require('../../lib/dom-parser').DOMParser;
var assert = require('../assert')
var assert = require('assert');
var XMLSerializer = require('../../lib/dom-parser').XMLSerializer;

// Create a Test Suite
describe('XML Namespace Parse', () => {
// See: http://jsfiddle.net/bigeasy/ShcXP/1/
it("supports Document_getElementsByTagName", () => {
var doc = new DOMParser().parseFromString('<a><b/></a>');
assert(doc.getElementsByTagName('*').length, 2, 'on doc');
assert(doc.documentElement.getElementsByTagName('*').length, 1, 'on doc.documentElement');
assert.strictEqual(doc.getElementsByTagName('*').length, 2, 'on doc');
assert.strictEqual(doc.documentElement.getElementsByTagName('*').length, 1, 'on doc.documentElement');
})

it("supports getElementsByTagName", () => {
Expand All @@ -20,16 +20,16 @@ describe('XML Namespace Parse', () => {
'<child attr="1"><test><child attr="2"/></test></child>' +
'<child attr="3"/></xml>','text/xml');
var childs = doc.documentElement.getElementsByTagName('child');
assert(childs.item(0).getAttribute('attr'), "1",childs.item(0)+'');
assert(childs.item(1).getAttribute('attr'), "2",childs.item(1)+'');
assert(childs.item(2).getAttribute('attr'), "3",childs.item(2)+'');
assert(childs.length, 3, 'documentElement children length');
assert.strictEqual(childs.item(0).getAttribute('attr'), "1", childs.item(0)+'');
assert.strictEqual(childs.item(1).getAttribute('attr'), "2", childs.item(1)+'');
assert.strictEqual(childs.item(2).getAttribute('attr'), "3", childs.item(2)+'');
assert.strictEqual(childs.length, 3, 'documentElement children length');

var childs = doc.getElementsByTagName('child');
assert(childs.item(0).getAttribute('attr'), "1",childs.item(0)+'');
assert(childs.item(1).getAttribute('attr'), "2",childs.item(1)+'');
assert(childs.item(2).getAttribute('attr'), "3",childs.item(2)+'');
assert(childs.length, 3, 'doc children length');
assert.strictEqual(childs.item(0).getAttribute('attr'), "1", childs.item(0)+'');
assert.strictEqual(childs.item(1).getAttribute('attr'), "2", childs.item(1)+'');
assert.strictEqual(childs.item(2).getAttribute('attr'), "3", childs.item(2)+'');
assert.strictEqual(childs.length, 3, 'doc children length');



Expand All @@ -39,16 +39,16 @@ describe('XML Namespace Parse', () => {
for(var i=0,buf = [];i<childs.length;i++){
buf.push(childs[i].tagName)
}
assert(childs.length, 7, buf);
assert.strictEqual(childs.length, 7, buf);




var feed = new DOMParser().parseFromString('<feed><entry>foo</entry></feed>');
var entries = feed.documentElement.getElementsByTagName('entry');
assert.equal(entries.length , 1,'assert entry nodelist length ==1');
assert(entries[0].nodeName, 'entry');
assert(feed.documentElement.childNodes.item(0).nodeName, 'entry');
assert.strictEqual(entries[0].nodeName, 'entry');
assert.strictEqual(feed.documentElement.childNodes.item(0).nodeName, 'entry');
})

it("supports getElementsByTagNameNS", () => {
Expand All @@ -59,22 +59,22 @@ describe('XML Namespace Parse', () => {

var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'*');
var i=0
assert(childs.length, 6);
assert.strictEqual(childs.length, 6);

var childs = doc.getElementsByTagNameNS("http://test.com",'*');
assert(childs.length, 7);
assert.strictEqual(childs.length, 7);

var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'test');
assert(childs.length, 3);
assert.strictEqual(childs.length, 3);

var childs = doc.getElementsByTagNameNS("http://test.com",'test');
assert(childs.length, 3);
assert.strictEqual(childs.length, 3);

var childs = doc.getElementsByTagNameNS("*", "test");
assert(childs.length, 4);
assert.strictEqual(childs.length, 4);

var childs = doc.documentElement.getElementsByTagNameNS("*", "test");
assert(childs.length, 4);
assert.strictEqual(childs.length, 4);

})

Expand All @@ -83,9 +83,9 @@ describe('XML Namespace Parse', () => {
'<child id="a1" title="1"><child id="a2" title="2"/></child>' +
'<child id="a1" title="3"/></xml>','text/xml');
assert.isTrue(doc.getElementById('root') != null, 'root')
assert(doc.getElementById('a1').getAttribute('title'), "1", "first");
assert(doc.getElementById('a2').getAttribute('title'), "2", "second");
assert(doc.getElementById('a2').getAttribute('title2'), "", "empty");
assert.strictEqual(doc.getElementById('a1').getAttribute('title'), "1", "first");
assert.strictEqual(doc.getElementById('a2').getAttribute('title'), "2", "second");
assert.strictEqual(doc.getElementById('a2').getAttribute('title2'), "", "empty");
})

it("can properly append exist child", () => {
Expand All @@ -105,10 +105,10 @@ describe('XML Namespace Parse', () => {
var str2=new XMLSerializer().serializeToString(doc2);
var str3=new XMLSerializer().serializeToString(doc3);
var str4=new XMLSerializer().serializeToString(doc4);
assert(str1, str2, 'str1 == str2')
assert(str2, str3, 'str2 == str3');
assert.strictEqual(str1, str2, 'str1 == str2')
assert.strictEqual(str2, str3, 'str2 == str3');
assert.isTrue(str3 != str4, 'str4 != str3:' + str3);
assert(str3.length, str4.length, 'str3 and str4 have same length');
assert.strictEqual(str3.length, str4.length, 'str3 and str4 have same length');
})

it("can properly append exist other child", () => {
Expand All @@ -120,32 +120,32 @@ describe('XML Namespace Parse', () => {
var str1=new XMLSerializer().serializeToString(doc);
var doc2 = doc1.cloneNode(true);

assert(doc2.documentElement.lastChild.childNodes.length, 0, 'initially 0');
assert.strictEqual(doc2.documentElement.lastChild.childNodes.length, 0, 'initially 0');
doc2.documentElement.appendChild(doc2.documentElement.firstChild.firstChild);

var str2=new XMLSerializer().serializeToString(doc2);

assert(doc2.documentElement.lastChild.childNodes.length, 1, '1 after adding');
assert.isTrue(str1 != str2, 'str1 != str2');
assert.isTrue(str1.length != str2.length, 'str1/length != str2.length');
assert.strictEqual(doc2.documentElement.lastChild.childNodes.length, 1, '1 after adding');
assert.strictEqual(str1 != str2, 'str1 != str2');
assert.strictEqual(str1.length != str2.length, 'str1/length != str2.length');
var doc3 = new DOMParser().parseFromString(str2,'text/xml');
doc3.documentElement.firstChild.appendChild(doc3.documentElement.lastChild);
var str3 = new XMLSerializer().serializeToString(doc3);
assert(str1, str3, 'final assertion');
assert.strictEqual(str1, str3, 'final assertion');
})

it("can properly set textContent", () => {
var doc = new DOMParser().parseFromString('<test><a/><b><c/></b></test>');
var a = doc.documentElement.firstChild;
var b = a.nextSibling;
a.textContent = 'hello';
assert(doc.documentElement.toString(), '<test><a>hello</a><b><c/></b></test>');
assert.strictEqual(doc.documentElement.toString(), '<test><a>hello</a><b><c/></b></test>');
b.textContent = 'there';
assert(doc.documentElement.toString(), '<test><a>hello</a><b>there</b></test>');
assert.strictEqual(doc.documentElement.toString(), '<test><a>hello</a><b>there</b></test>');
b.textContent = '';
assert(doc.documentElement.toString(), '<test><a>hello</a><b/></test>');
assert.strictEqual(doc.documentElement.toString(), '<test><a>hello</a><b/></test>');
doc.documentElement.textContent = 'bye';
assert(doc.documentElement.toString(), '<test>bye</test>');
assert.strictEqual(doc.documentElement.toString(), '<test>bye</test>');
})

xit("nested append failed", () => {
Expand Down
4 changes: 2 additions & 2 deletions test/dom/fragment.test.js
Expand Up @@ -2,7 +2,7 @@

var wows = require('vows');
var DOMParser = require('../../lib/dom-parser').DOMParser;
const assert = require('../assert')
const assert = require('assert');

describe('DOM DocumentFragment', () => {
// see: http://jsfiddle.net/9Wmh2/1/
Expand All @@ -12,6 +12,6 @@ describe('DOM DocumentFragment', () => {
document.getElementById("p").insertBefore(fragment, null);
fragment.appendChild(document.createTextNode("a"));
document.getElementById("p").insertBefore(fragment, null);
assert(document.toString(), '<p id="p">a</p>');
assert.strictEqual(document.toString(), '<p id="p">a</p>');
})
})

0 comments on commit 3081e08

Please sign in to comment.