Skip to content

Commit 03796d9

Browse files
committed
Datepicker: Add test for create date year 0-99
1 parent d795365 commit 03796d9

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tests/unit/datepicker/options.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)