X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/6b6d2a8c7dfde855e81a9b02ca38f69d6dfb9440..87b31095331eab98415b37dbd2138cbd6a598b37:/src/smartxml/smartxml.test.js?ds=inline diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index 4049dff..90f7680 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -1150,6 +1150,46 @@ describe('smartxml', function() { }); }); + it('smoke tests nested transformations', function() { + var doc = getDocumentFromXML('
'); + + doc.registerExtension({elementNode: {transformations: { + nested: function(v) { + this._$.attr('innerAttr', v); + }, + outer: function(v) { + this.nested(v); + this._$.attr('outerAttr', v); + } + }}}); + + doc.root.outer('test1'); + doc.root.outer('test2'); + + expect(doc.root.getAttr('innerAttr')).to.equal('test2'); + expect(doc.root.getAttr('outerAttr')).to.equal('test2'); + + doc.undo(); + + expect(doc.root.getAttr('innerAttr')).to.equal('test1'); + expect(doc.root.getAttr('outerAttr')).to.equal('test1'); + + doc.undo(); + + expect(doc.root.getAttr('innerAttr')).to.equal(undefined); + expect(doc.root.getAttr('outerAttr')).to.equal(undefined); + + doc.redo(); + + expect(doc.root.getAttr('innerAttr')).to.equal('test1'); + expect(doc.root.getAttr('outerAttr')).to.equal('test1'); + + doc.redo(); + + expect(doc.root.getAttr('innerAttr')).to.equal('test2'); + expect(doc.root.getAttr('outerAttr')).to.equal('test2'); + + }); // it('does work', function() { // var doc = getDocumentFromXML('
Alice
'), // span = doc.root.contents()[0];