Bug Tracker

Changeset 4412

Show
Ignore:
Timestamp:
01/11/08 01:53:14 (1 year ago)
Author:
kbwood.au
Message:

Test defaultDate/minDate/maxDate as relative days/weeks/months/years

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/ui/current/datepicker/test/ui.datepicker.tests.html

    r4393 r4412  
    310310 
    311311function testGetDefaultDate() { 
    312     var test = new Date(); 
    313     var date = $.datepicker._inst[0]._getDefaultDate(); 
    314     assertDateEquals('Invalid default date - today', test, date); 
    315     test.setDate(test.getDate() + 7); 
     312    var inst = $.datepicker._inst[0]; 
     313    assertDateEquals('Invalid default date - today', new Date(), inst._getDefaultDate()); 
     314    // as date 
     315    var date = new Date(2007, 6 - 1, 5); 
     316    $.datepicker.reconfigureFor('#dp', {defaultDate: date}); 
     317    assertDateEquals('Invalid default date - 2007-06-05', date, inst._getDefaultDate()); 
     318    $.datepicker.reconfigureFor('#dp', {defaultDate: null}); 
     319    assertDateEquals('Invalid default date - reset', new Date(), inst._getDefaultDate()); 
     320    // as relative numeric offsets 
    316321    $.datepicker.reconfigureFor('#dp', {defaultDate: +7}); 
    317     date = $.datepicker._inst[0]._getDefaultDate(); 
    318     assertDateEquals('Invalid default date - +7', test, date); 
    319     test.setDate(test.getDate() - 14); 
     322    assertDateEquals('Invalid default date - +7', offsetDate(7), inst._getDefaultDate()); 
    320323    $.datepicker.reconfigureFor('#dp', {defaultDate: -7}); 
    321     date = $.datepicker._inst[0]._getDefaultDate(); 
    322     assertDateEquals('Invalid default date - -7', test, date); 
    323     test = new Date(2007, 6 - 1, 5); 
    324     $.datepicker.reconfigureFor('#dp', {defaultDate: test}); 
    325     date = $.datepicker._inst[0]._getDefaultDate(); 
    326     assertDateEquals('Invalid default date - +7', test, date); 
    327     $.datepicker.reconfigureFor('#dp', {defaultDate: null}); 
    328     test = new Date(); 
    329     date = $.datepicker._inst[0]._getDefaultDate(); 
    330     assertDateEquals('Invalid default date - today', test, date); 
     324    assertDateEquals('Invalid default date - -7', offsetDate(-7), inst._getDefaultDate()); 
     325    // as relative string offsets 
     326    $.datepicker.reconfigureFor('#dp', {defaultDate: '1'}); 
     327    assertDateEquals('Invalid default date - 1', offsetDate(1), inst._getDefaultDate()); 
     328    $.datepicker.reconfigureFor('#dp', {defaultDate: '1d'}); 
     329    assertDateEquals('Invalid default date - 1d', offsetDate(1), inst._getDefaultDate()); 
     330    $.datepicker.reconfigureFor('#dp', {defaultDate: '+1  d'}); 
     331    assertDateEquals('Invalid default date - +1  d', offsetDate(1), inst._getDefaultDate()); 
     332    $.datepicker.reconfigureFor('#dp', {defaultDate: '-1 D'}); 
     333    assertDateEquals('Invalid default date - -1 D', offsetDate(-1), inst._getDefaultDate()); 
     334    $.datepicker.reconfigureFor('#dp', {defaultDate: '2w'}); 
     335    assertDateEquals('Invalid default date - 2w', offsetDate(14), inst._getDefaultDate()); 
     336    $.datepicker.reconfigureFor('#dp', {defaultDate: '+2  w'}); 
     337    assertDateEquals('Invalid default date - +2  w', offsetDate(14), inst._getDefaultDate()); 
     338    $.datepicker.reconfigureFor('#dp', {defaultDate: '-2 W'}); 
     339    assertDateEquals('Invalid default date - -2 W', offsetDate(-14), inst._getDefaultDate()); 
     340    $.datepicker.reconfigureFor('#dp', {defaultDate: '3m'}); 
     341    assertDateEquals('Invalid default date - 3m', offsetMonth(3), inst._getDefaultDate()); 
     342    $.datepicker.reconfigureFor('#dp', {defaultDate: '+3  m'}); 
     343    assertDateEquals('Invalid default date - +3  m', offsetMonth(3), inst._getDefaultDate()); 
     344    $.datepicker.reconfigureFor('#dp', {defaultDate: '-3 M'}); 
     345    assertDateEquals('Invalid default date - -3 M', offsetMonth(-3), inst._getDefaultDate()); 
     346    $.datepicker.reconfigureFor('#dp', {defaultDate: '4y'}); 
     347    assertDateEquals('Invalid default date - 4y', offsetMonth(48), inst._getDefaultDate()); 
     348    $.datepicker.reconfigureFor('#dp', {defaultDate: '+4  y'}); 
     349    assertDateEquals('Invalid default date - +4  y', offsetMonth(48), inst._getDefaultDate()); 
     350    $.datepicker.reconfigureFor('#dp', {defaultDate: '-4 Y'}); 
     351    assertDateEquals('Invalid default date - -4 Y', offsetMonth(-48), inst._getDefaultDate()); 
     352    // as error offsets 
     353    date = new Date(); 
     354    $.datepicker.reconfigureFor('#dp', {defaultDate: '2days'}); 
     355    assertDateEquals('Invalid default date - 2days', date, inst._getDefaultDate()); 
     356    $.datepicker.reconfigureFor('#dp', {defaultDate: 'now'}); 
     357    assertDateEquals('Invalid default date - now', date, inst._getDefaultDate()); 
     358    $.datepicker.reconfigureFor('#dp', {defaultDate: '2f'}); 
     359    assertDateEquals('Invalid default date - 2f', date, inst._getDefaultDate()); 
    331360} 
    332361 
     
    336365    $.datepicker.reconfigureFor('#adj', {minDate: null, maxDate: null}); 
    337366    $.datepicker.setDateFor('#adj', new Date(2001, 2 - 1, 3)); 
    338     var adjusts = [[0, 'D', 2001, 2 - 1, 3], [1, 'D', 2001, 2 - 1, 4], 
    339         [7, 'D', 2001, 2 - 1, 11], [-8, 'D', 2001, 2 - 1, 3], 
    340         [-8, 'D', 2001, 1 - 1, 26], [+5, 'D', 2001, 1 - 1, 31], 
    341         [0, 'M', 2001, 1 - 1, 31], [1, 'M', 2001, 2 - 1, 28], 
    342         [13, 'M', 2002, 3 - 1, 28], [-3, 'M', 2001, 12 - 1, 28], 
    343         [26, 'M', 2004, 2 - 1, 28], [1, 'D', 2004, 2 - 1, 29], 
    344         [0, 'Y', 2004, 2 - 1, 29], [1, 'Y', 2005, 2 - 1, 28], 
    345         [11, 'Y', 2016, 2 - 1, 28], [-12, 'Y', 2004, 2 - 1, 28]]; 
     367    var adjusts = [[0, 'D', 2001, 2, 3], [1, 'D', 2001, 2, 4], 
     368        [7, 'D', 2001, 2, 11], [-8, 'D', 2001, 2, 3], 
     369        [-8, 'D', 2001, 1, 26], [+5, 'D', 2001, 1, 31], 
     370        [0, 'M', 2001, 1, 31], [1, 'M', 2001, 2, 28], 
     371        [13, 'M', 2002, 3, 28], [-3, 'M', 2001, 12, 28], 
     372        [26, 'M', 2004, 2, 28], [1, 'D', 2004, 2, 29], 
     373        [0, 'Y', 2004, 2, 29], [1, 'Y', 2005, 2, 28], 
     374        [11, 'Y', 2016, 2, 28], [-12, 'Y', 2004, 2, 28]]; 
    346375    for (var i = 0; i < adjusts.length; i++) { 
    347376        inst._adjustDate(adjusts[i][0], adjusts[i][1]); 
    348377        assertTrue('Invalid date adjustment ' + adjusts[i][0] + ' ' + adjusts[i][1], 
    349             inst._selectedYear == adjusts[i][2] && inst._selectedMonth == adjusts[i][3] && 
     378            inst._selectedYear == adjusts[i][2] && inst._selectedMonth == (adjusts[i][3] - 1) && 
    350379            inst._selectedDay == adjusts[i][4]); 
    351380    } 
     381    // with minimum 
    352382    $.datepicker.reconfigureFor('#adj', {minDate: new Date(2001, 1 - 1, 1)}); 
    353383    $.datepicker.setDateFor('#adj', new Date(2001, 2 - 1, 3)); 
    354     adjusts = [[0, 'D', 2001, 2 - 1, 3], [7, 'D', 2001, 2 - 1, 10], 
    355         [-88, 'D', 2001, 1 - 1, 1], [5, 'D', 2001, 1 - 1, 6], 
    356         [0, 'M', 2001, 1 - 1, 6], [13, 'M', 2002, 2 - 1, 6], 
    357         [-20, 'M', 2001, 1 - 1, 1], [1, 'M', 2001, 2 - 1, 1], 
    358         [0, 'Y', 2001, 2 - 1, 1], [6, 'Y', 2007, 2 - 1, 1], 
    359         [-11, 'Y', 2001, 1 - 1, 1], [2, 'Y', 2003, 1 - 1, 1]]; 
     384    adjusts = [[0, 'D', 2001, 2, 3], [7, 'D', 2001, 2, 10], 
     385        [-88, 'D', 2001, 1, 1], [5, 'D', 2001, 1, 6], 
     386        [0, 'M', 2001, 1, 6], [13, 'M', 2002, 2, 6], 
     387        [-20, 'M', 2001, 1, 1], [1, 'M', 2001, 2, 1], 
     388        [0, 'Y', 2001, 2, 1], [6, 'Y', 2007, 2, 1], 
     389        [-11, 'Y', 2001, 1, 1], [2, 'Y', 2003, 1, 1]]; 
    360390    for (var i = 0; i < adjusts.length; i++) { 
    361391        inst._adjustDate(adjusts[i][0], adjusts[i][1]); 
    362392        assertTrue('Invalid date adjustment (min) ' + adjusts[i][0] + ' ' + adjusts[i][1], 
    363             inst._selectedYear == adjusts[i][2] && inst._selectedMonth == adjusts[i][3] && 
     393            inst._selectedYear == adjusts[i][2] && inst._selectedMonth == (adjusts[i][3] - 1) && 
    364394            inst._selectedDay == adjusts[i][4]); 
    365395    } 
     396    // with maximum 
    366397    $.datepicker.reconfigureFor('#adj', {minDate: null, maxDate: new Date(2001, 6 - 1, 30)}); 
    367398    $.datepicker.setDateFor('#adj', new Date(2001, 2 - 1, 3)); 
    368     adjusts = [[0, 'D', 2001, 2 - 1, 3], [7, 'D', 2001, 2 - 1, 10], 
    369         [200, 'D', 2001, 6 - 1, 30], [-184, 'D', 2000, 12 - 1, 28], 
    370         [0, 'M', 2000, 12 - 1, 28], [3, 'M', 2001, 3 - 1, 28], 
    371         [6, 'M', 2001, 6 - 1, 30], [-5, 'M', 2001, 1 - 1, 30], 
    372         [0, 'Y', 2001, 1 - 1, 30], [6, 'Y', 2001, 6 - 1, 30], 
    373         [-11, 'Y', 1990, 6 - 1, 30], [2, 'Y', 1992, 6 - 1, 30]]; 
     399    adjusts = [[0, 'D', 2001, 2, 3], [7, 'D', 2001, 2, 10], 
     400        [200, 'D', 2001, 6, 30], [-184, 'D', 2000, 12, 28], 
     401        [0, 'M', 2000, 12, 28], [3, 'M', 2001, 3, 28], 
     402        [6, 'M', 2001, 6, 30], [-5, 'M', 2001, 1, 30], 
     403        [0, 'Y', 2001, 1, 30], [6, 'Y', 2001, 6, 30], 
     404        [-11, 'Y', 1990, 6, 30], [2, 'Y', 1992, 6, 30]]; 
    374405    for (var i = 0; i < adjusts.length; i++) { 
    375406        inst._adjustDate(adjusts[i][0], adjusts[i][1]); 
    376407        assertTrue('Invalid date adjustment (max) ' + adjusts[i][0] + ' ' + adjusts[i][1], 
    377             inst._selectedYear == adjusts[i][2] && inst._selectedMonth == adjusts[i][3] && 
     408            inst._selectedYear == adjusts[i][2] && inst._selectedMonth == (adjusts[i][3] - 1) && 
    378409            inst._selectedDay == adjusts[i][4]); 
    379410    } 
     
    401432    assertNull('Invalid min date (null,range,false)', inst._getMinMaxDate('min', false)); 
    402433    assertDateEquals('Invalid min date (null,range,true)', inst._rangeStart, inst._getMinMaxDate('min', true)); 
     434    // as relative numeric offsets 
     435    $.datepicker.reconfigureFor('#adj', {minDate: -7}); 
     436    assertDateEquals('Invalid min date (-7)', offsetDate(-7), inst._getMinMaxDate('min')); 
     437    $.datepicker.reconfigureFor('#adj', {maxDate: +14}); 
     438    assertDateEquals('Invalid max date (+14)', offsetDate(14), inst._getMinMaxDate('max')); 
     439    // as relative string offsets 
     440    $.datepicker.reconfigureFor('#adj', {minDate: '3 w'}); 
     441    assertDateEquals('Invalid min date (3 w)', offsetDate(21), inst._getMinMaxDate('min')); 
     442    $.datepicker.reconfigureFor('#adj', {maxDate: '2M'}); 
     443    assertDateEquals('Invalid max date (2M)', offsetMonth(2), inst._getMinMaxDate('max')); 
     444    // as error offsets 
     445    date = new Date(); 
     446    $.datepicker.reconfigureFor('#adj', {minDate: 'now'}); 
     447    assertDateEquals('Invalid min date (now)', date, inst._getMinMaxDate('min')); 
     448    $.datepicker.reconfigureFor('#adj', {maxDate: '2f'}); 
     449    assertDateEquals('Invalid max date (2f)', date, inst._getMinMaxDate('max')); 
    403450} 
    404451 
     
    422469} 
    423470 
     471function offsetDate(offset) { 
     472    var date = new Date(); 
     473    date.setDate(date.getDate() + offset); 
     474    return date; 
     475} 
     476 
     477function offsetMonth(offset) { 
     478    var date = new Date(); 
     479    date.setDate(Math.min(date.getDate(), $.datepicker._inst[0]._getDaysInMonth( 
     480        date.getFullYear(), date.getMonth() + offset))); 
     481    date.setMonth(date.getMonth() + offset); 
     482    return date; 
     483} 
     484 
    424485function assertDateEquals(msg, date1, date2) { 
    425     assertTrue(msg, date1 != null && date2 != null); 
    426     assertTrue(msg, date1.getFullYear() == date2.getFullYear() && 
    427         date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate()); 
     486    assertTrue(msg + ' - null date', date1 != null && date2 != null); 
     487    date1.setHours(0); 
     488    date1.setMinutes(0); 
     489    date1.setSeconds(0); 
     490    date1.setMilliseconds(0); 
     491    date2.setHours(0); 
     492    date2.setMinutes(0); 
     493    date2.setSeconds(0); 
     494    date2.setMilliseconds(0); 
     495    assertEquals(msg, date1.toString(), date2.toString()); 
    428496} 
    429497</script>