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