'),
appended = c.doc().append({text: 'Alice'}),
children = c.doc().children();
- expect(children.length).to.equal(1);
- expect(children[0].sameNode(appended)).to.be.true;
- expect(children[0].getText()).to.equal('Alice');
+ expect(children.length).to.equal(2);
+ expect(children[1].sameNode(appended)).to.be.true;
+ expect(children[1].getText()).to.equal('Alice');
});
it('can put new NodeElement at the beginning', function() {
@@ -458,6 +470,22 @@ describe('Canvas', function() {
});
});
+ describe('Removing elements', function() {
+ it('merges left and right DocumentTextElement sibling of a detached DocumentNodeElement', function() {
+ var c = canvas.fromXML('
'),
+ section = c.doc(),
+ div = section.children()[1];
+
+ div.detach();
+
+ var sectionChildren = section.children(),
+ textElement = sectionChildren[0];
+
+ expect(sectionChildren).to.have.length(1);
+ expect(textElement.getText()).to.equal('Alicea cat');
+ });
+ });
+
describe('Splitting text', function() {
it('splits DocumentTextElement\'s parent into two DocumentNodeElements of the same type', function() {
@@ -716,6 +744,19 @@ describe('Canvas', function() {
expect(section.children()[0].getText()).to.equal('Alice has a cat');
expect(newTextContainer.sameNode(c.doc())).to.equal(true, 'unwrap returns new text parent DocumentNodeElement');
});
+
+ it('unwraps text element from its parent - first child case', function() {
+ var c = canvas.fromXML('
'),
+ section = c.doc(),
+ span = section.children()[0];
+
+ span.children()[0].unwrap();
+
+ var sectionChildren = section.children();
+
+ expect(sectionChildren).to.have.length(1);
+ expect(sectionChildren[0].getText()).to.equal('Sometext');
+ });
});
});
@@ -1321,8 +1362,9 @@ describe('Canvas', function() {
it('keeps white space between XML nodes - inline case', function() {
var xmlIn = '
',
- c = canvas.fromXML(xmlIn),
- xmlOut = c.toXML();
+ c = canvas.fromXML(xmlIn);
+
+ var xmlOut = c.toXML();
var partsIn = xmlIn.split('\n\n\n'),
partsOut = xmlOut.split('\n\n\n');