X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/c986f6ebfd3d20bdc75ce00ee09bd2c716e0cb16..b20691e774cac0cbf2ee174472a1b1dbc94fa61b:/modules/documentCanvas/tests/canvas.test.js?ds=sidebyside diff --git a/modules/documentCanvas/tests/canvas.test.js b/modules/documentCanvas/tests/canvas.test.js index 0589c11..12fb8a5 100644 --- a/modules/documentCanvas/tests/canvas.test.js +++ b/modules/documentCanvas/tests/canvas.test.js @@ -61,6 +61,22 @@ define([ assertDomEqual(c.getContent(), '<div wlxml-tag="section"><div wlxml-tag="header">H<span wlxml-tag="aside">eader</span> 1</div></div>'); }); + test('wrap text in node - text not a first node', function() { + var c = canvas.create('<div wlxml-tag="header">Alice <span wlxml-tag="span">has a</span> cat</div>'); + var header = c.findNodes({tag: 'header'})[0]; + var wrapper = canvasNode.create({tag: 'aside'}); + c.nodeWrap({inside: header, _with: wrapper, offsetStart: 1, offsetEnd: 4, textNodeIdx: 2}); + assertDomEqual(c.getContent(), '<div wlxml-tag="header">Alice <span wlxml-tag="span">has a</span> <span wlxml-tag="aside">cat</span></div>'); + }); + + test('wrap text with nodes inside', function() { + var c = canvas.create('<div wlxml-tag="header">Alice has a <span wlxml-tag="span">small</span> cat</div>'); + var header = c.findNodes({tag: 'header'})[0]; + var wrapper = canvasNode.create({tag: 'aside'}); + c.nodeWrap({inside: header, _with: wrapper, offsetStart: 6, offsetEnd: 4, textNodeIdx: [0,2]}) + assertDomEqual(c.getContent(), '<div wlxml-tag="header">Alice <span wlxml-tag="aside">has a <span wlxml-tag="span">small</span> cat</span></div>'); + }); + test('split node', function() { var c = canvas.create('<div wlxml-tag="section"><div wlxml-tag="header">Header 1</div></div>'); var header = c.findNodes({tag: 'header'})[0]; @@ -174,5 +190,76 @@ define([ <div wlxml-tag="div">cat</div>\ </div>')); }); + + test('checking if node is inside a list', function() { + var c = canvas.create(utils.cleanUp('\ + <div wlxml-tag="section">\ + <div wlxml-tag="div" wlxml-class="list-items-enum">\ + <div wlxml-tag="div" wlxml-class="item">alice <span wlxml-tag="span"></span</div>\ + <div wlxml-tag="div" wlxml-class="item">cat</div>\ + </div>\ + </div>')); + assert.ok(c.nodeInsideList({node: c.findNodes({klass: 'item'})[1]}), 'item is inside a list'); + assert.ok(c.nodeInsideList({node: c.findNodes({tag: 'span'})[0]}), 'things nested in item are inside a list'); + }); + + test('moving items to nested list', function() { + var listHTML = utils.cleanUp('\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">alice</div>\ + <div wlxml-tag="div" wlxml-class="item">cat</div>\ + <div wlxml-tag="div" wlxml-class="item">dog</div>\ + <div wlxml-tag="div" wlxml-class="item">bee</div>\ + </div>'); + var c = canvas.create(listHTML); + var items = c.findNodes({klass: 'item'}); + var cat_item = items[1]; + var dog_item = items[2]; + + c.listCreate({start: cat_item, end: dog_item}); + + assertDomEqual(c.getContent(), utils.cleanUp('\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">alice</div>\ + <div wlxml-tag="div" wlxml-class="item" class="canvas-silent-item">\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">cat</div>\ + <div wlxml-tag="div" wlxml-class="item">dog</div>\ + </div>\ + </div>\ + <div wlxml-tag="div" wlxml-class="item">bee</div>\ + </div>' + )); + }); + + test('removing nested list', function() { + var nestedList = utils.cleanUp('\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">alice</div>\ + <div wlxml-tag="div" wlxml-class="item">\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">cat</div>\ + <div wlxml-tag="div" wlxml-class="item">dog</div>\ + </div>\ + </div>\ + <div wlxml-tag="div" wlxml-class="item">bee</div>\ + </div>'); + + var c = canvas.create(nestedList); + var dog_item = c.findNodes('[wlxml-class=list-items] [wlxml-class=list-items] > div')[1]; + assert.equal(dog_item.getContent(), 'dog'); + + c.listRemove({pointer: dog_item}); + + assertDomEqual(c.getContent(), utils.cleanUp('\ + <div wlxml-tag="div" wlxml-class="list-items">\ + <div wlxml-tag="div" wlxml-class="item">alice</div>\ + <div wlxml-tag="div" wlxml-class="item">cat</div>\ + <div wlxml-tag="div" wlxml-class="item">dog</div>\ + <div wlxml-tag="div" wlxml-class="item">bee</div>\ + </div>')); + + + }); }); }); \ No newline at end of file