dat.gui/tests/test.gui.js
2014-09-09 13:58:28 -07:00

84 lines
2.1 KiB
JavaScript

describe( 'Gui', function() {
it( 'exists', function() {
expect( Gui ).toBeDefined();
} );
it( 'has a ready callback', function() {
var ready = {
ready: function() {}
};
spyOn( ready, 'ready' );
expect( Gui.ready ).toBeDefined();
runs( function() {
Gui.ready( ready.ready );
} );
waits( 100 );
runs( function() {
expect( ready.ready ).toHaveBeenCalled();
} );
} );
it( 'picks the right controller for the job', function() {
expectController( 'dat-gui-number', 1234 );
expectController( 'dat-gui-string', 'string value' );
expectController( 'dat-gui-function', function() {} );
expectController( 'dat-gui-boolean', true );
expectController( 'dat-gui-option', 'hey', [ 'hey', 'hi', 'ho' ] );
expectController( 'dat-gui-option', 'a', { a: 'a', b: 'b', c: 'c' } );
// expectController( 'controller-color', '#00ff00' );
// expectController( 'controller-color', '#aba' );
// expectController( 'controller-color', 'rgba(255, 0, 255, 0.2)' );
// expectController( 'controller-color', 'rgb(255, 0, 255)' );
// expectController( 'controller-color', 'hsl(240, 100%, 50%)' );
// expectController( 'controller-color', 'hsla(255, 100%, 40%, 0.5)' );
} );
function expectController( controllerType, value ) {
var gui = new Gui();
// test using gui.add
var params = {
'name': value
};
var args = Array.prototype.slice.call( arguments, 2 );
args.unshift( 'name' );
args.unshift( params );
var controller = gui.add.apply( gui, args );
expect( controller.nodeName.toLowerCase() ).toBe( controllerType );
// test using gui.anon
var gui = new Gui();
args = Array.prototype.slice.call( arguments, 2 );
args.unshift( value );
args.unshift( 'name' );
controller = gui.var.apply( gui, args );
expect( controller.nodeName.toLowerCase() ).toBe( controllerType );
}
} );