X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/95d7d373a581746ce68ada33dd890ecc385245ed..e1acb388e008f83e89976e3779330d2a268f525e:/src/smartxml/smartxml.test.js diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index d1eaf22..e4e2724 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -169,40 +169,16 @@ describe('smartxml', function() { it('can change tag name', function() { var node = elementNodeFromXML('
'); - node.setTag('span'); + node = node.setTag('span'); expect(node.getTagName()).to.equal('span'); }); - it('emits nodeTagChange event', function() { - var node = elementNodeFromXML('
'), - spy = sinon.spy(); - - node.document.on('change', spy); - node.setTag('span'); - var event = spy.args[0][0]; - - expect(event.type).to.equal('nodeTagChange'); - expect(event.meta.node.sameNode(node)).to.be.true; - expect(event.meta.oldTagName).to.equal('div'); - }); - describe('Implementation specific expectations', function() { - // DOM specifies ElementNode tag as a read-only property, so - // changing it in a seamless way is a little bit tricky. For this reason - // the folowing expectations are required, despite the fact that they actually are - // motivated by implemetation details. - - it('keeps node in the document', function() { - var doc = getDocumentFromXML('
'), - header = doc.root.contents()[0]; - header.setTag('span'); - expect(header.parent().sameNode(doc.root)).to.be.true; - }); it('keeps custom data', function() { var node = elementNodeFromXML('
'); node.setData('key', 'value'); - node.setTag('header'); + node = node.setTag('header'); expect(node.getTagName()).to.equal('header'); expect(node.getData()).to.eql({key: 'value'}); @@ -214,9 +190,9 @@ describe('smartxml', function() { expect(doc.root.getTagName()).to.equal('span'); }); - it('keeps contents', function() { + it('keeps node contents', function() { var node = elementNodeFromXML('
'); - node.setTag('header'); + node = node.setTag('header'); expect(node.contents()).to.have.length(1); }); }); @@ -1661,17 +1637,17 @@ describe('smartxml', function() { expect(doc.root.contents().length).to.equal(0); }); - it('rollbacks and rethrow if error gets thrown', function() { + it('rollbacks and calls error handleor if error gets thrown', function() { var doc = getDocumentFromXML(''), - err = new Error(); + err = new Error(), + spy = sinon.spy(); - expect(function() { - doc.transaction(function() { - doc.root.append({tagName: 'div'}); - throw err; - }); - }).to.throw(err); + doc.transaction(function() { + doc.root.append({tagName: 'div'}); + throw err; + }, {error: spy}); + expect(spy.args[0][0]).to.equal(err); expect(doc.root.contents().length).to.equal(0); expect(doc.undoStack.length).to.equal(0); });