File: responsexml-document-properties.htm

package info (click to toggle)
thunderbird 1%3A52.8.0-1~deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,710,120 kB
  • sloc: cpp: 5,081,109; ansic: 2,051,982; python: 458,727; java: 241,615; xml: 193,367; asm: 178,649; sh: 81,881; makefile: 24,703; perl: 16,874; objc: 4,389; yacc: 1,816; ada: 1,697; lex: 1,257; pascal: 1,251; cs: 879; exp: 499; php: 436; lisp: 258; awk: 152; sed: 51; ruby: 47; csh: 27
file content (74 lines) | stat: -rw-r--r-- 2,920 bytes parent folder | download | duplicates (4)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: responseXML document properties</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsexml-attribute" data-tested-assertations="following::ol[1]/li[4]" />
    <link rel="help" href="https://xhr.spec.whatwg.org/#document-response-entity-body" data-tested-assertations="following::ol[1]/li[6] following::ol[1]/li[7] following::ol[1]/li[8] following::ol[1]/li[10]" />
  </head>
  <body>
    <div id="log"></div>
    <script>
      var timePreXHR = Math.floor(new Date().getTime(new Date().getTime() - 3000) / 1000); // three seconds ago, in case there's clock drift
      var client = new XMLHttpRequest()
      client.open("GET", "resources/well-formed.xml", false)
      client.send(null)
      var expected = {
        domain:undefined,
        URL:location.href.replace(/[^/]*$/, 'resources/well-formed.xml'),
        documentURI:location.href.replace(/[^/]*$/, 'resources/well-formed.xml'),
        referrer:'',
        title:'',
        contentType:'application/xml',
        readyState:'complete',
        location:null,
        defaultView:null,
        body:undefined,
        images: undefined,
        doctype:null,
        forms:undefined,
        all:undefined,
        links: undefined,
        cookie:''
      }

      for (var name in expected) {
        runTest(name, expected[name])
      }

      function runTest(name, value){
        test(function(){
          assert_equals(client.responseXML[name], value)
        }, name)
      }

      test(function() {
        var lastModified = Math.floor(new Date(client.responseXML.lastModified).getTime() / 1000);
        var now = Math.floor(new Date().getTime(new Date().getTime() + 3000) / 1000); // three seconds from now, in case there's clock drift
        assert_greater_than_equal(lastModified, timePreXHR);
        assert_less_than_equal(lastModified, now);
      }, 'lastModified set to time of response if no HTTP header provided')

      test(function() {
        var client2 = new XMLHttpRequest()
        client2.open("GET", "resources/last-modified.py", false)
        client2.send(null)
        assert_equals((new Date(client2.getResponseHeader('Last-Modified'))).getTime(), (new Date(client2.responseXML.lastModified)).getTime())
      }, 'lastModified set to related HTTP header if provided')

      test(function() {
        client.responseXML.cookie = "thisshouldbeignored"
        assert_equals(client.responseXML.cookie, "")
      }, 'cookie (after setting it)')

      test(function() {
        assert_equals(typeof(client.responseXML.styleSheets), "object")
      }, 'styleSheets')

      test(function() {
        assert_equals(typeof(client.responseXML.implementation), "object")
      }, 'implementation')
    </script>
  </body>
</html>