OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE html> | |
2 <html> | |
3 <body> | |
tyoshino (SeeGerritForStatus)
2014/08/15 09:32:06
omit html and body?
yhirano
2014/08/15 09:51:34
Done.
| |
4 <script src="../resources/testharness.js"></script> | |
5 <script src="../resources/testharnessreport.js"></script> | |
6 <script type="text/javascript"> | |
7 var test = async_test('Test canceling XMLHttpRequest with responseType set to "s tream".'); | |
8 | |
9 test.step(function() | |
10 { | |
11 var xhr = new XMLHttpRequest; | |
12 | |
13 xhr.responseType = 'stream'; | |
14 assert_equals(xhr.responseType, 'stream', 'xhr.responseType'); | |
15 | |
16 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState'); | |
17 assert_equals(xhr.response, null, 'xhr.response during UNSENT'); | |
tyoshino (SeeGerritForStatus)
2014/08/15 09:32:06
let's omit these (L14-17) as well as response-stre
yhirano
2014/08/15 09:51:34
Done.
| |
18 | |
19 var seenStates = []; | |
20 | |
21 xhr.onreadystatechange = test.step_func(function() { | |
22 // onreadystatechange can be invoked multiple times in LOADING state. | |
23 if (seenStates.length == 0 || xhr.readyState != seenStates[seenStates.le ngth - 1]) | |
24 seenStates.push(xhr.readyState); | |
25 | |
26 switch (xhr.readyState) { | |
27 case xhr.UNSENT: | |
28 assert_unreached('Unexpected readyState: UNSENT'); | |
29 return; | |
30 | |
31 case xhr.OPENED: | |
32 assert_equals(xhr.response, null, 'xhr.response during OPENED'); | |
33 return; | |
34 | |
35 case xhr.HEADERS_RECEIVED: | |
36 assert_equals(xhr.response, null, 'xhr.response during HEADERS_RECEI VED'); | |
37 return; | |
38 | |
39 case xhr.LOADING: | |
40 var stream = xhr.response; | |
41 assert_true(stream instanceof ReadableStream, | |
42 'xhr.response should be ReadableStream during LOADING'); | |
43 stream.cancel('canceled via ReadableStream.cancel'); | |
44 assert_equals(stream.state, 'closed', 'stream.state after cancel'); | |
45 | |
46 // Check that we saw all states. | |
47 assert_array_equals(seenStates, | |
48 [xhr.OPENED, xhr.HEADERS_RECEIVED, xhr.LOADING, xhr.DONE]); | |
49 | |
50 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState after canc el'); | |
51 assert_equals(xhr.response, null, 'xhr.response after cancel'); | |
52 stream.closed.then(test.step_func(function(value) { | |
53 assert_equals(value, undefined, | |
54 'stream.closed should be resolved with undefined'); | |
55 test.done(); | |
56 }), test.step_func(function() { | |
57 assert_unreached('stream.closed should not be rejected'); | |
58 })); | |
tyoshino (SeeGerritForStatus)
2014/08/15 09:32:06
blank line?
yhirano
2014/08/15 09:51:34
Done.
| |
59 case xhr.DONE: | |
60 return; | |
61 | |
62 default: | |
63 assert_unreached('Unexpected readyState: ' + xhr.readyState) | |
64 return; | |
65 } | |
66 }); | |
67 | |
68 xhr.open('GET', '../resources/load-and-stall.php?name=test.ogv&stallAt=32768 &stallFor=10', true); | |
69 xhr.send(); | |
70 }); | |
71 </script> | |
72 </body> | |
73 </html> | |
OLD | NEW |