summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html
blob: e67c04fc8dd174a0e9e8408efb8229e88a0ea691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html>
<title>document.lastModified should return current local time</title>
<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.");

  setTimeout(function() {
    t.step(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>