'), node.dom);
- });
-});
-
-suite('comparing nodes', function() {
- test('isSame', function() {
- var html = '
';
- var dom1 = $(html);
- var dom2 = $(html);
- assert.ok(canvasNode.create(dom1).isSame(canvasNode.create(dom1)));
- assert.notOk(canvasNode.create(dom1).isSame(canvasNode.create(dom2)));
- });
-});
-
-
+define([
+'libs/jquery-1.9.1.min',
+'libs/chai',
+'./utils.js',
+'modules/documentCanvas/canvasNode'
+], function($, chai, utils, canvasNode) {
+
+'use strict';
+
+var assert = chai.assert;
+
+var assertDomEqual = function(lhs, rhs) {
+ lhs.attr('id', '');
+ rhs.attr('id', '');
+ return assert.ok(lhs[0].isEqualNode(rhs[0]), 'nodes are equal');
+
+};
+
+suite('Create canvas node', function() {
+ test('from description', function() {
+ var node = canvasNode.create({
+ tag: 'header',
+ klass: 'some-class',
+ content: 'some text content',
+ meta: {uri: 'some uri'}
+ });
+ assert.equal(node.getTag(), 'header');
+ assert.equal(node.getClass(), 'some-class');
+ assert.equal(node.getContent(), 'some text content');
+ assert.equal(node.getMetaAttr('uri'), 'some uri');
+ assertDomEqual($('
some text content
'), node.dom);
+ });
+
+ test('from dom object', function() {
+ var node = canvasNode.create($('
'));
+ assert.equal(node.getTag(), 'header');
+ assert.equal(node.getClass(), 'some-class');
+ assert.equal(node.getMetaAttr('uri'), 'some uri');
+ //assertDomEqual($('
'), node.dom);
+ });
+});
+
+suite('class information', function() {
+ test('class of', function() {
+ var node = canvasNode.create({tag: 'header', klass: 'a-b-c'});
+ assert.ok(node.isOfClass('a'), 'first level');
+ assert.ok(node.isOfClass('a-b'), 'second level');
+ assert.ok(node.isOfClass('a-b-c'), 'third level');
+ assert.notOk(node.isOfClass('b-c'));
+
+ var node2 = canvasNode.create({tag: 'header'});
+ assert.notOk(node2.isOfClass('b'));
+
+ });
+
+});
+
+suite('comparing nodes', function() {
+ test('isSame', function() {
+ var html = '
';
+ var dom1 = $(html);
+ var dom2 = $(html);
+ assert.ok(canvasNode.create(dom1).isSame(canvasNode.create(dom1)));
+ assert.notOk(canvasNode.create(dom1).isSame(canvasNode.create(dom2)));
+ });
+});
+
+suite('meta attributes', function() {
+ test('get list of node\'s meta attributes', function() {
+ var node = canvasNode.create({tag: 'tag', klass: 'klass', meta: {a:1, b:2}});
+ var attrs = node.getMetaAttrs();
+ var expected = [{name: 'a', value: '1'}, {name:'b', value: '2'}];
+
+ assert.deepEqual(attrs.sort(), expected.sort());
+ });
+
+ test('set meta attribute', function() {
+ var node = canvasNode.create({tag: 'tag', meta: {a:'1'}});
+ node.setMetaAttr('a', '2');
+ assert.equal(node.dom.attr('wlxml-meta-a'), '2');
+ })
+})
+
});
\ No newline at end of file