chromium/third_party/blink/web_tests/fast/js/script-tests/date-DST-time-cusps.js

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)");
}