X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/a398f2a96740ebe6dd60559d90e74c648e7009af..421c624a25e602a3d3bb72bd6c01cbb04cbf7d11:/modules/documentCanvas/tests/canvasNode.test.js diff --git a/modules/documentCanvas/tests/canvasNode.test.js b/modules/documentCanvas/tests/canvasNode.test.js index a1595f7..2452fff 100644 --- a/modules/documentCanvas/tests/canvasNode.test.js +++ b/modules/documentCanvas/tests/canvasNode.test.js @@ -18,17 +18,24 @@ var assertDomEqual = function(lhs, rhs) { suite('Create canvas node', function() { test('from description', function() { - var node = canvasNode.create({tag: 'header', klass: 'some-class', content: 'some text content'}); + var node = canvasNode.create({ + tag: 'header', + klass: 'uri', + content: 'some text content', + meta: {uri: 'some uri'} + }); assert.equal(node.getTag(), 'header'); - assert.equal(node.getClass(), 'some-class'); + assert.equal(node.getClass(), 'uri'); assert.equal(node.getContent(), 'some text content'); - assertDomEqual($('
some text content
'), node.dom); + assert.equal(node.getMetaAttr('uri'), 'some uri'); + assertDomEqual($('
some text content
'), node.dom); }); test('from dom object', function() { - var node = canvasNode.create($('
')); + 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); }); }); @@ -58,5 +65,44 @@ suite('comparing nodes', function() { }); }); +suite('meta attributes', function() { + test('get list of node\'s meta attributes', function() { + var node = canvasNode.create({tag: 'span', klass: 'uri', meta: {uri:'http://some.uri.com'}}); + var attrs = node.getMetaAttrs(); + var expected = [{name: 'uri', value: 'http://some.uri.com'}]; + + assert.deepEqual(attrs.sort(), expected.sort()); + }); + + test('get list of node\'s meta attributes when attributes not set', function() { + var node = canvasNode.create({tag: 'span', klass: 'uri'}); + var attrs = node.getMetaAttrs(); + var expected = [{name: 'uri', value: ''}]; + assert.deepEqual(attrs.sort(), expected.sort()); + }); + + test('set meta attribute', function() { + var node = canvasNode.create({tag: 'tag', klass: 'uri', meta: {'uri': 'some uri'}}); + node.setMetaAttr('uri', 'some uri 2'); + assert.equal(node.dom.attr('wlxml-meta-uri'), 'some uri 2'); + }); + + test('changing class changes meta attributes', function() { + var node = canvasNode.create({tag: 'span', klass: 'uri', meta: {uri: 'http://some.uri.com'}}); + + assert.equal(node.getMetaAttr('uri'), 'http://some.uri.com'); + + node.setClass('author'); + + assert.equal(node.getMetaAttr('uri'), undefined); + }); + + test('changing class to another with the same attribute keeps the value', function() { + var node = canvasNode.create({tag: 'span', klass: 'uri', meta: {uri: 'http://some.uri.com'}}); + assert.equal(node.getMetaAttr('uri'), 'http://some.uri.com'); + node.setClass('uri-subclass'); + assert.equal(node.getMetaAttr('uri'), 'http://some.uri.com'); + }); +}); }); \ No newline at end of file