smartxml: DocumentElement.parents
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 18 Nov 2013 14:58:19 +0000 (15:58 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 18 Nov 2013 14:58:19 +0000 (15:58 +0100)
src/smartxml/smartxml.js
src/smartxml/smartxml.test.js

index 5ad3010..9a402cf 100644 (file)
@@ -45,6 +45,15 @@ $.extend(DocumentNode.prototype, {
         return null;
     },
 
+    parents: function() {
+        var parent = this.parent(),
+            parents = parent ? parent.parents() : [];
+        if(parent) {
+            parents.unshift(parent);
+        }
+        return parents;
+    },
+
     after: function(node) {
         var insertion = this.getNodeInsertion(node);
         this._$.after(insertion.ofNode.nativeNode);
index df35a37..00c3ee9 100644 (file)
@@ -496,6 +496,15 @@ describe('smartxml', function() {
                 expect(a.parent()).to.equal(null, 'parent of a root is null');
                 expect(b.parent().sameNode(a)).to.be.true;
             });
+            it('can access node parents', function() {
+                var doc = getDocumentFromXML('<a><b><c></c></b></a>'),
+                    a = doc.root,
+                    b = a.contents()[0],
+                    c = b.contents()[0];
+
+                var parents = c.parents();
+                expect(parents).to.eql([b,a]);
+            });
         });
     });