From: Aleksander Ɓukasz Date: Thu, 11 Jul 2013 10:46:26 +0000 (+0200) Subject: Fixing creation of a nested list X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/b0f8f1609b130f2301b091d0c5b336df5442d484?hp=b8a8cc88e8c86aa06660cc12fe289524bc31c48b Fixing creation of a nested list --- diff --git a/modules/documentCanvas/canvas/canvas.js b/modules/documentCanvas/canvas/canvas.js index 462c305..5ff19bd 100644 --- a/modules/documentCanvas/canvas/canvas.js +++ b/modules/documentCanvas/canvas/canvas.js @@ -156,7 +156,7 @@ $.extend(Canvas.prototype.list, { var toret; if(parent.is('list')) { - listElement.wrap({tag: 'div', klass: 'item'}); + listElement.wrapWithNodeElement({tag: 'div', klass: 'item'}); toret = listElement.parent(); } else { toret = listElement; diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 609a36b..2244653 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -442,33 +442,70 @@ describe('Canvas', function() { }); describe('Lists api', function() { - it('allows creation of a list from existing sibling DocumentElements', function() { - var c = canvas.fromXML('\ -
\ - Alice\ -
has
\ - a\ -
cat
\ -
'), - section = c.doc(), - textHas = section.children()[1], - divA = section.children()[2] + describe('creating lists', function() { + it('allows creation of a list from existing sibling DocumentElements', function() { + var c = canvas.fromXML('\ +
\ + Alice\ +
has
\ + a\ +
cat
\ +
'), + section = c.doc(), + textHas = section.children()[1], + divA = section.children()[2] + + c.list.create({element1: textHas, element2: divA}); + + expect(section.children().length).to.equal(3, 'section has three child elements'); + + var child1 = section.children()[0], + list = section.children()[1], + child3 = section.children()[2]; + + expect(child1.getText()).to.equal('Alice'); + expect(list.is('list')).to.equal(true, 'second child is a list'); + expect(list.children().length).to.equal(2, 'list contains two elements'); + list.children().forEach(function(child) { + expect(child.getWlxmlClass()).to.equal('item', 'list childs have wlxml class of item'); + }); + expect(child3.children()[0].getText()).to.equal('cat'); + }); - c.list.create({element1: textHas, element2: divA}); + it('allows creating nested list from existing sibling list items', function() { + var c = canvas.fromXML('\ +
\ +
\ +
A
\ +
B
\ +
C
\ +
D
\ +
\ +
'), + outerList = c.doc().children()[0], + itemB = outerList.children()[1], + itemC = outerList.children()[2]; - expect(section.children().length).to.equal(3, 'section has three child elements'); - var child1 = section.children()[0], - list = section.children()[1], - child3 = section.children()[2]; + c.list.create({element1: itemB, element2: itemC}); + + var outerListItems = outerList.children(), + innerList = outerListItems[1].children()[0], + innerListItems = innerList.children(); + + expect(outerListItems.length).to.equal(3, 'outer list has three items'); + expect(outerListItems[0].children()[0].getText()).to.equal('A', 'first outer item ok'); + expect(outerListItems[1].getWlxmlClass()).to.equal('item', 'inner list is wrapped by item element'); + + expect(innerList.is('list')).to.equal(true, 'inner list created'); + expect(innerListItems.length).to.equal(2, 'inner list has two items'); + expect(innerListItems[0].children()[0].getText()).to.equal('B', 'first inner item ok'); + expect(innerListItems[1].children()[0].getText()).to.equal('C', 'second inner item ok'); + + expect(outerListItems[2].children()[0].getText()).to.equal('D', 'last outer item ok'); - expect(child1.getText()).to.equal('Alice'); - expect(list.is('list')).to.equal(true, 'second child is a list'); - expect(list.children().length).to.equal(2, 'list contains two elements'); - list.children().forEach(function(child) { - expect(child.getWlxmlClass()).to.equal('item', 'list childs have wlxml class of item'); }); - expect(child3.children()[0].getText()).to.equal('cat'); + }); describe('extracting list items', function() {