diff options
Diffstat (limited to 'testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm')
-rw-r--r-- | testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm new file mode 100644 index 000000000..18e3fb2f2 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm @@ -0,0 +1,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> |