topical media & game development
mobile-sugar-test-DivSugarTest.js / js
(function() {
'use strict';
module('DivSugar');
test('constants', function() {
strictEqual(DivSugar.VERSION, '1.2.0');
strictEqual(DivSugar.EPSILON, 0.0001);
strictEqual(DivSugar.NUM_OF_DIGITS, 4);
strictEqual(DivSugar.DEG_TO_RAD * 180, Math.PI);
strictEqual(DivSugar.RAD_TO_DEG * Math.PI, 180);
});
test('properties', function() {
strictEqual(DivSugar.rootTask instanceof DivSugar.Task, true);
});
test('getFrameCount', function() {
var frameCount1 = DivSugar.getFrameCount();
ok(frameCount1 >= 0);
setTimeout(function() {
var frameCount2 = DivSugar.getFrameCount();
start();
ok(frameCount2 > frameCount1);
}, 100);
stop();
});
test('getKeyState', function() {
strictEqual(typeof DivSugar.getKeyState(64, 'on'), 'boolean');
strictEqual(typeof DivSugar.getKeyState(64, 'off'), 'boolean');
strictEqual(typeof DivSugar.getKeyState(64, 'pressed'), 'boolean');
strictEqual(typeof DivSugar.getKeyState(64, 'released'), 'boolean');
raises(function() {
DivSugar.getKeyState(64, 'dummy');
}, function(e) {
strictEqual(e, "DivSugar: Unknown key state 'dummy'");
return true;
});
});
test('getMouseX and getMouseY', function() {
strictEqual(typeof DivSugar.getMouseX(), 'number');
strictEqual(typeof DivSugar.getMouseY(), 'number');
});
test('getMouseState', function() {
strictEqual(typeof DivSugar.getMouseState(0, 'on'), 'boolean');
strictEqual(typeof DivSugar.getMouseState(0, 'off'), 'boolean');
strictEqual(typeof DivSugar.getMouseState(0, 'pressed'), 'boolean');
strictEqual(typeof DivSugar.getMouseState(0, 'released'), 'boolean');
raises(function() {
DivSugar.getMouseState(0, 'dummy');
}, function(e) {
strictEqual(e, "DivSugar: Unknown mouse state 'dummy'");
return true;
});
});
test('inherit', function() {
function Class1(a, b) {
this.a = a;
this.b = b;
this.c = 123;
}
Class1.prototype.getValue = function() { return this.c; };
function Class2(a, b) {
this.constructor.uber.constructor(a * 10, b * 10);
this.d = 456;
}
DivSugar.inherit(Class2, Class1);
Class2.prototype.getValue = function() { return this.d; };
Class2.prototype.getParentValue = function() { return this.constructor.uber.getValue(); };
var ins1 = new Class1(1, 2);
strictEqual(ins1.a, 1);
strictEqual(ins1.b, 2);
strictEqual(ins1.c, 123);
strictEqual(ins1.getValue(), 123);
var ins2 = new Class2(1, 2);
strictEqual(ins2.a, 10);
strictEqual(ins2.b, 20);
strictEqual(ins2.c, 123);
strictEqual(ins2.getValue(), 456);
strictEqual(ins2.getParentValue(), 123);
ok(DivSugar.inherit(Class2, Class1).inherit(Class2, Class1));
});
test('generateId', function() {
strictEqual(DivSugar.generateId(), '_divsugar_id_1');
strictEqual(DivSugar.generateId(), '_divsugar_id_2');
strictEqual(DivSugar.generateId(), '_divsugar_id_3');
});
test('getImageSize', function() {
DivSugar.getImageSize('../examples/assets/coin.png', function(width, height) {
start();
strictEqual(width, 400);
strictEqual(height, 200);
});
stop();
ok(DivSugar.getImageSize('', function() {}).getImageSize('', function() {}));
});
test('getCSSColor', function() {
strictEqual(DivSugar.getCSSColor(16, 17, 18), '#101112');
strictEqual(DivSugar.getCSSColor(10.1, 10.2, 10.3), '#0a0a0a');
strictEqual(DivSugar.getCSSColor(10.7, 10.8, 10.9), '#0b0b0b');
strictEqual(DivSugar.getCSSColor(-1, -2, -3), '#000000');
strictEqual(DivSugar.getCSSColor(301, 302, 303), '#ffffff');
});
})();
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.