X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/e1e728df4cd9e96c5865fcec0762eaaf5b37a3f7..d8c1b8422ef879e737e05f60f7ac401af31b6049:/src/editor/modules/documentCanvas/canvas/canvas.test.js?ds=sidebyside diff --git a/src/editor/modules/documentCanvas/canvas/canvas.test.js b/src/editor/modules/documentCanvas/canvas/canvas.test.js index f64754f..0654170 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.test.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.test.js @@ -208,16 +208,24 @@ describe('Default document changes handling', function() { }); it('handles moved node', function() { - var doc = getDocumentFromXML('
'), - a = doc.root.contents()[0], - b = doc.root.contents()[1], - c = canvas.fromXMLDocument(doc); + var doc = getDocumentFromXML('
'), + c = doc.root.contents()[0], + a = doc.root.contents()[1], + b = doc.root.contents()[2], + cv = canvas.fromXMLDocument(doc); + + a.document.transaction(function() { + a.before(b); // => cab + b.after(c); // => bca + }, { + error: function(e) {throw e;} + }); - a.before(b); - var sectionChildren = c.doc().children(); - expect(sectionChildren.length).to.equal(2); + var sectionChildren = cv.doc().children(); + expect(sectionChildren.length).to.equal(3); expect(sectionChildren[0].wlxmlNode.getTagName()).to.equal('b'); - expect(sectionChildren[1].wlxmlNode.getTagName()).to.equal('a'); + expect(sectionChildren[1].wlxmlNode.getTagName()).to.equal('c'); + expect(sectionChildren[2].wlxmlNode.getTagName()).to.equal('a'); }); it('handles moving text node to another parent', function() { @@ -243,6 +251,19 @@ describe('Default document changes handling', function() { c.wlxmlDocument.root.contents()[0].setText('cat'); expect(c.doc().children()[0].getText()).to.equal('cat'); }); + + describe('Regression tests', function() { + it('handles moving node after its next neighbour correctly', function() { + var c = getCanvasFromXML('
'), + doc = c.wlxmlDocument, + a = doc.root.contents()[0], + b = doc.root.contents()[1]; + b.after(a); + var sectionChildren = c.doc().children(); + expect(sectionChildren[0].wlxmlNode.getTagName()).to.equal('b'); + expect(sectionChildren[1].wlxmlNode.getTagName()).to.equal('a'); + }); + }); }); describe('Custom elements based on wlxml class attribute', function() {