From 659db70caa2ff1e3a43e98f3895f0353ebcee154 Mon Sep 17 00:00:00 2001 From: Scott González Date: Tue, 18 Jan 2011 01:46:26 -0500 Subject: Widget: Added ._bind() for easily binding events with correct context and disabled checking. Pretty much a direct copy from the previous bind branch. --- tests/unit/widget/widget_core.js | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'tests') diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 388e078b0..f0afaa956 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -404,6 +404,99 @@ test( ".widget() - overriden", function() { same( wrapper[0], $( "
" ).testWidget().testWidget( "widget" )[0] ); }); +test( "_bind to element (default)", function() { + expect( 12 ); + var self; + $.widget( "ui.testWidget", { + _create: function() { + self = this; + this._bind({ + keyup: this.keyup, + keydown: this.keydown + }); + }, + keyup: function( event ) { + equals( self, this ); + equals( self.element[0], event.currentTarget ); + equals( "keyup", event.type ); + }, + keydown: function( event ) { + equals( self, this ); + equals( self.element[0], event.currentTarget ); + equals( "keydown", event.type ); + } + }); + var widget = $( "
" ) + .testWidget() + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "disable" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "enable" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "destroy" ) + .trigger( "keyup" ) + .trigger( "keydown" ); +}); + +test( "_bind to descendent", function() { + expect( 12 ); + var self; + $.widget( "ui.testWidget", { + _create: function() { + self = this; + this._bind( this.element.find( "strong" ), { + keyup: this.keyup, + keydown: this.keydown + }); + }, + keyup: function( event ) { + equals( self, this ); + equals( self.element.find( "strong" )[0], event.currentTarget ); + equals( "keyup", event.type ); + }, + keydown: function(event) { + equals( self, this ); + equals( self.element.find( "strong" )[0], event.currentTarget ); + equals( "keydown", event.type ); + } + }); + // trigger events on both widget and descendent to ensure that only descendent receives them + var widget = $( "

hello world

" ) + .testWidget() + .trigger( "keyup" ) + .trigger( "keydown" ); + var descendent = widget.find( "strong" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "disable" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + descendent + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "enable" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + descendent + .trigger( "keyup" ) + .trigger( "keydown" ); + widget + .testWidget( "destroy" ) + .trigger( "keyup" ) + .trigger( "keydown" ); + descendent + .trigger( "keyup" ) + .trigger( "keydown" ); +}); + test( "._trigger() - no event, no ui", function() { expect( 7 ); var handlers = []; -- cgit v1.2.3