2015-07-15 13:40:38 +00:00
|
|
|
define( [
|
|
|
|
"jquery",
|
|
|
|
"globalize",
|
|
|
|
"date"
|
|
|
|
], function( $, Globalize ) {
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
module( "date: core" );
|
2013-08-26 10:44:20 +00:00
|
|
|
|
2014-01-09 14:48:43 +00:00
|
|
|
test( "Instantiation", function() {
|
|
|
|
expect( 2 );
|
|
|
|
ok( new $.date() instanceof $.date, "constructor function" );
|
|
|
|
ok( $.date() instanceof $.date, "instantiation without new" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
test( "Check Sets and Gets", 6, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
equal( date.setYear( 2012 ).year(), 2012, "Set year and retrieve" );
|
|
|
|
equal( date.setMonth( 9 ).month(), 9, "Set month and retrieve" );
|
|
|
|
equal( date.setDay( 15 ).day(), 15, "Set day and retrieve" );
|
|
|
|
equal( date.setFullDate( 2012, 9, 15 ).year(), 2012, "Set full date and retrieve year" );
|
|
|
|
equal( date.month(), 9, "Set full date and retrieve month" );
|
|
|
|
equal( date.day(), 15, "Set full date and retrieve day" );
|
2013-08-30 12:27:19 +00:00
|
|
|
});
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
test( "Date Adjustments - Normal Use Cases", 10, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
// Use October 15, 2012
|
|
|
|
date.setFullDate( 2012, 9, 15 );
|
|
|
|
equal( date.adjust( "D", 1 ).day(), 16, "Add 1 day" );
|
|
|
|
equal( date.adjust( "D", -1 ).day(), 15, "Subtract 1 day" );
|
|
|
|
equal( date.adjust( "M", 1 ).month(), 10, "Add 1 month" );
|
|
|
|
equal( date.adjust( "M", -1 ).month(), 9, "Subtract 1 month" );
|
|
|
|
equal( date.adjust( "Y", 1 ).year(), 2013, "Add 1 year" );
|
|
|
|
equal( date.adjust( "Y", -1 ).year(), 2012, "Subtract 1 year" );
|
|
|
|
|
|
|
|
// Check changing one value impact another. Ex: Day impacts month
|
|
|
|
// Use April 30th 2012
|
|
|
|
date.setFullDate( 2012, 3, 30 );
|
|
|
|
equal( date.adjust( "D", 1 ).month(), 4, "Add 1 day to change month from April to May" );
|
|
|
|
equal( date.adjust( "D", -1 ).month(), 3, "Subtract 1 day to change month from May to April" );
|
|
|
|
|
|
|
|
// Use December 31st 2012
|
|
|
|
date.setFullDate( 2012, 11, 31 );
|
|
|
|
equal( date.adjust( "D", 1 ).year(), 2013, "Add 1 day to change year from 2012 to 2013" );
|
|
|
|
equal( date.adjust( "D", -1 ).year(), 2012,
|
|
|
|
"Subtract 1 day to change month from 2013 to 2012" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Date Adjustments - Month Overflow Edge Cases", 2, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
// Use May 31 2012
|
|
|
|
date.setFullDate( 2012, 4, 31 );
|
|
|
|
equal( date.adjust( "M", 1 ).day(), 30,
|
|
|
|
"Add 1 month from May to June sets days to 30, last day in June (prevent Overflow)" );
|
|
|
|
equal( date.adjust( "M", -1 ).day(), 30,
|
|
|
|
"Subtract 1 month from June to May sets days to 30 in May" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Date Adjustments - Leap Year Edge Cases", 1, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
// Use February 29 2012 a Leap year
|
|
|
|
date.setFullDate( 2012, 1, 29 );
|
|
|
|
equal( date.adjust( "Y", 1 ).day(), 28,
|
|
|
|
"Feb 29 2012, add a year to convert to Feb 28, 2013" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "List days of Week", 2, function() {
|
2013-08-30 12:27:19 +00:00
|
|
|
var date = $.date(),
|
|
|
|
offset0 = [
|
2014-04-26 12:31:28 +00:00
|
|
|
{ "fullname": "Sunday", "shortname": "Su" },
|
|
|
|
{ "fullname": "Monday", "shortname": "Mo" },
|
|
|
|
{ "fullname": "Tuesday", "shortname": "Tu" },
|
|
|
|
{ "fullname": "Wednesday", "shortname": "We" },
|
|
|
|
{ "fullname": "Thursday", "shortname": "Th" },
|
|
|
|
{ "fullname": "Friday", "shortname": "Fr" },
|
|
|
|
{ "fullname": "Saturday", "shortname": "Sa" }
|
2013-08-30 12:27:19 +00:00
|
|
|
],
|
|
|
|
offset1 = [
|
2013-11-30 12:22:17 +00:00
|
|
|
{ "fullname": "Montag", "shortname": "Mo." },
|
|
|
|
{ "fullname": "Dienstag", "shortname": "Di." },
|
|
|
|
{ "fullname": "Mittwoch", "shortname": "Mi." },
|
|
|
|
{ "fullname": "Donnerstag", "shortname": "Do." },
|
|
|
|
{ "fullname": "Freitag", "shortname": "Fr." },
|
|
|
|
{ "fullname": "Samstag", "shortname": "Sa." },
|
|
|
|
{ "fullname": "Sonntag", "shortname": "So." }
|
2013-08-30 12:27:19 +00:00
|
|
|
];
|
2014-01-09 14:15:42 +00:00
|
|
|
|
|
|
|
deepEqual( date.weekdays(), offset0, "Get weekdays with start of day on 0 (English)" );
|
2014-09-04 19:04:04 +00:00
|
|
|
Globalize.locale( "de" );
|
2014-01-09 14:15:42 +00:00
|
|
|
deepEqual( date.weekdays(), offset1, "Get weekdays with start of day on 1 (Germany)" );
|
|
|
|
|
|
|
|
// Revert Globalize changes back to English
|
2013-11-30 12:22:17 +00:00
|
|
|
Globalize.locale( "en" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Leap Year Check", 8, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
ok( date.setYear( 2008 ).isLeapYear(), "2008 is a Leap Year" );
|
|
|
|
ok( !date.setYear( 2009 ).isLeapYear(), "2009 is not a Leap Year" );
|
|
|
|
ok( !date.setYear( 2010 ).isLeapYear(), "2010 is not a Leap Year" );
|
|
|
|
ok( !date.setYear( 2011 ).isLeapYear(), "2011 is not a Leap Year" );
|
|
|
|
ok( date.isLeapYear( 2012 ), "2012 is a Leap Year" );
|
|
|
|
ok( !date.isLeapYear( 2013 ), "2013 is not a Leap Year" );
|
|
|
|
ok( !date.isLeapYear( 2014 ), "2014 is not a Leap year" );
|
|
|
|
ok( !date.isLeapYear( 2015 ), "2015 is not a Leap year" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Days in Month", 3, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
|
|
|
date.setFullDate( 2012, 1, 1 );
|
2014-01-09 14:15:42 +00:00
|
|
|
equal( date.daysInMonth(), 29, "Leap Year implicit check for 29 days" );
|
|
|
|
equal( date.daysInMonth( 2012, 1 ), 29, "Leap Year explicit check for 29 days" );
|
|
|
|
equal( date.daysInMonth( 2011, 3 ), 30, "April has 30 days" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Month Name", 2, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
equal( date.setMonth( 3 ).monthName(), "April", "Month name return April (English)" );
|
2014-09-04 19:04:04 +00:00
|
|
|
Globalize.locale( "de" );
|
2014-01-09 14:15:42 +00:00
|
|
|
equal( date.setMonth( 2 ).monthName(), "März", "Month name return March (German)" );
|
2013-11-30 12:22:17 +00:00
|
|
|
Globalize.locale( "en" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Clone", 2, function() {
|
2013-08-30 12:27:19 +00:00
|
|
|
var date = $.date(),
|
|
|
|
date2 = date.clone();
|
2014-01-09 14:15:42 +00:00
|
|
|
ok( date2, "Created cloned object" );
|
|
|
|
notEqual( date.adjust( "Y", 1 ).year(), date2.year(), "Object manipulated independently" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Days", 1, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
//TODO needs work
|
|
|
|
var date = $.date();
|
|
|
|
date.eachDay = function( day ) {
|
|
|
|
if ( day.lead && day.date > 20 ) {
|
|
|
|
day.selectable = false;
|
|
|
|
day.render = true;
|
|
|
|
day.title = "These are the days of last month";
|
|
|
|
day.extraClasses = "ui-state-disabled";
|
|
|
|
}
|
|
|
|
if ( day.lead && day.date < 3 ) {
|
|
|
|
day.selectable = true;
|
|
|
|
day.render = true;
|
|
|
|
day.extraClasses = "ui-state-disabled";
|
|
|
|
}
|
2013-08-30 12:27:19 +00:00
|
|
|
if ( day.date === 1 ) {
|
2013-08-26 10:44:20 +00:00
|
|
|
day.extraClasses = "ui-state-error";
|
|
|
|
day.title = "Something bad explaining the error highlight";
|
|
|
|
}
|
|
|
|
if ( day.today ) {
|
|
|
|
day.title = "A good day!";
|
|
|
|
}
|
|
|
|
};
|
2014-01-09 14:15:42 +00:00
|
|
|
ok( date.days(), "Date days() returns");
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test( "Months", 5, function(){
|
|
|
|
var date = $.date(),
|
|
|
|
firstMonth = date.months( 1 )[ 0 ],
|
|
|
|
lastMonth = date.months( 1 )[ 1 ];
|
|
|
|
|
|
|
|
ok( firstMonth.first );
|
|
|
|
ok( !lastMonth.first );
|
|
|
|
ok( lastMonth.last );
|
|
|
|
ok( !lastMonth.first );
|
|
|
|
|
2013-08-30 12:27:19 +00:00
|
|
|
ok( firstMonth.month() === lastMonth.month() - 1 );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Equal", 4, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
date.setFullDate( 2012, 9, 16 );
|
|
|
|
ok( date.equal( new Date( 2012, 9, 16 ) ), "Does date equal provide date" );
|
|
|
|
ok( !date.equal( new Date( 2011, 9, 16 ) ), "Does date year not equal provide date" );
|
|
|
|
ok( !date.equal( new Date( 2012, 8, 16 ) ), "Does date month not equal provide date" );
|
|
|
|
ok( !date.equal( new Date( 2012, 9, 15 ) ), "Does date day not equal provide date" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Date", 1, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
ok( date.date() instanceof Date, "Date returned" );
|
2013-08-26 10:44:20 +00:00
|
|
|
});
|
|
|
|
|
2014-01-09 14:15:42 +00:00
|
|
|
test( "Format", 4, function() {
|
2013-08-26 10:44:20 +00:00
|
|
|
var date = $.date();
|
2014-01-09 14:15:42 +00:00
|
|
|
date.setFullDate( 2012, 9, 16 );
|
|
|
|
equal( date.format({ date: "short" }), "10/16/12", "Checking default US format" );
|
|
|
|
equal( date.format({ pattern: "yyyy/MM/dd" }), "2012/10/16", "Checking yyyy/MM/dd format" );
|
|
|
|
equal( date.format({ pattern: "yy/dd/MM" }), "12/16/10", "Checking yy/dd/MM format" );
|
|
|
|
equal( date.format({ pattern: "MMMM dd, yyyy" }), "October 16, 2012",
|
|
|
|
"Checking MMMM dd, yyyy format" );
|
2013-08-30 12:27:19 +00:00
|
|
|
});
|
2015-07-15 13:40:38 +00:00
|
|
|
|
|
|
|
} );
|