summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm')
-rw-r--r--testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm74
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>