| OLD | NEW |
| 1 var global = this; | 1 var global = this; |
| 2 if (global.importScripts) { | 2 if (global.importScripts) { |
| 3 // Worker case | 3 // Worker case |
| 4 importScripts('/resources/testharness.js'); | 4 importScripts('/resources/testharness.js'); |
| 5 } | 5 } |
| 6 | 6 |
| 7 var testInLoadingState = async_test('Test aborting XMLHttpRequest with responseT
ype set to "stream" in LOADING state.'); | 7 var testInLoadingState = async_test('Test aborting XMLHttpRequest with responseT
ype set to "stream" in LOADING state.'); |
| 8 | 8 |
| 9 testInLoadingState.step(function() | 9 testInLoadingState.step(function() |
| 10 { | 10 { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 case xhr.LOADING: | 31 case xhr.LOADING: |
| 32 var stream = xhr.response; | 32 var stream = xhr.response; |
| 33 assert_true(stream instanceof ReadableStream, 'xhr.response shoud be
ReadableStream'); | 33 assert_true(stream instanceof ReadableStream, 'xhr.response shoud be
ReadableStream'); |
| 34 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x
hr.LOADING]); | 34 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x
hr.LOADING]); |
| 35 | 35 |
| 36 xhr.abort(); | 36 xhr.abort(); |
| 37 | 37 |
| 38 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState after abor
t() call'); | 38 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState after abor
t() call'); |
| 39 assert_equals(xhr.response, null, 'xhr.response after abort() call')
; | 39 assert_equals(xhr.response, null, 'xhr.response after abort() call')
; |
| 40 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x
hr.LOADING, xhr.DONE]); | 40 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x
hr.LOADING, xhr.DONE]); |
| 41 stream.closed.then(testInLoadingState.step_func(assert_unreached), t
estInLoadingState.done.bind(testInLoadingState)); | 41 stream.getReader().closed.then(testInLoadingState.step_func(assert_u
nreached), testInLoadingState.done.bind(testInLoadingState)); |
| 42 return; | 42 return; |
| 43 | 43 |
| 44 case xhr.DONE: | 44 case xhr.DONE: |
| 45 return; | 45 return; |
| 46 | 46 |
| 47 default: | 47 default: |
| 48 assert_unreached('Unexpected readyState: ' + xhr.readyState); | 48 assert_unreached('Unexpected readyState: ' + xhr.readyState); |
| 49 return; | 49 return; |
| 50 } | 50 } |
| 51 }); | 51 }); |
| 52 | 52 |
| 53 xhr.open('GET', '/resources/test.ogv', true); | 53 xhr.open('GET', '/resources/test.ogv', true); |
| 54 xhr.send(); | 54 xhr.send(); |
| 55 }); | 55 }); |
| 56 | 56 |
| 57 var testInDoneState = async_test('Test aborting XMLHttpRequest with responseType
set to "stream" in DONE state.'); | 57 var testInDoneState = async_test('Test aborting XMLHttpRequest with responseType
set to "stream" in DONE state.'); |
| 58 | 58 |
| 59 function readUntilDone(reader) { | 59 function readUntilDone(reader) { |
| 60 return reader.ready.then(function() { | 60 return reader.read().then(function(r) { |
| 61 while (reader.state == 'readable') { | 61 if (r.done) { |
| 62 reader.read(); | |
| 63 } | |
| 64 if (reader.state == 'closed' || reader.state == 'errored') { | |
| 65 return reader.closed; | 62 return reader.closed; |
| 66 } else { | 63 } else { |
| 67 return readUntilDone(reader); | 64 return readUntilDone(reader); |
| 68 } | 65 } |
| 69 }); | 66 }); |
| 70 } | 67 } |
| 71 | 68 |
| 72 testInDoneState.step(function() | 69 testInDoneState.step(function() |
| 73 { | 70 { |
| 74 var xhr = new XMLHttpRequest; | 71 var xhr = new XMLHttpRequest; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 96 assert_true(stream instanceof ReadableStream, 'xhr.response
should be ReadableStream'); | 93 assert_true(stream instanceof ReadableStream, 'xhr.response
should be ReadableStream'); |
| 97 assert_equals(xhr.status, 200, 'xhr.status'); | 94 assert_equals(xhr.status, 200, 'xhr.status'); |
| 98 assert_not_equals(xhr.response, null, 'xhr.response during D
ONE'); | 95 assert_not_equals(xhr.response, null, 'xhr.response during D
ONE'); |
| 99 | 96 |
| 100 xhr.abort(); | 97 xhr.abort(); |
| 101 | 98 |
| 102 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState af
ter abort() call'); | 99 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState af
ter abort() call'); |
| 103 assert_equals(xhr.response, null, 'xhr.response after abort(
) call'); | 100 assert_equals(xhr.response, null, 'xhr.response after abort(
) call'); |
| 104 | 101 |
| 105 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_REC
EIVED, xhr.LOADING, xhr.DONE]); | 102 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_REC
EIVED, xhr.LOADING, xhr.DONE]); |
| 106 return stream.closed; | 103 return stream.getReader().closed; |
| 107 }).then(function() { | 104 }).then(function() { |
| 108 testInDoneState.done(); | 105 testInDoneState.done(); |
| 109 }).catch(testInDoneState.step_func(function(e) { | 106 }).catch(testInDoneState.step_func(function(e) { |
| 110 assert_unreached(e); | 107 assert_unreached(e); |
| 111 })); | 108 })); |
| 112 } | 109 } |
| 113 return; | 110 return; |
| 114 | 111 |
| 115 case xhr.DONE: | 112 case xhr.DONE: |
| 116 return; | 113 return; |
| 117 | 114 |
| 118 default: | 115 default: |
| 119 assert_unreached('Unexpected readyState: ' + xhr.readyState); | 116 assert_unreached('Unexpected readyState: ' + xhr.readyState); |
| 120 return; | 117 return; |
| 121 } | 118 } |
| 122 }); | 119 }); |
| 123 | 120 |
| 124 xhr.open('GET', '/resources/test.ogv', true); | 121 xhr.open('GET', '/resources/test.ogv', true); |
| 125 xhr.send(); | 122 xhr.send(); |
| 126 }); | 123 }); |
| 127 | 124 |
| 128 if (global.importScripts) { | 125 if (global.importScripts) { |
| 129 // Worker case | 126 // Worker case |
| 130 done(); | 127 done(); |
| 131 } | 128 } |
| OLD | NEW |