smartxml: emitting nodeDetached event
[fnpeditor.git] / src / smartxml / smartxml.test.js
index 4c9b860..8154ff5 100644 (file)
@@ -295,7 +295,7 @@ describe('smartxml', function() {
             it('wraps text spanning multiple sibling TextNodes', function() {
                 var section = elementNodeFromXML('<section>Alice has a <span>small</span> cat</section>'),
                     wrapper = section.wrapText({
-                        _with: {tag: 'span', attrs: {'attr1': 'value1'}},
+                        _with: {tagName: 'span', attrs: {'attr1': 'value1'}},
                         offsetStart: 6,
                         offsetEnd: 4,
                         textNodeIdx: [0,2]
@@ -307,6 +307,7 @@ describe('smartxml', function() {
 
                 var wrapper2 = section.contents()[1];
                 expect(wrapper2.sameNode(wrapper)).to.be.true;
+                expect(wrapper.getTagName()).to.equal('span');
 
                 var wrapperContents = wrapper.contents();
                 expect(wrapperContents.length).to.equal(3);
@@ -369,6 +370,20 @@ describe('smartxml', function() {
     });
 
     describe('Events', function() {
+        it('emits nodeDetached event on node detach', function() {
+            var node = elementNodeFromXML('<div><div></div></div>'),
+                innerNode = node.contents()[0],
+                spy = sinon.spy();
+            node.document.on('change', spy);
+            
+            var detached = innerNode.detach(),
+                event = spy.args[0][0];
+
+            expect(event.type).to.equal('nodeDetached');
+            expect(event.meta.node.sameNode(detached, 'detached node in event meta'));
+            expect(event.meta.parent.sameNode(node), 'original parent node in event meta');
+        }),
+
         it('emits nodeAdded event when appending new node', function() {
             var node = elementNodeFromXML('<div></div>'),
                 spy = sinon.spy();