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