smartxml: fix - handle creation of an empty text node
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 20 Nov 2013 12:31:45 +0000 (13:31 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 20 Nov 2013 12:31:45 +0000 (13:31 +0100)
src/smartxml/smartxml.js
src/smartxml/smartxml.test.js

index 6f3d7de..0a1a354 100644 (file)
@@ -372,7 +372,7 @@ $.extend(Document.prototype, Backbone.Events, {
 
     createDocumentNode: function(from) {
         if(!(from instanceof Node)) {
 
     createDocumentNode: function(from) {
         if(!(from instanceof Node)) {
-            if(from.text) {
+            if(from.text !== undefined) {
                 from = document.createTextNode(from.text);
             } else {
                 var node = $('<' + from.tagName + '>');
                 from = document.createTextNode(from.text);
             } else {
                 var node = $('<' + from.tagName + '>');
index ccaf0ef..a0c1af4 100644 (file)
@@ -51,6 +51,14 @@ describe('smartxml', function() {
             expect(doc.containsNode(a)).to.equal(true, 'contains Element Node');
             expect(doc.containsNode(text)).to.equal(true, 'contains Text Node');
         });
             expect(doc.containsNode(a)).to.equal(true, 'contains Element Node');
             expect(doc.containsNode(text)).to.equal(true, 'contains Text Node');
         });
+
+        it('creates text nodes', function() {
+            var doc = getDocumentFromXML('<div></div>'),
+                emptyTextNode = doc.createDocumentNode({text:''}),
+                nonEmptyTextNode = doc.createDocumentNode({text: 'alice'});
+            expect(emptyTextNode.getText()).to.equal('', 'empty ok');
+            expect(nonEmptyTextNode.getText()).to.equal('alice', 'non empty ok');
+        });
     });
 
     describe('Basic ElementNode properties', function() {
     });
 
     describe('Basic ElementNode properties', function() {