From 36de4837650d53704c67a9f23a4d68b1287b03ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Wed, 23 Oct 2013 12:56:28 +0200 Subject: [PATCH] smartxml: tests refactoring --- src/smartxml/smartxml.test.js | 39 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index 7fd408e..938e5f7 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -77,28 +77,37 @@ describe('smartxml', function() { }); describe('Changing node tag', function() { + it('can change tag name', function() { - var doc = getDocumentFromXML('
'), - header = doc.root.contents()[0]; - header.setTag('span'); - expect(header.getTagName()).to.equal('span'); - + var node = elementNodeFromXML('
'); + node.setTag('span'); + expect(node.getTagName()).to.equal('span'); + }); + + 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 detail. - expect(header.parent().sameNode(doc.root)).to.equal(true, 'ensure we stayed in a document'); + // 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'); + + expect(node.getTagName()).to.equal('header'); + expect(node.getData()).to.eql({key: 'value'}); + }); }); - it('keeps custom data', function() { - var node = elementNodeFromXML('
'); - node.setData('key', 'value'); - node.setTag('header'); - - expect(node.getTagName()).to.equal('header'); - expect(node.getData()).to.eql({key: 'value'}); - }); }); }); -- 2.20.1