// ========================================================================== // Project: SproutCore
- JavaScript Application Framework // License: Licensed under MIT license (see license.js) // ========================================================================== /*globals module ok equals same test Sample */ var basic, baseTypes, bindingPage, testView, design;
module('SC.DesignCoder', {
setup: function () { basic = SC.Page.design({}); testView = SC.View.extend({}); testView.Designer = SC.ViewDesigner.extend({ designProperties: ['s', 'n', 'b', 'a', 'h', 'valueBinding'] }); baseTypes = SC.Page.create({ needsDesigner: true, mainView: testView.design({s:'string',n:12,b:false,a:[1, 2, 3],h:{a:'b',c:'d'}}) }); bindingPage = SC.Page.create({ number: 12, needsDesigner: true, mainView: testView.design({valueBinding: SC.Binding.from('.page.number')})//.create() //to get it to run on the binding itself... }); }, teardown: function () { }
});
test('Verify basic page file encoding', function () {
design = SC.DesignCoder.encode(basic); equals(design.trim(), 'SC.Page.design({})', 'basic page encoded');
});
test('Verify view in page encoding', function () {
baseTypes.get('mainView'); design = SC.DesignCoder.encode(baseTypes); equals(design.trim(),'SC.Page.design({mainView: SC.View.design({s: "string",n: 12,b: false,a: [1,2,3],h: {"a": "b","c": "d"}})})', 'basic types encoded');
});
test('Verify binding in page encoding', function () {
SC.RunLoop.begin(); bindingPage.get('mainView'); SC.RunLoop.end(); design = SC.DesignCoder.encode(bindingPage); equals(design.trim(),'SC.Page.design({mainView: SC.View.design({valueBinding: SC.Binding.from(\'.page.number\')})})', 'binding types encoded');
});