X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/f748267f6e177cba7cb4a91439e6fff037cb1d9c..0f406b246f9261651b5982be71a49189349c8e3e:/modules/documentCanvas/tests/canvas.test.js?ds=inline diff --git a/modules/documentCanvas/tests/canvas.test.js b/modules/documentCanvas/tests/canvas.test.js new file mode 100644 index 0000000..386e375 --- /dev/null +++ b/modules/documentCanvas/tests/canvas.test.js @@ -0,0 +1,103 @@ +define([ +'libs/jquery-1.9.1.min', +'libs/chai', +'./utils.js', +'modules/documentCanvas/canvas' +], function($, chai, utils, canvas) { + + 'use strict'; + + var assert = chai.assert; + + assert.xmlEqual = function(lhsText, rhsText) { + var cleanLhs = utils.cleanUp(lhsText); + var cleanRhs = utils.cleanUp(rhsText); + + var lhs = $(cleanLhs); + var rhs = $(cleanRhs); + + this.equal(lhs.length, 1); + this.equal(rhs.length, 1); + + lhs = lhs.get(0); + rhs = rhs.get(0); + + var test = lhs.isEqualNode(rhs); + if(!test) { + console.log(cleanLhs); + console.log(cleanRhs); + } + return this.ok(test, 'xmls are equal'); + }; + + var retrievingTest = function(title, xml) { + test(title, function() { + var c = new canvas.Canvas(xml); + assert.xmlEqual(c.toXML(), xml); + }); + }; + + suite('Basic document retrieving', function() { + test('empty document', function() { + var c = new canvas.Canvas(''); + assert.equal(c.toXML(), ''); + }); + retrievingTest('empty tag', '
'); + retrievingTest('tag with content', '
Some text
'); + retrievingTest('tag with class', '
'); + }); + + suite('Nodes', function() { + test('getting nodes via selector', function() { + var c = new canvas.Canvas('
Header 1
'); + var header = c.getNode({tag: 'header'})[0]; + assert.equal(header.tag, 'header'); + assert.equal(header.klass, 'some-class'); + }); + + test('inserting after', function() { + var c = new canvas.Canvas('
Header 1
'); + var header = c.getNode({tag: 'header'})[0]; + c.insertNode({place: 'after', context: header, tag: 'div', klass: 'some.class'}); + assert.xmlEqual(c.toXML(), '
Header 1
'); + }); + + test('wrap text in node', function() { + var c = new canvas.Canvas('
Header 1
'); + var header = c.getNode({tag: 'header'})[0]; + c.insertNode({place: 'wrapText', context: header, tag: 'span', klass: 'url', offsetStart: 1, offsetEnd: 6}); + assert.xmlEqual(c.toXML(), '
Header 1
'); + }); + + test('split node', function() { + var c = new canvas.Canvas('
Header 1
'); + var header = c.getNode({tag: 'header'})[0]; + c.splitNode({node: header, offset: 4}); + assert.xmlEqual(c.toXML(), '\ +
\ +
Head
\ +
er 1
\ +
' + ); + }); + + test('list', function() { + var c = new canvas.Canvas('
Alice
has
a cat
'); + var div1 = c.getNode({tag:'div'})[0]; + var div2 = c.getNode({tag:'div'})[1]; + + c.createList({start: div1, end: div2}); + + assert.xmlEqual(c.toXML(), '\ +
\ +
\ +
Alice
\ +
has
\ +
a cat
\ +
\ +
'); + + }); + }); + +}); \ No newline at end of file