getElementForNode handles both text and element nodes
[fnpeditor.git] / src / editor / modules / documentCanvas / canvas / canvas.test.js
index 9d6d94e..f64754f 100644 (file)
@@ -125,7 +125,7 @@ describe('Listening to document changes', function() {
             aTextElement;
 
         canvas.fromXMLDocument(doc);
-        aTextElement = utils.getElementForTextNode(aTextNode);
+        aTextElement = utils.getElementForNode(aTextNode);
 
         aTextElement.setText('');
 
@@ -220,6 +220,24 @@ describe('Default document changes handling', function() {
         expect(sectionChildren[1].wlxmlNode.getTagName()).to.equal('a');
     });
 
+    it('handles moving text node to another parent', function() {
+        var c = getCanvasFromXML('<section>Alice<div><span>has</span></div>a cat.</section>'),
+            doc = c.wlxmlDocument,
+            text = doc.root.contents()[0],
+            div = doc.root.contents()[1];
+        
+        div.append(text);
+        
+        var sectionChildren = c.doc().children();
+        expect(sectionChildren.length).to.equal(2);
+        expect(sectionChildren[0].wlxmlNode.sameNode(div)).to.equal(true);
+        expect(sectionChildren[1].getText()).to.equal('a cat.');
+
+        expect(div.contents().length).to.equal(2);
+        expect(div.contents()[0].getTagName()).to.equal('span');
+        expect(div.contents()[1].getText()).to.equal('Alice');
+    });
+
     it('handles change in a text node', function() {
         var c = getCanvasFromXML('<section>Alice</section>');
         c.wlxmlDocument.root.contents()[0].setText('cat');