mirror of
https://github.com/google/pebble.git
synced 2025-03-15 08:41:21 +00:00
520 lines
18 KiB
JavaScript
520 lines
18 KiB
JavaScript
var JAN = 0;
|
|
var FEB = 1;
|
|
var MAR = 2;
|
|
var APR = 3;
|
|
var MAY = 4;
|
|
var JUN = 5;
|
|
var JUL = 6;
|
|
var AUG = 7;
|
|
var SEP = 8;
|
|
var OCT = 9;
|
|
var NOV = 10;
|
|
var DEC = 11;
|
|
|
|
var SUN = 0;
|
|
var MON = 1;
|
|
var TUE = 2;
|
|
var WED = 3;
|
|
var THU = 4;
|
|
var FRI = 5;
|
|
var SAT = 6;
|
|
|
|
function matches(d, year, month, day, hour, min, sec, msec, wkday) {
|
|
equal(d.getFullYear(), year, "year");
|
|
equal(d.getMonth(), month, "month");
|
|
equal(d.getDate(), day, "day of month");
|
|
equal(d.getHours(), hour, "hour");
|
|
equal(d.getMinutes(), min, "minutes");
|
|
equal(d.getSeconds(), sec, "seconds");
|
|
equal(d.getMilliseconds(), msec, "milliseconds");
|
|
equal(d.getDay(), wkday, "weekday");
|
|
equal(d.getYear(), year-1900, "year-1900");
|
|
}
|
|
|
|
function matchesUTC(d, year, month, day, hour, min, sec, msec, wkday) {
|
|
equal(d.getUTCFullYear(), year, "UTC year");
|
|
equal(d.getUTCMonth(), month, "UTC month");
|
|
equal(d.getUTCDate(), day, "UTC day of month");
|
|
equal(d.getUTCHours(), hour, "UTC hour");
|
|
equal(d.getUTCMinutes(), min, "UTC minutes");
|
|
equal(d.getUTCSeconds(), sec, "UTC seconds");
|
|
equal(d.getUTCMilliseconds(), msec, "UTC milliseconds");
|
|
equal(d.getUTCDay(), wkday, "UTC weekday");
|
|
}
|
|
|
|
|
|
////////////////// Constructor tests ///////////////////
|
|
|
|
test("no-arg constructor; no time set", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
var now = new Date();
|
|
var d = new TimeShift.Date();
|
|
ok(now.getTime() - d.getTime() < 500);
|
|
});
|
|
|
|
test("no-arg constructor; time set", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
TimeShift.setTime(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
var d = new TimeShift.Date();
|
|
matches(d, 2013, AUG, 8, 21, 53, 4, 123, THU);
|
|
matchesUTC(d, 2013, AUG, 8, 19, 53, 4, 123, THU);
|
|
TimeShift.setTime(undefined);
|
|
});
|
|
|
|
test("no-arg constructor; reset to normal time", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
TimeShift.setTime(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
TimeShift.setTime(undefined);
|
|
var now = new Date();
|
|
var d = new TimeShift.Date();
|
|
ok(now.getTime() - d.getTime() < 500);
|
|
});
|
|
|
|
|
|
test("timestamp constructor", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
var d = new TimeShift.Date(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
matches(d, 2013, AUG, 8, 21, 53, 4, 123, THU);
|
|
matchesUTC(d, 2013, AUG, 8, 19, 53, 4, 123, THU);
|
|
});
|
|
|
|
test("constructor year-month", function() {
|
|
TimeShift.setTimezoneOffset(180);
|
|
var d = new TimeShift.Date(2012, MAR); // Thu 2012-03-01 00:00:00 -0300
|
|
matches(d, 2012, MAR, 1, 00, 00, 00, 000, THU);
|
|
matchesUTC(d, 2012, MAR, 1, 03, 00, 00, 000, THU);
|
|
});
|
|
|
|
test("constructor year-month-day", function() {
|
|
TimeShift.setTimezoneOffset(-180);
|
|
var d = new TimeShift.Date(2012, MAR, 5); // Mon 2012-03-05 00:00:00 +0300
|
|
matches(d, 2012, MAR, 5, 00, 00, 00, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 4, 21, 00, 00, 000, SUN);
|
|
});
|
|
|
|
test("constructor year-month-day-hour", function() {
|
|
TimeShift.setTimezoneOffset(-180);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23); // Mon 2012-03-05 23:00:00 +0300
|
|
matches(d, 2012, MAR, 5, 23, 00, 00, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 20, 00, 00, 000, MON);
|
|
});
|
|
|
|
test("constructor year-month-day-hour-min", function() {
|
|
TimeShift.setTimezoneOffset(-180);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45); // Mon 2012-03-05 23:45:00 +0300
|
|
matches(d, 2012, MAR, 5, 23, 45, 00, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 20, 45, 00, 000, MON);
|
|
});
|
|
|
|
test("constructor year-month-day-hour-min-sec", function() {
|
|
TimeShift.setTimezoneOffset(-180);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0300
|
|
matches(d, 2012, MAR, 5, 23, 45, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 20, 45, 12, 000, MON);
|
|
});
|
|
|
|
test("constructor year-month-day-hour-min-sec-msec", function() {
|
|
TimeShift.setTimezoneOffset(-180);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 23); // Mon 2012-03-05 23:45:12.023 +0300
|
|
matches(d, 2012, MAR, 5, 23, 45, 12, 23, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 20, 45, 12, 23, MON);
|
|
});
|
|
|
|
test("constructor year-month with timezone shift over month border", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
var d = new TimeShift.Date(2012, MAR); // Thu 2012-03-01 00:00:00 +0200
|
|
matches(d, 2012, MAR, 1, 00, 00, 00, 000, THU);
|
|
matchesUTC(d, 2012, FEB, 29, 22, 00, 00, 000, WED);
|
|
});
|
|
|
|
test("timezone shift over year boundary", function() {
|
|
TimeShift.setTimezoneOffset(-630);
|
|
var d = new TimeShift.Date(1356989624234); // Mon 2012-12-31 21:33:44.234 UTC
|
|
matches(d, 2013, JAN, 1, 8, 03, 44, 234, TUE);
|
|
matchesUTC(d, 2012, DEC, 31, 21, 33, 44, 234, MON);
|
|
});
|
|
|
|
|
|
/////////////////// Setter tests /////////////////////
|
|
|
|
test("set test precondition", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
matches(d, 2012, MAR, 5, 23, 45, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 12, 000, MON);
|
|
});
|
|
|
|
//// Local time
|
|
|
|
test("setFullYear(year)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setFullYear(2011);
|
|
matches(d, 2011, MAR, 5, 23, 45, 12, 000, SAT);
|
|
matchesUTC(d, 2011, MAR, 5, 18, 45, 12, 000, SAT);
|
|
});
|
|
|
|
test("setFullYear(year, month)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setFullYear(2011, APR);
|
|
matches(d, 2011, APR, 5, 23, 45, 12, 000, TUE);
|
|
matchesUTC(d, 2011, APR, 5, 18, 45, 12, 000, TUE);
|
|
});
|
|
|
|
test("setFullYear(year, month, day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setFullYear(2011, APR, 7);
|
|
matches(d, 2011, APR, 7, 23, 45, 12, 000, THU);
|
|
matchesUTC(d, 2011, APR, 7, 18, 45, 12, 000, THU);
|
|
});
|
|
|
|
test("setYear(year)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setYear(111);
|
|
matches(d, 2011, MAR, 5, 23, 45, 12, 000, SAT);
|
|
matchesUTC(d, 2011, MAR, 5, 18, 45, 12, 000, SAT);
|
|
});
|
|
|
|
test("setMonth(month)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMonth(APR);
|
|
matches(d, 2012, APR, 5, 23, 45, 12, 000, THU);
|
|
matchesUTC(d, 2012, APR, 5, 18, 45, 12, 000, THU);
|
|
});
|
|
|
|
test("setMonth(month, day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMonth(APR, 7);
|
|
matches(d, 2012, APR, 7, 23, 45, 12, 000, SAT);
|
|
matchesUTC(d, 2012, APR, 7, 18, 45, 12, 000, SAT);
|
|
});
|
|
|
|
test("setDate(day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setDate(7);
|
|
matches(d, 2012, MAR, 7, 23, 45, 12, 000, WED);
|
|
matchesUTC(d, 2012, MAR, 7, 18, 45, 12, 000, WED);
|
|
});
|
|
|
|
test("setHours(hour)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setHours(20);
|
|
matches(d, 2012, MAR, 5, 20, 45, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 15, 45, 12, 000, MON);
|
|
});
|
|
|
|
test("setHours(hour, min)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setHours(20, 51);
|
|
matches(d, 2012, MAR, 5, 20, 51, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 15, 51, 12, 000, MON);
|
|
});
|
|
|
|
test("setHours(hour, min, sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setHours(20, 51, 22);
|
|
matches(d, 2012, MAR, 5, 20, 51, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 15, 51, 22, 000, MON);
|
|
});
|
|
|
|
test("setHours(hour, min, sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setHours(20, 51, 22, 123);
|
|
matches(d, 2012, MAR, 5, 20, 51, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 15, 51, 22, 123, MON);
|
|
});
|
|
|
|
test("setMinutes(min)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMinutes(52);
|
|
matches(d, 2012, MAR, 5, 23, 52, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 12, 000, MON);
|
|
});
|
|
|
|
test("setMinutes(min, sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMinutes(52, 22);
|
|
matches(d, 2012, MAR, 5, 23, 52, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 22, 000, MON);
|
|
});
|
|
|
|
test("setMinutes(min, sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMinutes(52, 22, 123);
|
|
matches(d, 2012, MAR, 5, 23, 52, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 22, 123, MON);
|
|
});
|
|
|
|
test("setSeconds(sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setSeconds(22);
|
|
matches(d, 2012, MAR, 5, 23, 45, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 22, 000, MON);
|
|
});
|
|
|
|
test("setSeconds(sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setSeconds(22, 123);
|
|
matches(d, 2012, MAR, 5, 23, 45, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 22, 123, MON);
|
|
});
|
|
|
|
test("setMilliseconds(msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setMilliseconds(123);
|
|
matches(d, 2012, MAR, 5, 23, 45, 12, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 12, 123, MON);
|
|
});
|
|
|
|
|
|
//// UTC time
|
|
|
|
test("setUTCFullYear(year)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCFullYear(2011);
|
|
matches(d, 2011, MAR, 5, 23, 45, 12, 000, SAT);
|
|
matchesUTC(d, 2011, MAR, 5, 18, 45, 12, 000, SAT);
|
|
});
|
|
|
|
test("setUTCFullYear(year, month)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCFullYear(2011, APR);
|
|
matches(d, 2011, APR, 5, 23, 45, 12, 000, TUE);
|
|
matchesUTC(d, 2011, APR, 5, 18, 45, 12, 000, TUE);
|
|
});
|
|
|
|
test("setUTCFullYear(year, month, day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCFullYear(2011, APR, 7);
|
|
matches(d, 2011, APR, 7, 23, 45, 12, 000, THU);
|
|
matchesUTC(d, 2011, APR, 7, 18, 45, 12, 000, THU);
|
|
});
|
|
|
|
test("setUTCMonth(month)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMonth(APR);
|
|
matches(d, 2012, APR, 5, 23, 45, 12, 000, THU);
|
|
matchesUTC(d, 2012, APR, 5, 18, 45, 12, 000, THU);
|
|
});
|
|
|
|
test("setUTCMonth(month, day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMonth(APR, 7);
|
|
matches(d, 2012, APR, 7, 23, 45, 12, 000, SAT);
|
|
matchesUTC(d, 2012, APR, 7, 18, 45, 12, 000, SAT);
|
|
});
|
|
|
|
test("setUTCDate(day)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCDate(7);
|
|
matches(d, 2012, MAR, 7, 23, 45, 12, 000, WED);
|
|
matchesUTC(d, 2012, MAR, 7, 18, 45, 12, 000, WED);
|
|
});
|
|
|
|
test("setUTCHours(hour)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCHours(10);
|
|
matches(d, 2012, MAR, 5, 15, 45, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 10, 45, 12, 000, MON);
|
|
});
|
|
|
|
test("setUTCHours(hour, min)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCHours(10, 51);
|
|
matches(d, 2012, MAR, 5, 15, 51, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 10, 51, 12, 000, MON);
|
|
});
|
|
|
|
test("setUTCHours(hour, min, sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCHours(10, 51, 22);
|
|
matches(d, 2012, MAR, 5, 15, 51, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 10, 51, 22, 000, MON);
|
|
});
|
|
|
|
test("setUTCHours(hour, min, sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCHours(10, 51, 22, 123);
|
|
matches(d, 2012, MAR, 5, 15, 51, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 10, 51, 22, 123, MON);
|
|
});
|
|
|
|
test("setUTCMinutes(min)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMinutes(52);
|
|
matches(d, 2012, MAR, 5, 23, 52, 12, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 12, 000, MON);
|
|
});
|
|
|
|
test("setUTCMinutes(min, sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMinutes(52, 22);
|
|
matches(d, 2012, MAR, 5, 23, 52, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 22, 000, MON);
|
|
});
|
|
|
|
test("setUTCMinutes(min, sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMinutes(52, 22, 123);
|
|
matches(d, 2012, MAR, 5, 23, 52, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 52, 22, 123, MON);
|
|
});
|
|
|
|
test("setUTCSeconds(sec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCSeconds(22);
|
|
matches(d, 2012, MAR, 5, 23, 45, 22, 000, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 22, 000, MON);
|
|
});
|
|
|
|
test("setUTCSeconds(sec, msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCSeconds(22, 123);
|
|
matches(d, 2012, MAR, 5, 23, 45, 22, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 22, 123, MON);
|
|
});
|
|
|
|
test("setUTCMilliseconds(msec)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setUTCMilliseconds(123);
|
|
matches(d, 2012, MAR, 5, 23, 45, 12, 123, MON);
|
|
matchesUTC(d, 2012, MAR, 5, 18, 45, 12, 123, MON);
|
|
});
|
|
|
|
//// Other setters
|
|
|
|
test("setTime(time)", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12); // Mon 2012-03-05 23:45:12 +0500
|
|
d.setTime(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
matches(d, 2013, AUG, 9, 00, 53, 04, 123, FRI);
|
|
matchesUTC(d, 2013, AUG, 8, 19, 53, 04, 123, THU);
|
|
});
|
|
|
|
|
|
//////////////////// Other functionality ////////////////////
|
|
|
|
test("getTime(), valueOf()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12.123 +0500
|
|
equal(d.getTime(), 1330973112123);
|
|
equal(d.valueOf(), 1330973112123);
|
|
});
|
|
|
|
test("getTimezoneOffset()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12.123 +0500
|
|
equal(d.getTimezoneOffset(), -300);
|
|
TimeShift.setTimezoneOffset(-650);
|
|
equal(d.getTimezoneOffset(), -650);
|
|
TimeShift.setTimezoneOffset(550);
|
|
equal(d.getTimezoneOffset(), 550);
|
|
});
|
|
|
|
|
|
///////////////////// "Class" functions ////////////////////
|
|
|
|
test("Date.now(); no time set", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
var now = Date.now();
|
|
var t = TimeShift.Date.now();
|
|
ok(now - t < 500);
|
|
});
|
|
|
|
test("Date.now(); time set", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
TimeShift.setTime(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
var t = TimeShift.Date.now();
|
|
equal(t, 1375991584123);
|
|
TimeShift.setTime(undefined);
|
|
});
|
|
|
|
test("Date.now(); reset to normal time", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
TimeShift.setTime(1375991584123); // Thu 2013-08-08 19:53:04.123 UTC
|
|
TimeShift.setTime(undefined);
|
|
var now = Date.now();
|
|
var t = TimeShift.Date.now();
|
|
ok(now - t < 500);
|
|
});
|
|
|
|
test("Date.UTC", function() {
|
|
TimeShift.setTimezoneOffset(-120);
|
|
var t = TimeShift.Date.UTC(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12 UTC
|
|
equal(t, 1330991112123);
|
|
});
|
|
|
|
// Date.parse is probably not correct
|
|
|
|
|
|
///////////////////// String functions (approximate) /////////////////////
|
|
|
|
test("toString()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 6, 7, 8, 123); // Mon 2012-03-05 06:07:08.123 +0500
|
|
equal(d.toString(), "Mon Mar 05 2012 06:07:08 GMT+0500");
|
|
});
|
|
|
|
test("toString() 2", function() {
|
|
TimeShift.setTimezoneOffset(300);
|
|
var d = new TimeShift.Date(2012, DEC, 29, 6, 7, 8, 123); // Sat 2012-12-29 06:07:08.123 -0500
|
|
equal(d.toString(), "Sat Dec 29 2012 06:07:08 GMT-0500");
|
|
});
|
|
|
|
test("toString() 3", function() {
|
|
TimeShift.setTimezoneOffset(0);
|
|
var d = new TimeShift.Date(2012, JAN, 1, 6, 7, 8, 123); // Sun 2012-01-01 06:07:08.123 GMT
|
|
equal(d.toString(), "Sun Jan 01 2012 06:07:08 GMT");
|
|
});
|
|
|
|
test("toUTCString()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12.123 +0500
|
|
// IE has slightly own format
|
|
ok(d.toUTCString().match(/^Mon, 0?5 Mar 2012 18:45:12 (GMT|UTC)$/));
|
|
});
|
|
|
|
test("toISOString()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12.123 +0500
|
|
equal(d.toISOString(), "2012-03-05T18:45:12.123Z");
|
|
});
|
|
|
|
test("toJSON()", function() {
|
|
TimeShift.setTimezoneOffset(-300);
|
|
var d = new TimeShift.Date(2012, MAR, 5, 23, 45, 12, 123); // Mon 2012-03-05 23:45:12.123 +0500
|
|
equal(d.toJSON(), "2012-03-05T18:45:12.123Z");
|
|
});
|
|
|