+define( [
+ "jquery",
+ "./helper",
+ "ui/widgets/calendar"
+], function( $, testHelper ) {
+
+module( "calendar: events" );
+
+asyncTest( "select", function() {
+ expect( 6 );
+
+ var message, eventType,
+ element = $( "#calendar" ).calendar( {
+ select: function( event ) {
+ ok( true, "select event fired " + message );
+ equal(
+ event.type,
+ "calendarselect",
+ "select event " + message
+ );
+ equal(
+ event.originalEvent.type,
+ eventType,
+ "select originalEvent " + message
+ );
+ }
+ } );
+
+ function step1() {
+ setTimeout( function() {
+ eventType = "mousedown";
+ message = "on calendar button " + eventType;
+ element.find( "table button:eq(1)" ).simulate( eventType );
+ step2();
+ }, 50 );
+ }
+
+ function step2() {
+ setTimeout( function() {
+ eventType = "keydown";
+ message = "on calendar button " + eventType;
+ testHelper.focusGrid( element )
+ .simulate( eventType, { keyCode: $.ui.keyCode.END } )
+ .simulate( eventType, { keyCode: $.ui.keyCode.ENTER } );
+ step3();
+ }, 50 );
+ }
+
+ // This should not trigger another event
+ function step3() {
+ setTimeout( function() {
+ element.calendar( "disable" );
+ element.find( "table button:eq(10)" ).simulate( "mousedown" );
+ start();
+ }, 50 );
+ }
+
+ step1();
+} );
+
+} );