X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/d6174a70be823dd5772d845b83e11d0b779ab513..2f7b77263681f9b09078a958b9bca816b7086094:/modules/documentCanvas/canvas/canvas.test3.js diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index e17c758..95698d0 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -388,6 +388,21 @@ describe('Canvas', function() { expect(children[1]).to.be.instanceOf(documentElement.DocumentTextElement); expect(children[1].getText()).to.equal('Alice'); }); + + it('can divide DocumentTextElement with a new DocumentNodeElement', function() { + var c = canvas.fromXML('
Alice has a cat
'), + section = c.doc(), + text = section.children()[0]; + + var returned = text.divide({tag: 'aside', klass: 'footnote', offset: 5}), + sectionChildren = section.children(), + lhsText = sectionChildren[0], + rhsText = sectionChildren[2]; + + expect(lhsText.getText()).to.equal('Alice'); + expect(returned.sameNode(sectionChildren[1])); + expect(rhsText.getText()).to.equal(' has a cat'); + }); }); describe('Splitting text', function() { @@ -1122,6 +1137,21 @@ describe('Canvas', function() { expect($(c.toXML()).attr('meta-uri')).to.equal(undefined, 'setting attribute to zero length string'); }); + describe('output xml', function() { + it('keeps entities intact', function() { + var xmlIn = '
< >
', + c = canvas.fromXML(xmlIn), + xmlOut = c.toXML(); + expect(xmlOut).to.equal(xmlIn); + }); + it('keeps entities intact when they form html/xml', function() { + var xmlIn = '
<abc>
', + c = canvas.fromXML(xmlIn), + xmlOut = c.toXML(); + expect(xmlOut).to.equal(xmlIn); + }); + }); + describe('formatting output xml', function() { /*it('keeps white spaces at the edges of input xml', function() { var xmlIn = '
', @@ -1153,6 +1183,14 @@ describe('Canvas', function() { expect(partsIn).to.deep.equal(partsOut); }); + it('keeps white space at the beginning of text', function() { + var xmlIn = '
abc
some div
abc
', + c = canvas.fromXML(xmlIn), + xmlOut = c.toXML(); + + expect(xmlOut).to.equal(xmlIn); + }); + it('nests new children block elements', function() { var c = canvas.fromXML('
'); @@ -1175,7 +1213,7 @@ describe('Canvas', function() { it('keeps original white space at the end of text', function() { - var xmlIn = '
Some text ended with white space \ + var xmlIn = '
Some text ended with white space \ \ Some text some text\ \ @@ -1185,7 +1223,54 @@ describe('Canvas', function() { var xmlOut = c.toXML(); console.log(xmlOut); expect(xmlOut).to.equal(xmlIn); + }); + it('keeps white space around text node', function() { + var xmlIn = '
\ +
header1
\ + Some text surrounded by white space\ +
header2
\ +
', + c = canvas.fromXML(xmlIn); + + var xmlOut = c.toXML(); + expect(xmlOut).to.equal(xmlIn); + }); + + it('keeps white space around text node - last node case', function() { + var xmlIn = '
\ +
header
\ + \ + Some text surrounded by white space\ + \ +
', + c = canvas.fromXML(xmlIn); + + var xmlOut = c.toXML(); + expect(xmlOut).to.equal(xmlIn); + }); + + it('keeps white space after detaching text element', function() { + var xmlIn = '
header
\n\ + \n\ + text1\n\ + \n\ +
', + expectedXmlOut = '
header
\n\ + \n\ + \n\ + \n\ +
', + c = canvas.fromXML(xmlIn), + children = c.doc().children(), + text = children[children.length-1]; + + expect(text.getText()).to.equal('text1'); + + text.detach(); + + var xmlOut = c.toXML(); + expect(xmlOut).to.equal(expectedXmlOut); }); })