Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: LayoutTests/http/tests/xmlhttprequest/resources/response-stream-abort.js

Issue 1004623007: Streams Implementation Update: async read (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@stream-reader-read
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698