find-within
Version:
Traverses "down" the child nodes hierarchy in order to find a Node within
64 lines (45 loc) • 1.66 kB
JavaScript
var find = require('../');
var assert = require('assert');
describe('find-within', function () {
it('should find an Element within a div', function () {
var div = document.createElement('div');
div.innerHTML = '<b><u><i>foo</i></u></b>';
var d = find(div, Node.ELEMENT_NODE);
assert(d);
assert.equal(d, div);
assert.equal(d.nodeType, Node.ELEMENT_NODE);
assert.equal(d.nodeName, 'DIV');
});
it('should find a TextNode within a div', function () {
var div = document.createElement('div');
div.innerHTML = '<b><u><i>foo</i></u></b>';
var text = find(div, Node.TEXT_NODE);
assert(text);
assert.equal(text.nodeType, Node.TEXT_NODE);
assert.equal(text.nodeValue, 'foo');
});
it('should find a TextNode within a div to the left', function () {
var div = document.createElement('div');
div.innerHTML = 'foo<i>|</i>bar';
var first = true;
var text = find(div, Node.TEXT_NODE, first);
assert(text);
assert.equal(text.nodeType, Node.TEXT_NODE);
assert.equal(text.nodeValue, 'foo');
});
it('should find a TextNode within a div to the right', function () {
var div = document.createElement('div');
div.innerHTML = 'foo<i>|</i>bar';
var first = false;
var text = find(div, Node.TEXT_NODE, first);
assert(text);
assert.equal(text.nodeType, Node.TEXT_NODE);
assert.equal(text.nodeValue, 'bar');
});
it('should return `null` when no TextNode is present', function () {
var div = document.createElement('div');
div.innerHTML = '<i></i>';
var text = find(div, Node.TEXT_NODE);
assert.equal(null, text);
});
});