it('wraps from an element to its parents sibling', function () { htmlRange = new XRange(); htmlRange.setStart(htmlDiv.childNodes[1].childNodes[0], 2); htmlRange.setEnd(htmlDiv.childNodes[2], 2); highlighter.highlight(htmlRange); var highlights = htmlDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(2); chai.expect(highlights[0].innerHTML).to.equal('f'); chai.expect(highlights[1].innerHTML).to.equal(' g'); });
it('wraps a simple text range', function () { simpleRange = new XRange(); var node = simpleDiv.childNodes[0]; simpleRange.setStart(node, 2); simpleRange.setEnd(node, 9); highlighter.highlight(simpleRange); var highlights = simpleDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(1); chai.expect(highlights[0].innerHTML).to.equal('c def g'); });
it('wraps an entire html element', function () { htmlRange = new XRange(); htmlRange.setStart(htmlDiv.childNodes[0], 2); htmlRange.setEnd(htmlDiv.childNodes[2], 2); highlighter.highlight(htmlRange); var highlights = htmlDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(3); chai.expect(highlights[0].innerHTML).to.equal('c '); chai.expect(highlights[1].innerHTML).to.equal('def'); chai.expect(highlights[2].innerHTML).to.equal(' g'); });
it('unwraps elements even if they are not closed', function () { complexRange = new XRange(); complexRange.setStart(complexDiv.childNodes[0], 2); var endNode = domUtil.findNodeInElement(complexDiv, true); complexRange.setEnd(endNode, 2); highlighter.highlight(complexRange); var highlights = complexDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(4); highlighter.unhighlight(complexRange); highlights = complexDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(0); });
it('can highlight, unhighlight, and highight the same range', function () { complexRange = new XRange(); complexRange.setStart(complexDiv.childNodes[0], 2); var endNode = domUtil.findNodeInElement(complexDiv, true); complexRange.setEnd(endNode, 2); highlighter.highlight(complexRange); var highlights = complexDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(4); highlighter.unhighlight(complexRange); highlights = complexDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(0); highlighter.highlight(complexRange); highlights = complexDiv.getElementsByClassName(className); chai.expect(highlights.length).to.equal(4); });