From: Aleksander Ɓukasz Date: Mon, 18 Nov 2013 14:57:21 +0000 (+0100) Subject: smartxml: fix DocumentNode.parent X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/198de8c828e46c2a849c56091146017a9f46f4f0?ds=inline;hp=9ce300f6e7b27995b982c14b79785e8ca4bed4f0 smartxml: fix DocumentNode.parent --- diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index 18664c7..5ad3010 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -38,7 +38,11 @@ $.extend(DocumentNode.prototype, { }, parent: function() { - return this.nativeNode.parentNode ? this.document.createElementNode(this.nativeNode.parentNode) : null; + var parentNode = this.nativeNode.parentNode; + if(parentNode && parentNode.nodeType === Node.ELEMENT_NODE) { + return this.document.createElementNode(parentNode); + } + return null; }, after: function(node) { diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index 8154ff5..df35a37 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -486,6 +486,19 @@ describe('smartxml', function() { }); }); + describe('Traversing', function() { + describe('Basic', function() { + it('can access node parent', function() { + var doc = getDocumentFromXML(''), + a = doc.root, + b = a.contents()[0]; + + expect(a.parent()).to.equal(null, 'parent of a root is null'); + expect(b.parent().sameNode(a)).to.be.true; + }); + }); + }); + describe('Serializing document to WLXML', function() { it('keeps document intact when no changes have been made', function() { var xmlIn = '
Alice
has
a cat!
',