a1595f73e77fbbc9d026d668ea572c96bca8c210
[fnpeditor.git] / modules / documentCanvas / tests / canvasNode.test.js
1 define([
2 'libs/jquery-1.9.1.min',
3 'libs/chai', 
4 './utils.js',
5 'modules/documentCanvas/canvasNode'
6 ], function($, chai, utils, canvasNode) {
7
8 'use strict';
9
10 var assert = chai.assert;
11
12 var assertDomEqual = function(lhs, rhs) {
13    lhs.attr('id', '');
14    rhs.attr('id', '');
15    return assert.ok(lhs[0].isEqualNode(rhs[0]), 'nodes are equal');
16
17 };
18
19 suite('Create canvas node', function() {  
20     test('from description', function() {
21         var node = canvasNode.create({tag: 'header', klass: 'some-class', content: 'some text content'});
22         assert.equal(node.getTag(), 'header');
23         assert.equal(node.getClass(), 'some-class');
24         assert.equal(node.getContent(), 'some text content');
25         assertDomEqual($('<div wlxml-tag="header" wlxml-class="some-class">some text content</div>'), node.dom);
26     });
27     
28     test('from dom object', function() {
29         var node = canvasNode.create($('<div wlxml-tag="header" wlxml-class="some-class" id="1">'));
30         assert.equal(node.getTag(), 'header');
31         assert.equal(node.getClass(), 'some-class');
32         //assertDomEqual($('<div wlxml-tag="header" wlxml-class="some-class">'), node.dom);
33     });
34 });
35
36 suite('class information', function() {
37     test('class of', function() {
38         var node = canvasNode.create({tag: 'header', klass: 'a-b-c'});
39         assert.ok(node.isOfClass('a'), 'first level');
40         assert.ok(node.isOfClass('a-b'), 'second level');
41         assert.ok(node.isOfClass('a-b-c'), 'third level');
42         assert.notOk(node.isOfClass('b-c'));
43         
44         var node2 = canvasNode.create({tag: 'header'});
45         assert.notOk(node2.isOfClass('b'));
46
47     });
48
49 });
50
51 suite('comparing nodes', function() {
52     test('isSame', function() {
53         var html = '<div wlxml-class="some-class" wlxml-tag="some-tag">';
54         var dom1 = $(html);
55         var dom2 = $(html);
56         assert.ok(canvasNode.create(dom1).isSame(canvasNode.create(dom1)));
57         assert.notOk(canvasNode.create(dom1).isSame(canvasNode.create(dom2)));
58     });
59 });
60
61
62 });