module('Mouse Navigation 2011', { setup: function(){ /* Tests start with picker on March 31, 2011. */ this.input = $('') .appendTo('#qunit-fixture') .datepicker({format: "dd-mm-yyyy"}) .focus(); // Activate for visibility checks this.dp = this.input.data('datepicker'); this.picker = this.dp.picker; }, teardown: function(){ this.picker.remove(); } }); test('Selecting date from previous month while in January changes month and year displayed', function(){ var target; this.input.val('01-01-2011'); this.dp.update(); datesEqual(this.dp.viewDate, UTCDate(2011, 0, 1)); datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 1)); // Rendered correctly equal(this.dp.viewMode, 0); target = this.picker.find('.datepicker-days tbody td:first'); equal(target.text(), '26'); // Should be Dec 26 equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011'); // Updated internally on click target.click(); equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010'); datesEqual(this.dp.viewDate, UTCDate(2010, 11, 26)); datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 26)); // Re-rendered on click target = this.picker.find('.datepicker-days tbody td:first'); equal(target.text(), '28'); // Should be Nov 28 }); test('Selecting date from next month while in December changes month and year displayed', function(){ var target; this.input.val('01-12-2010'); this.dp.update(); datesEqual(this.dp.viewDate, UTCDate(2010, 11, 1)); datesEqual(this.dp.dates.get(-1), UTCDate(2010, 11, 1)); // Rendered correctly equal(this.dp.viewMode, 0); target = this.picker.find('.datepicker-days tbody td:last'); equal(target.text(), '8'); // Should be Jan 8 equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'December 2010'); // Updated internally on click target.click(); equal(this.picker.find('.datepicker-days thead th.datepicker-switch').text(), 'January 2011'); datesEqual(this.dp.viewDate, UTCDate(2011, 0, 8)); datesEqual(this.dp.dates.get(-1), UTCDate(2011, 0, 8)); // Re-rendered on click target = this.picker.find('.datepicker-days tbody td:first'); equal(target.text(), '26'); // Should be Dec 26 });