diff --git a/tests/unit/datepicker/datepicker_methods.js b/tests/unit/datepicker/datepicker_methods.js index 8a3c2b384..4c0b8bfb8 100644 --- a/tests/unit/datepicker/datepicker_methods.js +++ b/tests/unit/datepicker/datepicker_methods.js @@ -77,13 +77,11 @@ test( "value", function() { }); test( "valueAsDate", function() { - expect( 13 ); + expect( 6 ); - var minDate, maxDate, dateAndTimeToSet, dateAndTimeClone, - input = TestHelpers.datepicker.init( "#datepicker" ), + var input = TestHelpers.datepicker.init( "#datepicker" ), picker = input.datepicker( "widget" ), - date1 = new Date( 2008, 6 - 1, 4 ), - date2 = new Date(); + date1 = new Date( 2008, 6 - 1, 4 ); input.datepicker( "valueAsDate", new Date( 2014, 0, 1 ) ); equal( input.val(), "1/1/14", "Input's value set" ); @@ -99,36 +97,6 @@ test( "valueAsDate", function() { strictEqual( input.datepicker( "valueAsDate" ), null, "Set date - default" ); input.datepicker( "valueAsDate", date1 ); TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date1, "Set date - 2008-06-04" ); - - // With minimum/maximum - input = TestHelpers.datepicker.init( "#datepicker" ); - date1 = new Date( 2008, 1 - 1, 4 ); - date2 = new Date( 2008, 6 - 1, 4 ); - minDate = new Date( 2008, 2 - 1, 29 ); - maxDate = new Date( 2008, 3 - 1, 28 ); - - input.val( "" ).datepicker( "option", { min: minDate } ).datepicker( "valueAsDate", date2 ); - TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date2, "Set date min/max - value > min" ); - - input.datepicker( "valueAsDate", date1 ); - TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date2, "Set date min/max - value < min" ); - - input.val( "" ).datepicker( "option", { max: maxDate, min: null } ).datepicker( "valueAsDate", date1 ); - TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date1, "Set date min/max - value < max" ); - - input.datepicker( "valueAsDate", date2 ); - TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date1, "Set date min/max - value > max" ); - - input.val( "" ).datepicker( "option", { min: minDate } ).datepicker( "valueAsDate", date1 ); - ok( input.datepicker( "valueAsDate" ) === null, "Set date min/max - value < min" ); - - input.datepicker( "valueAsDate", date2 ); - ok( input.datepicker( "valueAsDate" ) === null, "Set date min/max - value > max" ); - - dateAndTimeToSet = new Date( 2008, 3 - 1, 28, 1, 11, 0 ); - dateAndTimeClone = new Date( 2008, 3 - 1, 28, 1, 11, 0 ); - input.datepicker( "valueAsDate", dateAndTimeToSet ); - equal( dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), "Date object passed should not be changed by valueAsDate" ); }); test( "isValid", function() { diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js index 01b1b6556..db1ecda14 100644 --- a/tests/unit/datepicker/datepicker_options.js +++ b/tests/unit/datepicker/datepicker_options.js @@ -40,76 +40,34 @@ test( "appendTo", function() { input.datepicker( "destroy" ); }); -test("buttons", function() { - expect( 3 ); +test( "Pass-through options", function() { + expect( 8 ); - var button, - buttons = { - "Ok": function() {}, - "Cancel": function() {} + var options = { + "buttons": { "Test": $.noop }, + "dateFormat": { date: "full" }, + "eachDay": function( day ) { day; }, + "max": new Date( 2000, 0, 1 ), + "min": new Date( 2000, 0, 2 ), + "numberOfMonths": 3, + "showWeek": true }, - element = $( "#datepicker" ).datepicker({ buttons: buttons }); + input = $( "#datepicker" ).val( "1/1/14" ).datepicker(), + datepickerInstance = input.datepicker( "instance" ); - button = element.datepicker( "widget" ).find( ".ui-calendar-buttonpane button" ); - equal( button.length, 2, "number of buttons" ); - ok( button.parent().hasClass( "ui-calendar-buttonset" ), "buttons in container"); - ok( element.datepicker( "widget" ).hasClass( "ui-calendar-buttons" ), "calendar wrapper adds class about having buttons" ); -}); + $.each( options, function( key, value ) { + input.datepicker( "option", key, value ); -test( "dateFormat", function() { - expect( 2 ); - var input = $( "#datepicker" ).val( "1/1/14" ).datepicker(), - picker = input.datepicker( "widget" ), - firstDayLink = picker.find( "td[id]:first a" ); + deepEqual( + datepickerInstance.calendar.calendar( "option", key ), + value, + "option " + key + ": correct value" + ); - input.datepicker( "open" ); - firstDayLink.trigger( "mousedown" ); - equal( input.val(), "1/1/14", "default formatting" ); - - input.datepicker( "option", "dateFormat", { date: "full" } ); - equal( input.val(), "Wednesday, January 1, 2014", "updated formatting" ); - - input.datepicker( "destroy" ); -}); - -test( "eachDay", function() { - expect( 5 ); - var timestamp, - input = $( "#datepicker" ).datepicker(), - picker = input.datepicker( "widget" ), - firstCell = picker.find( "td[id]:first" ); - - equal( firstCell.find( "a" ).length, 1, "days are selectable by default" ); - timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 ); - equal( new Date( timestamp ).getDate(), 1, "first available day is the 1st by default" ); - - // Do not render the 1st of the month - input.datepicker( "option", "eachDay", function( day ) { - if ( day.date === 1 ) { - day.render = false; + if ( key === "dateFormat" ) { + equal( input.val(), "Wednesday, January 1, 2014", "option " + key + ": updated format" ); } }); - firstCell = picker.find( "td[id]:first" ); - timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 ); - equal( new Date( timestamp ).getDate(), 2, "first available day is the 2nd" ); - - // Display the 1st of the month but make it not selectable. - input.datepicker( "option", "eachDay", function( day ) { - if ( day.date === 1 ) { - day.selectable = false; - } - }); - firstCell = picker.find( "td[id]:first" ); - equal( firstCell.find( "a" ).length, 0, "the 1st is not selectable" ); - - input.datepicker( "option", "eachDay", function( day ) { - if ( day.date === 1 ) { - day.extraClasses = "ui-custom"; - } - }); - ok( picker.find( "td[id]:first a" ).hasClass( "ui-custom" ), "extraClasses applied" ); - - input.datepicker( "destroy" ); }); asyncTest( "position", function() { @@ -140,68 +98,6 @@ asyncTest( "position", function() { }); }); -test( "showWeek", function() { - expect( 7 ); - var input = $( "#datepicker" ).datepicker(), - container = input.datepicker( "widget" ); - - equal( container.find( "thead th" ).length, 7, "just 7 days, no column cell" ); - equal( container.find( ".ui-calendar-week-col" ).length, 0, - "no week column cells present" ); - input.datepicker( "destroy" ); - - input = $( "#datepicker" ).datepicker({ showWeek: true }); - container = input.datepicker( "widget" ); - equal( container.find( "thead th" ).length, 8, "7 days + a column cell" ); - ok( container.find( "thead th:first" ).is( ".ui-calendar-week-col" ), - "first cell should have ui-calendar-week-col class name" ); - equal( container.find( ".ui-calendar-week-col" ).length, - container.find( "tr" ).length, "one week cell for each week" ); - input.datepicker( "destroy" ); - - input = $( "#datepicker" ).datepicker(); - container = input.datepicker( "widget" ); - equal( container.find( "thead th" ).length, 7, "no week column" ); - input.datepicker( "option", "showWeek", true ); - equal( container.find( "thead th" ).length, 8, "supports changing option after init" ); -}); - -test( "min / max", function() { - expect( 14 ); - - var inp = TestHelpers.datepicker.init( "#datepicker" ), - minDate = new Date( 2008, 2 - 1, 29 ), - maxDate = new Date( 2008, 12 - 1, 7 ); - - inp.val( "6/4/08" ).datepicker( "option", { min: minDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min" ); - ok( inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { min: null } ).val( "1/4/08" ).datepicker( "option", { min: minDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 1 - 1, 4 ), "Min/max - value < min" ); - ok( !inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { min: null } ).val( "6/4/08" ).datepicker( "option", { max: maxDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < max" ); - ok( inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { max: null } ).val( "1/4/09" ).datepicker( "option", { max: maxDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2009, 1 - 1, 4 ), "Min/max - setDate > max" ); - ok( !inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { max: null } ).val( "1/4/08" ).datepicker( "option", { min: minDate, max: maxDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 1 - 1, 4 ), "Min/max - value < min" ); - ok( !inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { max: null } ).val( "6/4/08" ).datepicker( "option", { min: minDate, max: maxDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min, < max" ); - ok( inp.datepicker( "isValid" ) ); - - inp.datepicker( "option", { max: null } ).val( "1/4/09" ).datepicker( "option", { min: minDate, max: maxDate } ); - TestHelpers.datepicker.equalsDate( inp.datepicker( "valueAsDate" ), new Date( 2009, 1 - 1, 4 ), "Min/max - value > max" ); - ok( !inp.datepicker( "isValid" ) ); -}); - test( "Stop datepicker from appearing with beforeOpen event handler", function() { expect( 3 );