rhymix/tests/common/js/js_app.test.js
2011-09-02 07:53:09 +00:00

105 lines
2.8 KiB
JavaScript

jQuery(function($){
module('JAF');
var App = xe.createApp('App', {
value : 1,
init : function() {
this.value = 2;
},
API_GET_VALUE : function(sender, params) {
return this.value;
},
API_SET_VALUE : function(sender, params) {
this.value = params[0];
}
});
var Plugin = xe.createPlugin('Plugin', {
API_BEFORE_GET_VALUE : function(sender, params) {
if (params[0]) return false;
},
API_BEFORE_SET_VALUE : function(sender, params) {
params[0] = params[0] * 3;
},
API_METHOD : function(sender, params) {
$('#plugin-test').html(params[0]);
}
});
test('Global object - xe', function(){
equal(xe.getName(), 'Core');
ok($.isFunction(xe.createApp), 'xe has createApp method');
ok($.isFunction(xe.createPlugin), 'xe has createPlugin method');
ok($.isFunction(xe.getApps), 'xe has getApps method');
ok($.isFunction(xe.getApp), 'xe has getApp method');
ok($.isFunction(xe.registerApp), 'xe has registerApp method');
ok($.isFunction(xe.unregisterApp), 'xe has unregisterApp method');
ok($.isFunction(xe.broadcast), 'xe has broadcast method');
});
test('App', function() {
var app1 = new App();
equal(app1.getName(), 'App', 'The app1 is an instance of App.');
ok(xe.getApp('App') == null, 'The app1 is NOT registered yet.');
xe.registerApp(app1);
ok(xe.getApp('App')[0] === app1, 'The app1 is registered successfully.');
equal(app1.cast('GET_VALUE'), 2);
xe.unregisterApp(app1);
ok(xe.getApp('App') == null, 'The app1 is unregistered.');
});
test('Plugin', function() {
xe.registerApp(new App());
var plugin1 = new Plugin();
equal(plugin1.getName(), 'Plugin', 'The plugin1 is an instance of Plugin.');
var app1 = xe.getApp('App')[0];
app1.registerPlugin(plugin1);
ok(typeof app1.cast('GET_VALUE', [true]) == 'undefined', 'Stop GET_VALUE action');
var val = app1.cast('GET_VALUE');
equal(app1.cast('GET_VALUE'), val, 'Check current value');
app1.cast('SET_VALUE', [3]);
equal(app1.cast('GET_VALUE'), 9, 'Before hooker should change input value 3 into');
// original method
var obj = $('#plugin-test');
equal(obj.html(), '', 'There is no content');
app1.cast('METHOD', ['hello']);
equal(obj.html(), 'hello', 'The plugin set the content');
obj.hide();
xe.unregisterApp(app1);
});
test('Function : You can register a function as a message handler', function() {
xe.registerApp(new App());
function handler(sender, params) {
params[0] = params[0] + ', world!';
}
var app1 = xe.getApp('App')[0];
app1.registerPlugin(new Plugin());
var obj = $('#plugin-test');
app1.cast('METHOD', ['Hello']);
equal(obj.html(), 'Hello', 'The plugin set the content');
app1.registerHandler('BEFORE_METHOD', handler);
app1.cast('METHOD', ['Hello']);
equal(obj.html(), 'Hello, world!', 'The handler function changes a passed parameter.');
xe.unregisterApp(app1);
});
});