X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/74635b9e0dd3069953072eab9de946b77d1b313e..66beb53d8311c422fe21637493136780002d0fc5:/src/editor/modules/documentCanvas/canvas/canvas.test.js diff --git a/src/editor/modules/documentCanvas/canvas/canvas.test.js b/src/editor/modules/documentCanvas/canvas/canvas.test.js index 4f954f1..f64754f 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.test.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.test.js @@ -4,8 +4,9 @@ define([ 'libs/sinon', 'modules/documentCanvas/canvas/canvas', 'modules/documentCanvas/canvas/utils', +'modules/documentCanvas/canvas/documentElement', 'wlxml/wlxml', -], function($, chai, sinon, canvas, utils, wlxml) { +], function($, chai, sinon, canvas, utils, documentElement, wlxml) { 'use strict'; /* global describe, it, beforeEach, afterEach */ @@ -124,7 +125,7 @@ describe('Listening to document changes', function() { aTextElement; canvas.fromXMLDocument(doc); - aTextElement = utils.findCanvasElementInParent(aTextNode, aTextNode.parent()); // TODO: This really should be easier... + aTextElement = utils.getElementForNode(aTextNode); aTextElement.setText(''); @@ -219,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('
Alice
has
a cat.
'), + 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('
Alice
'); c.wlxmlDocument.root.contents()[0].setText('cat'); @@ -228,20 +247,20 @@ describe('Default document changes handling', function() { describe('Custom elements based on wlxml class attribute', function() { it('allows custom rendering', function() { - var c = getCanvasFromXML('
', [ - {tag: 'div', klass: 'testClass', prototype: { + var prototype = $.extend({}, documentElement.DocumentNodeElement.prototype, { init: function() { this._container().append(''); } - }, extending: {tag: 'div'}} + }), + c = getCanvasFromXML('
', [ + {tag: 'div', klass: 'testClass', prototype: prototype} ]); expect(c.doc().children()[0]._container().children('test').length).to.equal(1); // @! }); it('allows handling changes to internal structure of rendered node', function() { - var c = getCanvasFromXML('
', [ - {tag: 'div', klass: 'testClass', prototype: { + var prototype = $.extend({}, documentElement.DocumentNodeElement.prototype, { init: function() { this.header = $('

'); this._container().append(this.header); @@ -254,7 +273,10 @@ describe('Custom elements based on wlxml class attribute', function() { void(event); this.refresh2(); } - }, extending: {tag: 'div'}} + }); + + var c = getCanvasFromXML('
', [ + {tag: 'div', klass: 'testClass', prototype: prototype} ]); var node = c.wlxmlDocument.root.contents()[0],