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('<section>Alice has a cat</section>'),
+ 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() {
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 = '<section>< ></section>',
+ c = canvas.fromXML(xmlIn),
+ xmlOut = c.toXML();
+ expect(xmlOut).to.equal(xmlIn);
+ });
+ it('keeps entities intact when they form html/xml', function() {
+ var xmlIn = '<section><abc></section>',
+ 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 = ' <section></section> ',
expect(partsIn).to.deep.equal(partsOut);
});
+ it('keeps white space at the beginning of text', function() {
+ var xmlIn = '<section> abc<div>some div</div> abc</section>',
+ c = canvas.fromXML(xmlIn),
+ xmlOut = c.toXML();
+
+ expect(xmlOut).to.equal(xmlIn);
+ });
+
it('nests new children block elements', function() {
var c = canvas.fromXML('<section></section>');
var xmlOut = c.toXML();
console.log(xmlOut);
expect(xmlOut).to.equal(xmlIn);
+ });
+ it('keeps white space around text node', function() {
+ var xmlIn = '<section>\
+ <header>header1</header>\
+ Some text surrounded by white space\
+ <header>header2</header>\
+ </section>',
+ 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 = '<section>\
+ <header>header</header>\
+ \
+ Some text surrounded by white space\
+ \
+ </section>',
+ c = canvas.fromXML(xmlIn);
+
+ var xmlOut = c.toXML();
+ expect(xmlOut).to.equal(xmlIn);
+ });
+
+ it('keeps white space after detaching text element', function() {
+ var xmlIn = '<section><header>header</header>\n\
+ \n\
+ text1\n\
+ \n\
+ </section>',
+ expectedXmlOut = '<section><header>header</header>\n\
+ \n\
+ \n\
+ \n\
+ </section>',
+ 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);
});
})