X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/97033d5ba70b7f85b1594deef72bda77e82fe869..e54a6bc1fa5737591083883e7e610745e2eec168:/modules/documentCanvas/canvas/canvas.test3.js diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 9877bb6..b649b9a 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -12,38 +12,6 @@ var expect = chai.expect; describe('Canvas', function() { - describe('Internal HTML representation of a sample document', function() { - it('works', function() { - var c = canvas.fromXML('\ -
\ - This is some text without its own wrapping tag.\ -
\ - This is a paragraph.\ -
\ -
\ - This is text in a div with some inline text.\ -
\ - This is some text without its own wrapping tag.\ -
\ - '); - var expected = '
' - + '
This is some text without its own wrapping tag.
' - + '
' - + '
This is a paragraph.
' - + '
' - + '
' - + '
This is text in a div
' - + '
' - + '
with some inline text
' - + '
' - + '
.
' - + '
' - + '
This is some text without its own wrapping tag.
' - + '
'; - expect(c.doc().dom()[0].isEqualNode($(expected)[0])).to.be.true; - }); - }); - describe('Internal HTML representation of a DocumentNodeElement', function() { it('is always a div tag', function() { ['section', 'header', 'span', 'aside', 'figure'].forEach(function(tagName) { @@ -388,6 +356,53 @@ 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'); + }); + + it('treats dividing DocumentTextElement at the very end as appending after it', 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: 15}), + sectionChildren = section.children(), + textElement = sectionChildren[0], + nodeElement = sectionChildren[1]; + + expect(sectionChildren.length).to.equal(2); + expect(textElement.getText()).to.equal('Alice has a cat'); + expect(returned.sameNode(nodeElement)).to.be.true; + expect(nodeElement.getWlxmlTag()).to.equal('aside'); + }); + + it('treats dividing DocumentTextElement at the very beginning as appending before it', 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: 0}), + sectionChildren = section.children(), + nodeElement = sectionChildren[0], + textElement = sectionChildren[1]; + + expect(sectionChildren.length).to.equal(2); + expect(textElement.getText()).to.equal('Alice has a cat'); + expect(returned.sameNode(nodeElement)).to.be.true; + expect(nodeElement.getWlxmlTag()).to.equal('aside'); + }); }); describe('Splitting text', function() { @@ -992,7 +1007,7 @@ describe('Canvas', function() { it('returns position when browser selection collapsed', function() { var c = canvas.fromXML('
Alice has a cat
'), dom = c.doc().dom(), - text = $(dom.contents()[0]).contents()[0]; + text = $(dom.contents()[1]).contents()[0]; expect(text.nodeType).to.equal(Node.TEXT_NODE, 'correct node selected'); expect($(text).text()).to.equal('Alice has a cat'); @@ -1027,9 +1042,9 @@ describe('Canvas', function() { var c = canvas.fromXML('
Alice has a big cat
'), dom = c.doc().dom(), text = { - alice: dom.contents()[0], - has: $(dom.contents()[1]).contents()[0], - cat: dom.contents()[4] + alice: dom.contents()[1], + has: $(dom.contents()[2]).contents()[1], + cat: dom.contents()[5] }, cursor = c.getCursor(), aliceElement = c.getDocumentElement(text.alice), @@ -1060,11 +1075,11 @@ describe('Canvas', function() { var c = canvas.fromXML('
Alice has a big cat
'), dom = c.doc().dom(), text = { - alice: dom.contents()[0], - has: $(dom.contents()[1]).contents()[0], - a: dom.contents()[2], - big: $(dom.contents()[3]).contents()[0], - cat: dom.contents()[4] + alice: dom.contents()[1], + has: $(dom.contents()[2]).contents()[1], + a: dom.contents()[3], + big: $(dom.contents()[4]).contents()[1], + cat: dom.contents()[5] }, cursor = c.getCursor();