@@ -1268,4 +1268,52 @@ QUnit.test( "Ticket #15284: escaping text parameters", function( assert ) {
12681268 } ) ;
12691269} ) ;
12701270
1271+ QUnit . test ( "Ticket #7098: Broken handling of four digit years before year 100" , function ( assert ) {
1272+ assert . expect ( 123 ) ;
1273+
1274+ var year = null ,
1275+ someDate = null ,
1276+ parsedHDate = null ,
1277+ inp = testHelper . init ( "#inp" , {
1278+ changeMonth : true ,
1279+ changeYear : true ,
1280+ yearRange : "0:2100"
1281+ } ) ;
1282+
1283+ someDate = $ . datepicker . _createDate ( 0 , 1 , 29 ) ;
1284+ assert . equal ( someDate . getFullYear ( ) , 0 , "creates Date object for 0000-02-29" ) ;
1285+ assert . equal ( someDate . getMonth ( ) , 1 , "creates Date object for 0000-02-29" ) ;
1286+ assert . equal ( someDate . getDate ( ) , 29 , "creates Date object for 0000-02-29" ) ;
1287+
1288+ for ( year = 0 ; year < 100 ; year ++ ) { // loop 100
1289+ parsedHDate = $ . datepicker . parseDate ( "yy-m-d" , ( year < 10 ? "000" : "00" ) + year + "-10-23" , { shortYearCutoff : 0 } ) ;
1290+ someDate = new Date ( year , 2 - 1 , 3 ) ;
1291+ someDate . setFullYear ( year ) ;
1292+ assert . equal (
1293+ someDate . getFullYear ( ) , parsedHDate . getFullYear ( ) ,
1294+ "parseDate returns date object with the correct year"
1295+ ) ;
1296+ }
1297+
1298+ for ( year = 1 ; year < 100 ; year += 10 ) { // loop 10
1299+ someDate = new Date ( year , 2 , 3 ) ;
1300+ someDate . setFullYear ( year ) ;
1301+ inp . datepicker ( "option" , "defaultDate" , someDate ) ;
1302+ inp . datepicker ( "show" ) ;
1303+ $ ( "td[data-handler='selectDay'] a" ) . first ( ) . click ( ) ;
1304+ inp . datepicker ( "show" ) ;
1305+ assert . equal (
1306+ $ ( ".ui-datepicker-year option:selected" ) . val ( ) ,
1307+ someDate . getFullYear ( ) ,
1308+ "Selected year stays the same as the default"
1309+ ) ;
1310+ inp . datepicker ( "hide" ) ;
1311+ assert . ok (
1312+ inp . val ( ) . indexOf ( someDate . getFullYear ( ) ) !== - 1 ,
1313+ "inp val has the default/selected year"
1314+ ) ;
1315+ inp . datepicker ( "setDate" , null ) ;
1316+ }
1317+ } ) ;
1318+
12711319} ) ;
0 commit comments