description(
"This tests times that shouldn't happen because of DST, or times that happen twice"
);
description(
"For times that shouldn't happen we currently go back an hour, but in reality we would like to go forward an hour. This has been filed as a radar: 4777813"
);
description(
"For times that happen twice the behavior of all major browsers seems to be to pick the second occurrence, i.e. Standard Time not Daylight Time"
);
var testCases = [];
if ((new Date(2009, 9, 1)).toString().match("PDT")) {
testCases.push(["(new Date(1982, 2, 14, 2, 10)).getHours()", "1"]);
testCases.push(["(new Date(1982, 2, 14, 2)).getHours()", "1"]);
testCases.push(["(new Date(1982, 11, 7, 1, 10)).getTimezoneOffset()", "480"]);
testCases.push(["(new Date(1982, 11, 7, 1)).getTimezoneOffset()", "480"]);
}
var errors = [];
for (var i = 0; i < testCases.length; i++) {
var actual = eval(testCases[i][0]);
var expected = eval(testCases[i][1]);
if (actual != expected) {
errors.push(testCases[i][0] + " should be " + testCases[i][1] + ". Was " + actual + ".");
}
}
if (errors.length) {
testFailed(errors.length + "/" + testCases.length + " tests were failed: " + errors.join(", "));
} else {
testPassed("Passed all tests (or skipped all tests if your timezone isn't PST/PDT)");
}