/* * datepicker_methods.js */ (function($) { module("datepicker: methods"); test('destroy', function() { var inp = init('#inp'); ok(inp.is('.hasDatepicker'), 'Default - marker class set'); ok($.data(inp[0], PROP_NAME), 'Default - instance present'); ok(inp.next().is('#alt'), 'Default - button absent'); inp.datepicker('destroy'); inp = $('#inp'); ok(!inp.is('.hasDatepicker'), 'Default - marker class cleared'); ok(!$.data(inp[0], PROP_NAME), 'Default - instance absent'); ok(inp.next().is('#alt'), 'Default - button absent'); // With button inp= init('#inp', {showOn: 'both'}); ok(inp.is('.hasDatepicker'), 'Button - marker class set'); ok($.data(inp[0], PROP_NAME), 'Button - instance present'); ok(inp.next().text() == '...', 'Button - button added'); inp.datepicker('destroy'); inp = $('#inp'); ok(!inp.is('.hasDatepicker'), 'Button - marker class cleared'); ok(!$.data(inp[0], PROP_NAME), 'Button - instance absent'); ok(inp.next().is('#alt'), 'Button - button removed'); // With append text inp = init('#inp', {appendText: 'Testing'}); ok(inp.is('.hasDatepicker'), 'Append - marker class set'); ok($.data(inp[0], PROP_NAME), 'Append - instance present'); ok(inp.next().text() == 'Testing', 'Append - append text added'); inp.datepicker('destroy'); inp = $('#inp'); ok(!inp.is('.hasDatepicker'), 'Append - marker class cleared'); ok(!$.data(inp[0], PROP_NAME), 'Append - instance absent'); ok(inp.next().is('#alt'), 'Append - append text removed'); // With both inp= init('#inp', {showOn: 'both', buttonImageOnly: true, buttonImage: 'img/calendar.gif', appendText: 'Testing'}); ok(inp.is('.hasDatepicker'), 'Both - marker class set'); ok($.data(inp[0], PROP_NAME), 'Both - instance present'); ok(inp.next()[0].nodeName.toLowerCase() == 'img', 'Both - button added'); ok(inp.next().next().text() == 'Testing', 'Both - append text added'); inp.datepicker('destroy'); inp = $('#inp'); ok(!inp.is('.hasDatepicker'), 'Both - marker class cleared'); ok(!$.data(inp[0], PROP_NAME), 'Both - instance absent'); ok(inp.next().is('#alt'), 'Both - button and append text absent'); // Inline var inl = init('#inl'); ok(inl.is('.hasDatepicker'), 'Inline - marker class set'); ok(inl.html() != '', 'Inline - datepicker present'); ok($.data(inl[0], PROP_NAME), 'Inline - instance present'); ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent'); inl.datepicker('destroy'); inl = $('#inl'); ok(!inl.is('.hasDatepicker'), 'Inline - marker class cleared'); ok(inl.html() == '', 'Inline - datepicker absent'); ok(!$.data(inl[0], PROP_NAME), 'Inline - instance absent'); ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent'); }); test('enableDisable', function() { var inp = init('#inp'); ok(!inp.datepicker('isDisabled'), 'Enable/disable - initially marked as enabled'); ok(!inp[0].disabled, 'Enable/disable - field initially enabled'); inp.datepicker('disable'); ok(inp.datepicker('isDisabled'), 'Enable/disable - now marked as disabled'); ok(inp[0].disabled, 'Enable/disable - field now disabled'); inp.datepicker('enable'); ok(!inp.datepicker('isDisabled'), 'Enable/disable - now marked as enabled'); ok(!inp[0].disabled, 'Enable/disable - field now enabled'); inp.datepicker('destroy'); // With a button inp = init('#inp', {showOn: 'button'}); ok(!inp.datepicker('isDisabled'), 'Enable/disable button - initially marked as enabled'); ok(!inp[0].disabled, 'Enable/disable button - field initially enabled'); ok(!inp.next('button')[0].disabled, 'Enable/disable button - button initially enabled'); inp.datepicker('disable'); ok(inp.datepicker('isDisabled'), 'Enable/disable button - now marked as disabled'); ok(inp[0].disabled, 'Enable/disable button - field now disabled'); ok(inp.next('button')[0].disabled, 'Enable/disable button - button now disabled'); inp.datepicker('enable'); ok(!inp.datepicker('isDisabled'), 'Enable/disable button - now marked as enabled'); ok(!inp[0].disabled, 'Enable/disable button - field now enabled'); ok(!inp.next('button')[0].disabled, 'Enable/disable button - button now enabled'); inp.datepicker('destroy'); // With an image button inp = init('#inp', {showOn: 'button', buttonImageOnly: true, buttonImage: 'img/calendar.gif'}); ok(!inp.datepicker('isDisabled'), 'Enable/disable image - initially marked as enabled'); ok(!inp[0].disabled, 'Enable/disable image - field initially enabled'); ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image initially enabled'); inp.datepicker('disable'); ok(inp.datepicker('isDisabled'), 'Enable/disable image - now marked as disabled'); ok(inp[0].disabled, 'Enable/disable image - field now disabled'); ok(inp.next('img').css('opacity') != 1, 'Enable/disable image - image now disabled'); inp.datepicker('enable'); ok(!inp.datepicker('isDisabled'), 'Enable/disable image - now marked as enabled'); ok(!inp[0].disabled, 'Enable/disable image - field now enabled'); ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image now enabled'); inp.datepicker('destroy'); // Inline var inl = init('#inl'); var dp = $('.ui-datepicker-inline', inl); ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - initially marked as enabled'); ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visually disabled initially'); inl.datepicker('disable'); ok(inl.datepicker('isDisabled'), 'Enable/disable inline - now marked as disabled'); ok(dp.children().is('.ui-state-disabled'), 'Enable/disable inline - visually disabled'); inl.datepicker('enable'); ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - now marked as enabled'); ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visiually disabled'); inl.datepicker('destroy'); }); })(jQuery);