smartxml: Throw an error on invalid argument to replaceWith method
[fnpeditor.git] / src / smartxml / smartxml.test.js
index 1e778ce..b152d26 100644 (file)
@@ -385,6 +385,15 @@ describe('smartxml', function() {
 
     describe('Manipulations', function() {
 
+        describe('detaching nodes', function() {
+            it('can detach document root node', function() {
+                var doc = getDocumentFromXML('<div></div>');
+
+                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('<div><a></a></div>'),
@@ -1112,6 +1121,16 @@ describe('smartxml', function() {
                 expect(siblingParents.node1.sameNode(aliceText)).to.equal(true, 'aliceText');
                 expect(siblingParents.node2.sameNode(span)).to.equal(true, 'span');
             });
+
+            it('returns node itself for two same nodes', function() {
+                var doc = getDocumentFromXML('<section><div></div></section>'),
+                    div = doc.root.contents()[0];
+
+                var siblingParents = doc.getSiblingParents({node1: div, node2: div});
+                expect(!!siblingParents.node1 && !!siblingParents.node2).to.equal(true, 'nodes defined');
+                expect(siblingParents.node1.sameNode(div)).to.be.equal(true, 'node1');
+                expect(siblingParents.node2.sameNode(div)).to.be.equal(true, 'node2');
+            });
         });
     });