Chromium Code Reviews| 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 |