X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/a849d4765ded55173cc10ba3e55a483d281b9174..3800336fe528a2f0cd5b4f3c90ed17fdca0bc0c8:/src/smartxml/smartxml.test.js diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index 3410407..491c586 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -385,6 +385,15 @@ describe('smartxml', function() { describe('Manipulations', function() { + describe('detaching nodes', function() { + it('can detach document root node', function() { + var doc = getDocumentFromXML('
'); + + doc.root.detach(); + expect(doc.root).to.equal(null); + }); + }); + describe('replacing node with another one', function() { it('replaces node with another one', function() { var doc = getDocumentFromXML('
'), @@ -520,12 +529,33 @@ describe('smartxml', function() { }); }); - it('wraps element node with another element node', function() { + it('wraps root element node with another element node', function() { var node = elementNodeFromXML('
'), wrapper = elementNodeFromXML(''); node.wrapWith(wrapper); expect(node.parent().sameNode(wrapper)).to.be.true; + expect(node.document.root.sameNode(wrapper)).to.be.true; + }); + + it('wraps element node with another element node', function() { + var doc = getDocumentFromXML('
'), + div = doc.root.contents()[0]; + + var wrapper = div.wrapWith({tagName: 'wrapper'}); + expect(wrapper.sameNode(doc.root.contents()[0])).to.equal(true, '1'); + expect(div.parent().sameNode(wrapper)).to.equal(true, '2'); + expect(wrapper.contents()[0].sameNode(div)).to.equal(true, '3'); + }); + + it('wraps element outside of document tree', function() { + var doc = getDocumentFromXML('
'), + node = doc.createDocumentNode({tagName: 'node'}); + + node.wrapWith({tagName: 'wrapper'}); + expect(node.parent().getTagName()).to.equal('wrapper'); + expect(node.parent().contents()[0].sameNode(node)).to.be.true; + expect(doc.root.getTagName()).to.equal('section'); }); it('unwraps element node contents', function() {