X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/643d726b32f530502411247a087274284e3f9c3a..83edceffb18f5802bb6a9b20746437a3a46f2450:/src/smartxml/smartxml.test.js diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js index b50da7f..524c976 100644 --- a/src/smartxml/smartxml.test.js +++ b/src/smartxml/smartxml.test.js @@ -69,6 +69,24 @@ describe('smartxml', function() { expect(node.contents()[0].getText()).to.equal('Alice'); expect(node.contents()[1].getTagName()).to.equal('b'); }); + + describe('Retrieving node by path', function() { + it('passes smoke tests', function() { + var doc = getDocumentFromXML('c'); + expect(doc.getNodeByPath([0]).sameNode(doc.root.contents()[0])).to.be.true; + expect(doc.getNodeByPath([0,0]).sameNode(doc.root.contents()[0].contents()[0])).to.be.true; + }); + it('treats empty path as a root path', function() { + var doc = getDocumentFromXML(''); + expect(doc.getNodeByPath([]).sameNode(doc.root)).to.be.true; + }); + it('returns undefined for non existing paths', function() { + var doc = getDocumentFromXML(''); + expect(doc.getNodeByPath([1])).to.be.undefined; + expect(doc.getNodeByPath([0,1])).to.be.undefined; + expect(doc.getNodeByPath([10,1])).to.be.undefined; + }); + }); }); describe('DocumentNode', function() { @@ -942,6 +960,28 @@ describe('smartxml', function() { expect(contents[1].contents().length).to.equal(1); expect(contents[1].contents()[0].getText()).to.equal('b'); }); + it('removes across elements - 6', function() { + var doc = getDocumentFromXML('
aaabbbccc
ddd
'); + doc.deleteText({ + from: { + node: getTextNode('aaa', doc), + offset: 1 + }, + to: { + node: getTextNode('ddd', doc), + offset: 1 + } + }, { + error: function(e) {throw e;} + }); + + var contents = doc.root.contents(); + expect(contents.length).to.equal(2); + expect(contents[0].contents().length).to.equal(1); + expect(contents[0].contents()[0].getText()).to.equal('a'); + expect(contents[1].contents().length).to.equal(1); + expect(contents[1].contents()[0].getText()).to.equal('dd'); + }); }); describe('Splitting text', function() {