blob: b36871831ae3c86dd58bbcbda3dfc6cb5057d50c [file] [log] [blame]
<!DOCTYPE html>
<title>document.lastModified should return current local time</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
var d = new Date();
var last_modified = document.lastModified;
var initial_modified = Date.parse(last_modified) / 1000;
var expected = Math.round(d / 1000);
test(function() {
assert_approx_equals(initial_modified, expected, 2.5);
}, "Date returned by lastModified is current at page load");
var pattern = /[0-9]{2}\/[0-9]{2}\/[0-9]{4} ([0-9]{2}):([0-9]{2}):([0-9]{2})/
test(function() {
assert_regexp_match(last_modified, pattern,
"Format should match the pattern \"NN/NN/NNNN NN:NN:NN\".");
}, "Date returned by lastModified is in the form \"MM/DD/YYYY hh:mm:ss\".");
var hours = d.getHours()
var minutes = d.getMinutes()
var seconds = d.getSeconds()
// Checking whether d and and new instance of Date have the same timezone.
// Do not run the time zone test in the case daylight saving occurs.
var d2 = new Date();
if (d2.getTimezoneOffset() == d.getTimezoneOffset()) {
test(function() {
var local_time = hours * 60 * 60 + minutes * 60 + seconds;
var m = pattern.exec(last_modified);
var last_modified_time = parseInt(m[1]) * 60 * 60 + parseInt(m[2]) * 60 + parseInt(m[3]);
assert_approx_equals(last_modified_time, local_time, 2,
"Hours and minutes should match local time.");
}, "Date returned by lastModified is in the user's local time zone.");
}
var t = async_test("Date returned by lastModified is current after timeout.");
t.step_timeout(function() {
var new_modified = Date.parse(document.lastModified) / 1000;
var new_expected = Math.round(new Date() / 1000);
assert_approx_equals(new_modified, new_expected, 2.5,
"(initial value was " + initial_modified + ")");
t.done();
}, 4000);
</script>