X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/9db0e3facfdcb376b589ea922215bbdb1a3d1787..26de8c3163f128baa02c78d172effcdf38a8adbc:/modules/documentCanvas/tests/classAttributes.test3.js diff --git a/modules/documentCanvas/tests/classAttributes.test3.js b/modules/documentCanvas/tests/classAttributes.test3.js new file mode 100644 index 0000000..49e0be0 --- /dev/null +++ b/modules/documentCanvas/tests/classAttributes.test3.js @@ -0,0 +1,58 @@ +define([ +'libs/chai', +'modules/documentCanvas/classAttributes' +], function(chai, classAttributes) { + +var stubDict = { + 'klass': { + 'prop': 'string' + }, + 'klass.sub1': { + 'prop1': 'string' + }, + 'klass.sub1.sub2': { + 'prop2': 'string' + } +}; + +var assert = chai.assert; + +describe('Class attributes', function() { + it('class has own attribute', function() { + assert.ok(classAttributes.hasMetaAttr('klass.sub1.sub2', 'prop2', stubDict)); + }); + + it('class has attributes from parent classes', function() { + assert.ok(classAttributes.hasMetaAttr('klass.sub1.sub2', 'prop', stubDict)); + assert.ok(classAttributes.hasMetaAttr('klass.sub1.sub2', 'prop1', stubDict)); + }); + + it('list of class meta attributes', function() { + var attrList = classAttributes.getMetaAttrsList('klass.sub1.sub2', stubDict); + + assert.deepEqual(attrList.own, [{name: 'prop2', type: 'string'}]); + assert.deepEqual(attrList.inheritedFrom['klass.sub1'], [{name: 'prop1', type: 'string'}]); + assert.deepEqual(attrList.inheritedFrom.klass, [{name: 'prop', type: 'string'}]); + assert.deepEqual(attrList.all.sort(), [ + {name: 'prop', type: 'string'}, + {name: 'prop1', type: 'string'}, + {name: 'prop2', type: 'string'} + ].sort(), 'all values'); + }); + + it('class without meta attrs', function() { + var attrList = classAttributes.getMetaAttrsList('some.class', {}); + assert.deepEqual(attrList.own, [], 'empty own list'); + assert.deepEqual(attrList.inheritedFrom, {}, 'empty inherited dict'); + assert.deepEqual(attrList.all, [], 'empty all list'); + }); + + it('empty class', function() { + var attrList = classAttributes.getMetaAttrsList('', {}); + assert.deepEqual(attrList.own, [], 'empty own list'); + assert.deepEqual(attrList.inheritedFrom, {}, 'empty inherited dict'); + assert.deepEqual(attrList.all, [], 'empty all list'); + }); +}); + +}); \ No newline at end of file