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 |