expect($xmlOut.attr('a')).to.equal('1');
expect($xmlOut.attr('xmlns:dcterms')).to.equal('http://purl.org/dc/terms/');
+ });
+
+ it('doesn\' serialize meta attribute if its empty', function() {
+ var c;
+ c = canvas.fromXML('<section class="uri" meta-uri="some.uri"></section>');
+ c.doc().setWlxmlMetaAttr('uri', '');
+ expect($(c.toXML()).attr('meta-uri')).to.equal(undefined, 'overriding attribute with zero length string');
+
+ c = canvas.fromXML('<section class="uri"></section>');
+ c.doc().setWlxmlMetaAttr('uri', '');
+ 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() {
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>');
expect(xmlOut).to.equal('<section><span></span></section>');
});
+ it('keeps original white space at the end of text', function() {
+
+ var xmlIn = '<header> Some text ended with white space \
+ \
+ <span class="uri">Some text</span> some text\
+ \
+ </header>',
+ c = canvas.fromXML(xmlIn);
+
+ 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);
+ });
+
})
})
});