123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803 |
- module('Options', {
- setup: function(){},
- teardown: function(){
- $('#qunit-fixture *').each(function(){
- var t = $(this);
- if ('datepicker' in t.data())
- t.datepicker('remove');
- });
- }
- });
- test('Autoclose', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- autoclose: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.is(':visible'), 'Picker is visible');
- target = picker.find('.datepicker-days tbody td:nth(7)');
- equal(target.text(), '4'); // Mar 4
- target.click();
- ok(picker.is(':not(:visible)'), 'Picker is hidden');
- datesEqual(dp.dates[0], UTCDate(2012, 2, 4));
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- });
- test('Custom date formatter functions', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2015-09-18T00:00:00.000Z')
- .datepicker({
- format: {
- /*
- Say our UI should display a week ahead,
- but textbox should store the actual date.
- This is useful if we need UI to select local dates,
- but store in UTC
- */
- toDisplay: function (date, format, language) {
- var d = new Date(date);
- d.setDate(d.getDate() - 7);
- return d.toISOString();
- },
- toValue: function (date, format, language) {
- var d = new Date(date);
- d.setDate(d.getDate() + 7);
- return new Date(d);
- }
- },
- autoclose: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- //Value is ISO format and is 7 days older than UI
- equal(input.val(), '2015-09-18T00:00:00.000Z');
- datesEqual(dp.dates[0], UTCDate(2015, 8, 25));
- datesEqual(dp.viewDate, UTCDate(2015, 8, 25));
- input.focus();
- ok(picker.is(':visible'), 'Picker is visible');
- target = picker.find('.datepicker-days tbody td:nth(5)');
- equal(target.text(), '4'); // Sep 4
- target.click();
- ok(picker.is(':not(:visible)'), 'Picker is hidden');
- //Value is now 28th Aug 2015 in ISO format
- //and is 7 days older than UI
- equal(input.val(), '2015-08-28T00:00:00.000Z');
- datesEqual(dp.dates[0], UTCDate(2015, 8, 4));
- datesEqual(dp.viewDate, UTCDate(2015, 8, 4));
- });
- test('Startview: year view (integer)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 1
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: year view (string)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 'year'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: decade view (integer)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 2
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: decade view (string)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 'decade'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: century view (integer)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 3
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: century view (string)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 'century'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':visible'), 'Decades view visible');
- ok(picker.find('.datepicker-centuries').is(':not(:visible)'), 'Centuries view hidden');
- });
- test('Startview: millennium view (integer)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 4
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible');
- });
- test('Startview: millennium view (string)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 'millennium'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':not(:visible)'), 'Years view hidden');
- ok(picker.find('.datepicker-decades').is(':not(:visible)'), 'Decades view hidden');
- ok(picker.find('.datepicker-centuries').is(':visible'), 'Centuries view visible');
- });
- test('Today Button: today button not default', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .today').is(':not(:visible)'), 'Today button not visible');
- });
- test('Today Button: today visibility when enabled', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- todayBtn: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
- picker.find('.datepicker-days thead th.datepicker-switch').click();
- ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
- ok(picker.find('.datepicker-months tfoot .today').is(':visible'), 'Today button visible');
- picker.find('.datepicker-months thead th.datepicker-switch').click();
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- ok(picker.find('.datepicker-years tfoot .today').is(':visible'), 'Today button visible');
- });
- test('Today Button: data-api', function(){
- var input = $('<input data-date-today-btn="true" />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
- });
- test('Today Button: moves to today\'s date', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- todayBtn: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
- target = picker.find('.datepicker-days tfoot .today');
- target.click();
- var d = new Date(),
- today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate());
- datesEqual(dp.viewDate, today);
- datesEqual(dp.dates[0], UTCDate(2012, 2, 5));
- });
- test('Today Button: moves to days view', function(){
- var viewModes = $.fn.datepicker.DPGlobal.viewModes;
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: viewModes.length - 1,
- todayBtn: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('tfoot .today').filter(':visible');
- target.click();
- ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
- });
- test('Today Button: "linked" selects today\'s date', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- todayBtn: "linked"
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .today').is(':visible'), 'Today button visible');
- target = picker.find('.datepicker-days tfoot .today');
- target.click();
- var d = new Date(),
- today = UTCDate(d.getFullYear(), d.getMonth(), d.getDate());
- datesEqual(dp.viewDate, today);
- datesEqual(dp.dates[0], today);
- });
- test('Today Highlight: today\'s date is not highlighted by default', patch_date(function(Date){
- Date.now = UTCDate(2012, 2, 15);
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"');
- target = picker.find('.datepicker-days tbody td:contains(15)');
- ok(!target.hasClass('today'), 'Today is not marked with "today" class');
- target = picker.find('.datepicker-days tbody td:contains(14)');
- ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class');
- target = picker.find('.datepicker-days tbody td:contains(16)');
- ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class');
- }));
- test('Today Highlight: today\'s date is highlighted when not active', patch_date(function(Date){
- Date.now = new Date(2012, 2, 15);
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- todayHighlight: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'March 2012', 'Title is "March 2012"');
- target = picker.find('.datepicker-days tbody td:contains(15)');
- ok(target.hasClass('today'), 'Today is marked with "today" class');
- target = picker.find('.datepicker-days tbody td:contains(14)');
- ok(!target.hasClass('today'), 'Yesterday is not marked with "today" class');
- target = picker.find('.datepicker-days tbody td:contains(16)');
- ok(!target.hasClass('today'), 'Tomorrow is not marked with "today" class');
- }));
- test('Clear Button: clear visibility when enabled', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- clearBtn: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Clear button visible');
- picker.find('.datepicker-days thead th.datepicker-switch').click();
- ok(picker.find('.datepicker-months').is(':visible'), 'Months view visible');
- ok(picker.find('.datepicker-months tfoot .clear').is(':visible'), 'Clear button visible');
- picker.find('.datepicker-months thead th.datepicker-switch').click();
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- ok(picker.find('.datepicker-years tfoot .clear').is(':visible'), 'Clear button visible');
- });
- test('Clear Button: clears input value', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- clearBtn: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible');
- target = picker.find('.datepicker-days tfoot .clear');
- target.click();
- equal(input.val(),'',"Input value has been cleared.");
- ok(picker.is(':visible'), 'Picker is visible');
- });
- test('Clear Button: hides datepicker if autoclose is on', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- clearBtn: true,
- autoclose: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- ok(picker.find('.datepicker-days tfoot .clear').is(':visible'), 'Today button visible');
- target = picker.find('.datepicker-days tfoot .clear');
- target.click();
- equal(input.val(),'',"Input value has been cleared.");
- ok(picker.is(':not(:visible)'), 'Picker is hidden');
- });
- test('Active Toggle Default: when active date is selected it is not unset', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- // open our datepicker
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
- // click on our active date
- target = picker.find('.datepicker-days .day.active');
- target.click();
- // make sure it's still set
- equal(input.val(), '2012-03-05', "Input value has not been cleared.");
- });
- test('Active Toggle Enabled (single date): when active date is selected it is unset', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- toggleActive: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- // open our datepicker
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
- // click on our active date
- target = picker.find('.datepicker-days .day.active');
- target.click();
- // make sure it's no longer set
- equal(input.val(), '', "Input value has been cleared.");
- });
- test('Active Toggle Multidate Default: when one of the active dates is selected it is unset', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- multidate: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- // open our datepicker
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates');
- // Select additional date
- target = picker.find('.datepicker-days tbody td:nth(7)');
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05,2012-03-04');
- // Unselect additional date
- target = picker.find('.datepicker-days tbody td:nth(7)');
- target.click();
- ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05');
- });
- test('Active Toggle Disabled: when active date is selected it remains', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- toggleActive: false
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- // open our datepicker
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 selected');
- // click on our active date
- target = picker.find('.datepicker-days .day.active');
- target.click();
- // make sure it's still set
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 still selected');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 5));
- equal(input.val(), '2012-03-05');
- });
- test('Active Toggle Multidate Disabled: when activeToggle is set to false, but multidate is set, the option is ignored and selecting an active date it is unset', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- multidate: true,
- toggleActive: false
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- // open our datepicker
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 in dates');
- // Select additional date
- target = picker.find('.datepicker-days tbody td:nth(7)');
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05,2012-03-04');
- // Unselect additional date
- target = picker.find('.datepicker-days tbody td:nth(7)');
- target.click();
- ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05');
- });
- test('DaysOfWeekDisabled', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- daysOfWeekDisabled: '1,5'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(22)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- target = picker.find('.datepicker-days tbody td:nth(24)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- target = picker.find('.datepicker-days tbody td:nth(26)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- });
- test('DaysOfWeekHighlighted', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- startDate: '2012-10-02',
- daysOfWeekHighlighted: '1,5'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(0)');
- ok(!target.hasClass('highlighted'), 'Day of week is not highlighted');
- target = picker.find('.datepicker-days tbody td:nth(22)');
- ok(target.hasClass('highlighted'), 'Day of week is highlighted');
- target = picker.find('.datepicker-days tbody td:nth(24)');
- ok(!target.hasClass('highlighted'), 'Day of week is not highlighted');
- target = picker.find('.datepicker-days tbody td:nth(26)');
- ok(target.hasClass('highlighted'), 'Day of week is highlighted');
- });
- test('DatesDisabled', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- datesDisabled: ['2012-10-1', '2012-10-10', '2012-10-20']
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(1)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(2)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- target = picker.find('.datepicker-days tbody td:nth(10)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(11)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- target = picker.find('.datepicker-days tbody td:nth(20)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(21)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- });
- test('DatesDisabled as attribute', function(){
- var input = $('<input data-date-dates-disabled="2012-10-1,2012-10-10,2012-10-20" />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(1)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(2)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- target = picker.find('.datepicker-days tbody td:nth(10)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(11)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- target = picker.find('.datepicker-days tbody td:nth(20)');
- ok(target.hasClass('disabled'), 'Day of week is disabled');
- ok(target.hasClass('disabled-date'), 'Date is disabled');
- target = picker.find('.datepicker-days tbody td:nth(21)');
- ok(!target.hasClass('disabled'), 'Day of week is enabled');
- });
- test('BeforeShowDay', function(){
- var beforeShowDay = function(date) {
- switch (date.getDate()){
- case 25:
- return {
- tooltip: 'Example tooltip',
- classes: 'active'
- };
- case 26:
- return "test26";
- case 27:
- return {enabled: false, classes: 'test27'};
- case 28:
- return false;
- case 30:
- return { content: "foo" + date.getDate() }
- }
- };
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- beforeShowDay: beforeShowDay
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(25)');
- equal(target.attr('title'), 'Example tooltip', '25th has tooltip');
- ok(!target.hasClass('disabled'), '25th is enabled');
- target = picker.find('.datepicker-days tbody td:nth(26)');
- ok(target.hasClass('test26'), '26th has test26 class');
- ok(!target.hasClass('disabled'), '26th is enabled');
- target = picker.find('.datepicker-days tbody td:nth(27)');
- ok(target.hasClass('test27'), '27th has test27 class');
- ok(target.hasClass('disabled'), '27th is disabled');
- target = picker.find('.datepicker-days tbody td:nth(28)');
- ok(target.hasClass('disabled'), '28th is disabled');
- target = picker.find('.datepicker-days tbody td:nth(29)');
- ok(!target.hasClass('disabled'), '29th is enabled');
- target = picker.find('.datepicker-days tbody td:nth(30)');
- ok(target.text() == "foo30", '30th has custom content');
- });
- test('BeforeShowMonth regress .day content', function() {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- beforeShowDay: function(date) {
- return {
- content: '<strong>foo123</strong>'
- };
- }
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(30)');
- target.trigger('click');
- datesEqual(dp.viewDate, UTCDate(2012, 9, 30));
- });
- test('BeforeShowMonth', function () {
- var beforeShowMonth = function (date) {
- switch (date.getMonth()) {
- case 0:
- return {
- tooltip: 'Example tooltip',
- classes: 'active'
- };
- case 2:
- return "testMarch";
- case 4:
- return {enabled: false, classes: 'testMay'};
- case 5:
- return false;
- }
- };
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- beforeShowMonth: beforeShowMonth
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-months tbody span:nth(0)');
- equal(target.attr('title'), 'Example tooltip', '1st has tooltip');
- ok(!target.hasClass('disabled'), 'January is enabled');
- target = picker.find('.datepicker-months tbody span:nth(2)');
- ok(target.hasClass('testMarch'), 'March has testMarch class');
- ok(!target.hasClass('disabled'), 'March enabled');
- target = picker.find('.datepicker-months tbody span:nth(4)');
- ok(target.hasClass('testMay'), 'May has testMay class');
- ok(target.hasClass('disabled'), 'May is disabled');
- target = picker.find('.datepicker-months tbody span:nth(5)');
- ok(target.hasClass('disabled'), 'June is disabled');
- target = picker.find('.datepicker-months tbody span:nth(6)');
- ok(!target.hasClass('disabled'), 'July is enabled');
- });
- test('BeforeShowYear', function () {
- var beforeShowYear = function (date) {
- switch (date.getFullYear()) {
- case 2013:
- return {
- tooltip: 'Example tooltip',
- classes: 'active'
- };
- case 2014:
- return "test2014";
- case 2015:
- return {enabled: false, classes: 'test2015'};
- case 2016:
- return false;
- }
- };
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- beforeShowYear: beforeShowYear
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-years tbody span:nth(4)');
- equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
- ok(!target.hasClass('disabled'), '2013, 5th is enabled');
- target = picker.find('.datepicker-years tbody span:nth(5)');
- ok(target.hasClass('test2014'), '6th has test2014 class');
- ok(!target.hasClass('disabled'), '2014, 6th is enabled');
- target = picker.find('.datepicker-years tbody span:nth(6)');
- ok(target.hasClass('test2015'), '2015, 7th has test2015 class');
- ok(target.hasClass('disabled'), '2015, 7th is disabled');
- target = picker.find('.datepicker-years tbody span:nth(7)');
- ok(target.hasClass('disabled'), '2016, 8th is disabled');
- target = picker.find('.datepicker-years tbody span:nth(8)');
- ok(!target.hasClass('disabled'), '2017, 9th is enabled');
- });
- test('beforeShowDecade', function () {
- var beforeShowDecade = function (date) {
- switch (date.getFullYear()) {
- case 2030:
- return {
- tooltip: 'Example tooltip',
- classes: 'active'
- };
- case 2040:
- return "test2040";
- case 2050:
- return {enabled: false, classes: 'test2050'};
- case 2060:
- return false;
- }
- };
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('03/05/2012')
- .datepicker({ beforeShowDecade: beforeShowDecade }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-decades tbody span:nth(4)');
- equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
- ok(!target.hasClass('disabled'), '2030, 5th is enabled');
- target = picker.find('.datepicker-decades tbody span:nth(5)');
- ok(target.hasClass('test2040'), '6th has test2040 class');
- ok(!target.hasClass('disabled'), '2040, 6th is enabled');
- target = picker.find('.datepicker-decades tbody span:nth(6)');
- ok(target.hasClass('test2050'), '2050, 7th has test2050 class');
- ok(target.hasClass('disabled'), '2050, 7th is disabled');
- target = picker.find('.datepicker-decades tbody span:nth(7)');
- ok(target.hasClass('disabled'), '2060, 8th is disabled');
- target = picker.find('.datepicker-decades tbody span:nth(8)');
- ok(!target.hasClass('disabled'), '2070, 9th is enabled');
- });
- test('beforeShowCentury', function () {
- var beforeShowCentury = function (date) {
- switch (date.getFullYear()) {
- case 2300:
- return {
- tooltip: 'Example tooltip',
- classes: 'active'
- };
- case 2400:
- return "test2400";
- case 2500:
- return {enabled: false, classes: 'test2500'};
- case 2600:
- return false;
- }
- };
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('03/05/2012')
- .datepicker({ beforeShowCentury: beforeShowCentury }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-centuries tbody span:nth(4)');
- equal(target.attr('title'), 'Example tooltip', '5th has tooltip');
- ok(!target.hasClass('disabled'), '2300, 5th is enabled');
- target = picker.find('.datepicker-centuries tbody span:nth(5)');
- ok(target.hasClass('test2400'), '6th has test2400 class');
- ok(!target.hasClass('disabled'), '2400, 6th is enabled');
- target = picker.find('.datepicker-centuries tbody span:nth(6)');
- ok(target.hasClass('test2500'), '2500, 7th has test2500 class');
- ok(target.hasClass('disabled'), '2500, 7th is disabled');
- target = picker.find('.datepicker-centuries tbody span:nth(7)');
- ok(target.hasClass('disabled'), '2600, 8th is disabled');
- target = picker.find('.datepicker-centuries tbody span:nth(8)');
- ok(!target.hasClass('disabled'), '2700, 9th is enabled');
- });
- test('Orientation: values are parsed correctly', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker');
- equal(dp.o.orientation.x, 'auto');
- equal(dp.o.orientation.y, 'auto');
- dp._process_options({orientation: ''});
- equal(dp.o.orientation.x, 'auto', 'Empty value');
- equal(dp.o.orientation.y, 'auto', 'Empty value');
- dp._process_options({orientation: 'left'});
- equal(dp.o.orientation.x, 'left', '"left"');
- equal(dp.o.orientation.y, 'auto', '"left"');
- dp._process_options({orientation: 'right'});
- equal(dp.o.orientation.x, 'right', '"right"');
- equal(dp.o.orientation.y, 'auto', '"right"');
- dp._process_options({orientation: 'top'});
- equal(dp.o.orientation.x, 'auto', '"top"');
- equal(dp.o.orientation.y, 'top', '"top"');
- dp._process_options({orientation: 'bottom'});
- equal(dp.o.orientation.x, 'auto', '"bottom"');
- equal(dp.o.orientation.y, 'bottom', '"bottom"');
- dp._process_options({orientation: 'left top'});
- equal(dp.o.orientation.x, 'left', '"left top"');
- equal(dp.o.orientation.y, 'top', '"left top"');
- dp._process_options({orientation: 'left bottom'});
- equal(dp.o.orientation.x, 'left', '"left bottom"');
- equal(dp.o.orientation.y, 'bottom', '"left bottom"');
- dp._process_options({orientation: 'right top'});
- equal(dp.o.orientation.x, 'right', '"right top"');
- equal(dp.o.orientation.y, 'top', '"right top"');
- dp._process_options({orientation: 'right bottom'});
- equal(dp.o.orientation.x, 'right', '"right bottom"');
- equal(dp.o.orientation.y, 'bottom', '"right bottom"');
- dp._process_options({orientation: 'left right'});
- equal(dp.o.orientation.x, 'left', '"left right"');
- equal(dp.o.orientation.y, 'auto', '"left right"');
- dp._process_options({orientation: 'right left'});
- equal(dp.o.orientation.x, 'right', '"right left"');
- equal(dp.o.orientation.y, 'auto', '"right left"');
- dp._process_options({orientation: 'top bottom'});
- equal(dp.o.orientation.x, 'auto', '"top bottom"');
- equal(dp.o.orientation.y, 'top', '"top bottom"');
- dp._process_options({orientation: 'bottom top'});
- equal(dp.o.orientation.x, 'auto', '"bottom top"');
- equal(dp.o.orientation.y, 'bottom', '"bottom top"');
- dp._process_options({orientation: 'foo bar'});
- equal(dp.o.orientation.x, 'auto', '"foo bar"');
- equal(dp.o.orientation.y, 'auto', '"foo bar"');
- dp._process_options({orientation: 'foo left'});
- equal(dp.o.orientation.x, 'left', '"foo left"');
- equal(dp.o.orientation.y, 'auto', '"foo left"');
- dp._process_options({orientation: 'top bar'});
- equal(dp.o.orientation.x, 'auto', '"top bar"');
- equal(dp.o.orientation.y, 'top', '"top bar"');
- });
- test('startDate', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- startDate: new Date(2012, 9, 26)
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(25)');
- ok(target.hasClass('disabled'), 'Previous day is disabled');
- target = picker.find('.datepicker-days tbody td:nth(26)');
- ok(!target.hasClass('disabled'), 'Specified date is enabled');
- target = picker.find('.datepicker-days tbody td:nth(27)');
- ok(!target.hasClass('disabled'), 'Next day is enabled');
- });
- test('endDate', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- endDate: new Date(2012, 9, 26)
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-days tbody td:nth(25)');
- ok(!target.hasClass('disabled'), 'Previous day is enabled');
- target = picker.find('.datepicker-days tbody td:nth(26)');
- ok(!target.hasClass('disabled'), 'Specified date is enabled');
- target = picker.find('.datepicker-days tbody td:nth(27)');
- ok(target.hasClass('disabled'), 'Next day is disabled');
- });
- test('Multidate', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- multidate: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates');
- // Select first
- target = picker.find('.datepicker-days tbody td:nth(7)');
- equal(target.text(), '4'); // Mar 4
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05,2012-03-04');
- // Select second
- target = picker.find('.datepicker-days tbody td:nth(15)');
- equal(target.text(), '12'); // Mar 12
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 12));
- equal(input.val(), '2012-03-05,2012-03-04,2012-03-12');
- // Deselect first
- target = picker.find('.datepicker-days tbody td:nth(7)');
- equal(target.text(), '4'); // Mar 4
- target.click();
- ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05,2012-03-12');
- });
- test('Multidate with limit', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- multidate: 2
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- // Initial value is selected
- ok(dp.dates.contains(UTCDate(2012, 2, 5)) !== -1, '2012-03-05 (initial date) in dates');
- // Select first
- target = picker.find('.datepicker-days tbody td:nth(7)');
- equal(target.text(), '4'); // Mar 4
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 4), '2012-03-04 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 4));
- equal(input.val(), '2012-03-05,2012-03-04');
- // Select second
- target = picker.find('.datepicker-days tbody td:nth(15)');
- equal(target.text(), '12'); // Mar 12
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 12), '2012-03-12 in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 12));
- equal(input.val(), '2012-03-04,2012-03-12');
- // Select third
- target = picker.find('.datepicker-days tbody td:nth(20)');
- equal(target.text(), '17'); // Mar 17
- target.click();
- datesEqual(dp.dates.get(-1), UTCDate(2012, 2, 17), '2012-03-17 in dates');
- ok(dp.dates.contains(UTCDate(2012, 2, 4)) === -1, '2012-03-04 no longer in dates');
- datesEqual(dp.viewDate, UTCDate(2012, 2, 17));
- equal(input.val(), '2012-03-12,2012-03-17');
- });
- test('Multidate Separator', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- multidate: true,
- multidateSeparator: ' '
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- // Select first
- target = picker.find('.datepicker-days tbody td:nth(7)');
- equal(target.text(), '4'); // Mar 4
- target.click();
- equal(input.val(), '2012-03-05 2012-03-04');
- // Select second
- target = picker.find('.datepicker-days tbody td:nth(15)');
- equal(target.text(), '12'); // Mar 12
- target.click();
- equal(input.val(), '2012-03-05 2012-03-04 2012-03-12');
- });
- test("Picker is shown on input focus when showOnFocus is not defined", function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2014-01-01')
- .datepicker({
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- ok(picker.is(":visible"), "Datepicker is visible");
- });
- test("Picker is shown on input focus when showOnFocus is true", function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2014-01-01')
- .datepicker({
- showOnFocus: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- ok(picker.is(":visible"), "Datepicker is visible");
- });
- test("Picker is hidden on input focus when showOnFocus is false", function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2014-01-01')
- .datepicker({
- showOnFocus: false
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- ok(picker.is(":hidden"), "Datepicker is hidden");
- });
- test('Container', function(){
- var testContainer = $('<div class="date-picker-container"/>')
- .appendTo('#qunit-fixture'),
- input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- container: '.date-picker-container',
- startDate: new Date(2012, 9, 26)
- }),
- dp = input.data('datepicker'),
- target = dp.picker;
- input.focus();
- equal(target.parent()[0], testContainer[0], 'Container is not the testContainer that was specificed');
- });
- test('Default View Date (Object)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: 'yyyy-mm-dd',
- defaultViewDate: { year: 1977, month: 04, day: 25 }
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
- });
- test('Default View Date (Date)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: 'yyyy-mm-dd',
- defaultViewDate: new Date(1977, 4, 25)
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
- });
- test('Default View Date (String)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: 'yyyy-mm-dd',
- defaultViewDate: "1977-05-24"
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'May 1977');
- });
- test('Immediate Updates', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2014-01-01')
- .datepicker({
- format: 'yyyy-mm-dd',
- immediateUpdates: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- // Change month
- input.focus();
- picker.find('.datepicker-days .next').click();
- equal(input.val(), '2014-02-01');
- // Change year
- picker.find('.datepicker-days .datepicker-switch').click();
- picker.find('.datepicker-months .next').click();
- equal(input.val(), '2015-02-01');
- // Change decade set (doesn't update input)
- picker.find('.datepicker-months .datepicker-switch').click();
- picker.find('.datepicker-years .next').click();
- equal(input.val(), '2015-02-01');
- // Change century set (doesn't update input)
- picker.find('.datepicker-years .datepicker-switch').click();
- picker.find('.datepicker-decades .next').click();
- equal(input.val(), '2015-02-01');
- // Change millennium set (doesn't update input)
- picker.find('.datepicker-decades .datepicker-switch').click();
- picker.find('.datepicker-centuries .next').click();
- equal(input.val(), '2015-02-01');
- });
- test('forceParse: false on enter on invalid date', function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('123456789')
- .datepicker({forceParse: false})
- .focus();
- input.trigger({
- type: 'keydown',
- keyCode: 13,
- shiftKey: false
- });
- equal(input.val(), '123456789', 'date not parsed');
- });
- test('forceParse: false on mousedown on invalid date', function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('123456789')
- .datepicker({forceParse: false})
- .focus();
- $(document).trigger({
- type: 'mousedown'
- });
- equal(input.val(), '123456789', 'date not parsed');
- });
- //datepicker-dropdown
- test('Enable on readonly options (default)', function(){
- var input = $('<input readonly="readonly" />')
- .appendTo('#qunit-fixture')
- .datepicker({format: "dd-mm-yyyy"}),
- dp = input.data('datepicker'),
- picker = dp.picker;
- ok(!picker.is(':visible'));
- input.focus();
- ok(picker.is(':visible'));
- });
- test('Enable on readonly options (false)', function(){
- var input = $('<input readonly="readonly" />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: "dd-mm-yyyy",
- enableOnReadonly: false
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- ok(!picker.is(':visible'));
- input.focus();
- ok(!picker.is(':visible'));
- });
- test('Startview: year view visible after date pick', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- startView: 2,
- minViewMode: 1,
- autoclose: true
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- target = picker.find('.datepicker-years tbody td:nth(7)');
- target.click();
- target = picker.find('.datepicker-years tbody td:nth(4)');
- target.click();
- target = picker.find('.datepicker-years tbody td:nth(20)');
- target.click();
- input.focus();
- ok(picker.find('.datepicker-days').is(':not(:visible)'), 'Days view hidden');
- ok(picker.find('.datepicker-months').is(':not(:visible)'), 'Months view hidden');
- ok(picker.find('.datepicker-years').is(':visible'), 'Years view visible');
- });
- test('Title: none', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.is(':visible'), 'Picker is visible');
- target = picker.find('.datepicker-days thead .datepicker-title');
- ok(target.is(':not(:visible)'), 'Title is hidden');
- });
- test('Title: with value', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- format: 'yyyy-mm-dd',
- title: 'Some Title'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.is(':visible'), 'Picker is visible');
- target = picker.find('.datepicker-days thead .datepicker-title');
- ok(target.is(':visible'), 'Title is visible');
- equal(target.text(), 'Some Title');
- });
- test('i18n: Leverage i18n titleFormat when available.', patch_date(function(Date){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2015年04月21日')
- .datepicker({
- language: 'zh-CN'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), '2015年04月', 'Title is in Chinese: 2015年04月');
- }));
- test('i18n: Leverage English (default) i18n titleFormat when translation key for specified language is not available.', patch_date(function(Date){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('04/21/2015')
- .datepicker({
- language: 'aa-BB'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- equal(picker.find('.datepicker-days thead .datepicker-switch').text(), 'April 2015', 'Title is in default format: April 2015');
- }));
- test('Z-index Offset: none', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker(),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.parent().css('z-index', 234);
- input.focus();
- equal(dp.o.zIndexOffset, 10, 'Z-index offset option defaults to 10.');
- equal(picker.css('z-index'), 244, 'Picker Z-index offset is respected.');
- });
- test('Z-index Offset: with value', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- zIndexOffset: 1000
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.parent().css('z-index', 234);
- input.focus();
- equal(dp.o.zIndexOffset, 1000, 'Z-index offset option is accepted.');
- equal(picker.css('z-index'), 1234, 'Picker Z-index offset is respected.');
- });
- test('templates', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- templates: {
- leftArrow: '<span class="glyphicon glyphicon-arrow-left"></span>',
- rightArrow: '</table>'
- }
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- equal(picker.find('.datepicker-days .prev').prop('innerHTML'), '<span class="glyphicon glyphicon-arrow-left"></span>');
- equal(picker.find('.datepicker-days .next').prop('innerHTML'), $('<div>').html('»').text());
- });
- test('Nav arrow html templates with span tag', function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- templates: {
- leftArrow: '<span></span>',
- rightArrow: '<span></span>'
- }
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-months tbody span:nth(9)');
- ok(target.hasClass('active'), 'Month is selected');
- });
- test('Nav arrow html templates .prev click', function () {
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-10-26')
- .datepicker({
- format: 'yyyy-mm-dd',
- startView: 1,
- templates: {
- leftArrow: '<i></i>'
- }
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- picker.find('.datepicker-months thead .prev i').trigger('click');
- target = picker.find('.datepicker-months thead .datepicker-switch');
- equal(target.text(), '2011');
- });
- test('Visibility of the prev and next arrows for year/decade/century/millenium views with startDate and endDate', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('01/01/2015')
- .datepicker({
- format: 'dd/mm/yyyy',
- startView: 1,
- startDate: '01/12/2014',
- endDate: '01/12/2016'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- target = picker.find('.datepicker-months thead th.prev');
- ok(!target.hasClass('disabled'), 'Prev switcher is not hidden');
- target = picker.find('.datepicker-months thead th.next');
- ok(!target.hasClass('disabled'), 'Next switcher is not hidden');
- picker.find('.datepicker-months thead th.datepicker-switch').click();
- target = picker.find('.datepicker-years thead th.prev');
- ok(target.hasClass('disabled'), 'Prev switcher is hidden');
- target = picker.find('.datepicker-years thead th.next');
- ok(target.hasClass('disabled'), 'Next switcher is hidden');
- picker.find('.datepicker-years thead th.datepicker-switch').click();
- target = picker.find('.datepicker-decades thead th.prev');
- ok(target.hasClass('disabled'), 'Prev switcher is hidden');
- target = picker.find('.datepicker-decades thead th.next');
- ok(target.hasClass('disabled'), 'Next switcher is hidden');
- picker.find('.datepicker-decades thead th.datepicker-switch').click();
- target = picker.find('.datepicker-centuries thead th.prev');
- ok(target.hasClass('disabled'), 'Prev switcher is hidden');
- target = picker.find('.datepicker-centuries thead th.next');
- ok(target.hasClass('disabled'), 'Next switcher is hidden');
- });
- test('date cells (outdated)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker(),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- picker.find('.datepicker-days .day').each(function(){
- ok(this.hasAttribute('data-date'));
- });
- });
- test('keepEmptyValues: none (default is false)', function() {
- var proxy_element = $('<div />').appendTo('#qunit-fixture'),
- input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'),
- input_to = $('<input />').appendTo('#qunit-fixture'),
- dp = proxy_element.datepicker({
- format: 'yyyy-mm-dd',
- inputs: [input_from, input_to]
- }),
- input_from_dp = input_from.data('datepicker');
- input_from.focus();
- input_from_dp.picker.find('.old.day').eq(0).click();
- equal(input_from.val(), '2016-03-27');
- equal(input_to.val(), '2016-03-27', 'Input_from value should be distributed.');
- });
- test('keepEmptyValues: true', function() {
- var proxy_element = $('<div />').appendTo('#qunit-fixture'),
- input_from = $('<input />').val('2016-04-01').appendTo('#qunit-fixture'),
- input_to = $('<input />').appendTo('#qunit-fixture'),
- dp = proxy_element.datepicker({
- format: 'yyyy-mm-dd',
- inputs: [input_from, input_to],
- keepEmptyValues: true
- }),
- input_from_dp = input_from.data('datepicker');
- input_from.focus();
- input_from_dp.picker.find('.old.day').eq(0).click();
- equal(input_from.val(), '2016-03-27');
- equal(input_to.val(), '', 'Input_from value should not be distributed.');
- });
- test('maxViewMode and navigation switch', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .datepicker({
- maxViewMode: 0
- }),
- dp = input.data('datepicker'),
- picker = dp.picker;
- input.focus();
- picker.find('.datepicker-days thead th.datepicker-switch').click();
- ok(picker.find('.datepicker-days').is(':visible'), 'Days view visible');
- });
- test('updateViewDate', function() {
- expect(8);
- var input = $('<input value="08/03/1990"/>')
- .appendTo('#qunit-fixture')
- .datepicker({
- defaultViewDate: {
- year: 1945,
- month: 4,
- day: 8
- },
- updateViewDate: false
- })
- .on('changeMonth', function() {
- var msg = shouldTriggerChangeMonth ? 'changeMonth must be triggered' : 'changeMonth must not be triggered';
- ok(shouldTriggerChangeMonth, msg);
- })
- .on('changeYear', function() {
- var msg = shouldTriggerChangeYear ? 'changeYear must be triggered' : 'changeYear must not be triggered';
- ok(shouldTriggerChangeYear, msg);
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- shouldTriggerChangeMonth = false,
- shouldTriggerChangeYear = false,
- monthShown = picker.find('.datepicker-days thead th.datepicker-switch');
- equal(monthShown.text(), "May 1945", 'uses defaultViewDate on initialization');
- input.datepicker('setDate', new Date(1945, 8, 2));
- equal(monthShown.text(), "May 1945", 'does not change viewDate on `setDate` method');
- input.focus();
- picker.find('.datepicker-days tbody tr td.day.new:first').click();
- equal(monthShown.text(), "May 1945", 'does not change viewDate if a day in next month is selected');
- shouldTriggerChangeMonth = true;
- picker.find('.datepicker-days thead th.next').click();
- equal(monthShown.text(), 'June 1945', 'changing month must still be possible'); // and must trigger `changeMonth` event
- shouldTriggerChangeYear = true;
- picker.find('.datepicker-days thead th.datepicker-switch').click();
- picker.find('.datepicker-months thead th.next').click();
- picker.find('.datepicker-months tbody .month:first').click();
- equal(monthShown.text(), 'January 1946', 'changing year must still be possible'); // and must trigger `changeYear` and `changeMonth` events
- });
- test('Week Days: Week days default visibility (or enabled)', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd'
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.dow').length > 0, 'Week days added to view');
- });
- test('Week Days: Week days visibility when disabled', function(){
- var input = $('<input />')
- .appendTo('#qunit-fixture')
- .val('2012-03-05')
- .datepicker({
- format: 'yyyy-mm-dd',
- showWeekDays: false
- }),
- dp = input.data('datepicker'),
- picker = dp.picker,
- target;
- input.focus();
- ok(picker.find('.dow').length === 0, 'Week days not added to view');
- });
|