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