X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/20b9b567165ee10532a441f809a2a718b5b5e570..e32eab0:/src/wlxml/extensions/list/list.test.js diff --git a/src/wlxml/extensions/list/list.test.js b/src/wlxml/extensions/list/list.test.js index 1efa795..2887b4f 100644 --- a/src/wlxml/extensions/list/list.test.js +++ b/src/wlxml/extensions/list/list.test.js @@ -2,18 +2,24 @@ define(function(require) { 'use strict'; +/* jshint multistr:true */ +/* globals describe, it */ + var chai = require('libs/chai'), wlxml = require('wlxml/wlxml'), expect = chai.expect, $ = require('libs/jquery'), - lists = require('wlxml/extensions/list/list'); + listsExtension = require('wlxml/extensions/list/list'); var getDocumentFromXML = function(xml, options) { - return wlxml.WLXMLDocumentFromXML(xml, options || {}); + var doc = wlxml.WLXMLDocumentFromXML(xml, options || {}); + doc.registerExtension(listsExtension); + return doc; }; var removeEmptyTextNodes = function(xml) { + /* globals Node */ xml = $($.trim(xml)); xml.find(':not(iframe)') .addBack() @@ -37,7 +43,7 @@ describe('Lists extension', function() { div1 = section.contents()[1], textA = section.contents()[2]; - doc.transform('createList', {node1: div1, node2: textA}); + doc.createList({node1: div1, node2: textA}); expect(section.contents().length).to.equal(3, 'section has three child nodes'); @@ -54,6 +60,15 @@ describe('Lists extension', function() { expect(child3.contents()[0].getText()).to.equal('cat'); }); + it('Handles text nodes on the boundaries', function() { + var doc = getDocumentFromXML('
Alicehasa cat
'), + 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('\
\ @@ -70,7 +85,7 @@ describe('Lists extension', function() { itemC = outerList.contents('.item')[2]; - doc.transform('createList', {node1: itemB, node2: itemC}); + doc.createList({node1: itemB, node2: itemC}); var outerListItems = outerList.contents('.item'), innerList = outerListItems[1].contents()[0]; @@ -106,7 +121,7 @@ describe('Lists extension', function() { item1 = list.contents()[1], item2 = list.contents()[2]; - doc.transform('extractItems', {item1: item1, item2: item2}); + doc.extractItems({item1: item1, item2: item2}); var section = doc.root, list1 = section.contents()[0], @@ -121,10 +136,10 @@ describe('Lists extension', function() { expect(list1.contents()[0].contents()[0].getText()).to.equal('0', 'first item of the first list is a first item of the original list'); expect(oldItem1.contents()[0].getText()).to.equal('1', 'first item got extracted'); - expect(oldItem1.getClass() === '').to.equal(true, 'first extracted element has no wlxml class'); + expect(oldItem1.getClass() === 'p').to.equal(true, 'first extracted element became a paragraph'); expect(oldItem2.contents()[0].getText()).to.equal('2', 'second item got extracted'); - expect(oldItem2.getClass() === '').to.equal(true, 'second extracted element has no wlxml class'); + expect(oldItem2.getClass() === 'p').to.equal(true, 'second extracted element became a paragraph'); expect(list2.is('list')).to.equal(true, 'last section child is a list'); expect(list2.contents().length).to.equal(1, 'second list has one child'); @@ -142,10 +157,9 @@ describe('Lists extension', function() {
')), list = doc.root.contents()[0], item1 = list.contents()[0], - item2 = list.contents()[1], - item3 = list.contents()[2]; + item2 = list.contents()[1]; - doc.transform('extractItems', {item1: item1, item2: item2}); + doc.extractItems({item1: item1, item2: item2}); var section = doc.root, oldItem1 = section.contents()[0], @@ -169,11 +183,10 @@ describe('Lists extension', function() { \ ')), list = doc.root.contents()[0], - item1 = list.contents()[0], item2 = list.contents()[1], item3 = list.contents()[2]; - doc.transform('extractItems', {item1: item2, item2: item3}); + doc.extractItems({item1: item2, item2: item3}); var section = doc.root, oldItem1 = section.contents()[1], @@ -199,7 +212,7 @@ describe('Lists extension', function() { item1 = list.contents()[0], item2 = list.contents()[1]; - doc.transform('extractItems', {item1: item1, item2: item2}); + doc.extractItems({item1: item1, item2: item2}); var section = doc.root, oldItem1 = section.contents()[0], @@ -229,11 +242,10 @@ describe('Lists extension', function() { nestedList = list.contents()[1].contents()[0], nestedListItem = nestedList.contents()[1]; - doc.transform('extractItems', {item1: nestedListItem, item2: nestedListItem}); + doc.extractItems({item1: nestedListItem, item2: nestedListItem}); //@@ name! - var section = doc.root, - list = section.contents()[0], - item1 = list.contents()[0], + list = doc.root.contents()[0]; + var item1 = list.contents()[0], item2 = list.contents()[1], // item3 = list.contents()[2], item4 = list.contents()[3], // @@ -278,11 +290,9 @@ describe('Lists extension', function() { nestedListItem1 = nestedList.contents()[1], nestedListItem2 = nestedList.contents()[2]; - doc.transform('extractItems', {item1: nestedListItem1, item2: nestedListItem2}); - - var section = doc.root, - list = section.contents()[0], - item1 = list.contents()[0], + doc.extractItems({item1: nestedListItem1, item2: nestedListItem2}); + list = doc.root.contents()[0]; + var item1 = list.contents()[0], item2 = list.contents()[1], item3 = list.contents()[2], item4 = list.contents()[3], @@ -319,11 +329,10 @@ describe('Lists extension', function() { nestedListItem1 = nestedList.contents()[0], nestedListItem2 = nestedList.contents()[1]; - doc.transform('extractItems', {item1: nestedListItem1, item2: nestedListItem2}); + doc.extractItems({item1: nestedListItem1, item2: nestedListItem2}); - var section = doc.root, - list = section.contents()[0], - item1 = list.contents()[0], + list = doc.root.contents()[0]; + var item1 = list.contents()[0], item2 = list.contents()[1], item3 = list.contents()[2], item4 = list.contents()[3], @@ -360,11 +369,10 @@ describe('Lists extension', function() { nestedListItem1 = nestedList.contents()[0], nestedListItem2 = nestedList.contents()[1]; - doc.transform('extractItems', {item1: nestedListItem1, item2: nestedListItem2}); + doc.extractItems({item1: nestedListItem1, item2: nestedListItem2}); - var section = doc.root, - list = section.contents()[0], - item1 = list.contents()[0], + list = doc.root.contents()[0]; + var item1 = list.contents()[0], item2 = list.contents()[1], item3 = list.contents()[2], item4 = list.contents()[3]; @@ -395,9 +403,9 @@ describe('Lists extension', function() { nestedList = list.contents()[1].contents()[0], nestedListItem = nestedList.contents()[0]; - var test = doc.transform('extractItems', {item1: nestedListItem, item2: nestedListItem, merge: false}); + var test = doc.extractItems({item1: nestedListItem, item2: nestedListItem, merge: false}); - expect(test).to.equal(true, 'extraction status ok'); + expect(test.sameNode(nestedListItem)).to.equal(true, 'first item returned'); var sectionContents = section.contents(), extractedItem = sectionContents[1]; @@ -406,7 +414,7 @@ describe('Lists extension', function() { expect(sectionContents[0].is('list')).to.equal(true, 'first child is a list'); expect(extractedItem.getTagName()).to.equal('div', 'extracted item is a wlxml div'); - expect(extractedItem.getClass()).to.equal('', 'extracted item has no wlxml class'); + expect(extractedItem.getClass()).to.equal('p', 'extracted item became a paragraph'); expect(extractedItem.contents()[0].getText()).to.equal('1.1', 'extracted item ok'); expect(sectionContents[2].is('list')).to.equal(true, 'second child is a list'); });