nodeIndexes = [params.node1.getIndex(), params.node2.getIndex()].sort(function(a,b) { return a-b; }),
nodesToWrap = [],
listNode = params.node1.document.createDocumentNode({tagName: 'div', attrs: {'class': 'list'}}),
+ listPlacePtr = params.node1,
node, i;
-
+
for(i = nodeIndexes[0]; i <= nodeIndexes[1]; i++) {
node = parentContents[i];
if(node.nodeType === Node.TEXT_NODE) {
node = node.wrapWith({tagName: 'div', attrs: {'class': 'item'}});
+ if(i === nodeIndexes[0]) {
+ listPlacePtr = node;
+ }
} else {
node.setClass('item');
}
toInsert = listNode;
}
- params.node1.before(toInsert);
+ listPlacePtr.before(toInsert);
nodesToWrap.forEach(function(node) {
listNode.append(node);
expect(child3.contents()[0].getText()).to.equal('cat');
});
+ it('Handles text nodes on the boundries', function() {
+ var doc = getDocumentFromXML('<section>Alice<span>has</span>a cat</section>'),
+ textNode1 = doc.root.contents()[0],
+ textNode2 = doc.root.contents()[2];
+ doc.createList({node1: textNode1, node2: textNode2});
+ expect(doc.root.contents().length).to.equal(1);
+ expect(doc.root.contents()[0].is('list')).to.equal(true);
+ });
+
it('allows creating nested list from existing sibling list items', function() {
var doc = getDocumentFromXML('\
<section>\