| <!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> |