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', '');
+ retrievingTest('tag with class', '');
+ });
+
+ suite('Nodes', function() {
+ test('getting nodes via selector', function() {
+ var c = new canvas.Canvas('');
+ 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('');
+ var header = c.getNode({tag: 'header'})[0];
+ c.insertNode({place: 'after', context: header, tag: 'div', klass: 'some.class'});
+ assert.xmlEqual(c.toXML(), '');
+ });
+
+ test('wrap text in node', function() {
+ var c = new canvas.Canvas('');
+ 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(), '');
+ });
+
+ test('split node', function() {
+ var c = new canvas.Canvas('');
+ var header = c.getNode({tag: 'header'})[0];
+ c.splitNode({node: header, offset: 4});
+ assert.xmlEqual(c.toXML(), '\
+ '
+ );
+ });
+
+ test('list', function() {
+ var c = new canvas.Canvas('');
+ 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