Skip to content

Commit 59d41d2

Browse files
committed
Datepicker: Add test for create date year 0-99
1 parent c319675 commit 59d41d2

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/unit/datepicker/options.js

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

Comments
 (0)