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

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

Issue 455303002: Add 'stream' to XMLHttpRequest response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@stream-promise-property-reset
Patch Set: Created 6 years, 4 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 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <body> 3 <body>
4 <script src="../resources/testharness.js"></script> 4 <script src="../resources/testharness.js"></script>
5 <script src="../resources/testharnessreport.js"></script> 5 <script src="../resources/testharnessreport.js"></script>
6 <script type="text/javascript"> 6 <script type="text/javascript">
7 // FIXME: Check loading from Stream after abort once loading API is ready. 7 var testInLoadingState = async_test('Test aborting XMLHttpRequest with responseT ype set to "stream" in LOADING state.');
8 var testInLoadingState = async_test("Test aborting XMLHttpRequest with responseT ype set to 'stream' in LOADING state.");
9 8
10 testInLoadingState.step(function() 9 testInLoadingState.step(function()
11 { 10 {
12 var xhr = new XMLHttpRequest; 11 var xhr = new XMLHttpRequest;
13 12
14 xhr.responseType = "legacystream"; 13 xhr.responseType = 'stream';
15 14
16 var seenStates = []; 15 var seenStates = [];
17 16
18 xhr.onreadystatechange = testInLoadingState.step_func(function() { 17 xhr.onreadystatechange = testInLoadingState.step_func(function() {
19 // onreadystatechange can be invoked multiple times in LOADING state. 18 // onreadystatechange can be invoked multiple times in LOADING state.
20 if (seenStates.length == 0 || xhr.readyState != seenStates[seenStates.le ngth - 1]) 19 if (seenStates.length == 0 || xhr.readyState != seenStates[seenStates.le ngth - 1])
21 seenStates.push(xhr.readyState); 20 seenStates.push(xhr.readyState);
22 21
23 switch (xhr.readyState) { 22 switch (xhr.readyState) {
24 case xhr.UNSENT: 23 case xhr.UNSENT:
25 assert_unreached('Unexpected readyState: UNSENT'); 24 assert_unreached('Unexpected readyState: UNSENT');
26 return; 25 return;
27 26
28 case xhr.OPENED: 27 case xhr.OPENED:
29 case xhr.HEADERS_RECEIVED: 28 case xhr.HEADERS_RECEIVED:
30 return; 29 return;
31 30
32 case xhr.LOADING: 31 case xhr.LOADING:
32 var stream = xhr.response;
33 assert_true(stream instanceof ReadableStream, 'xhr.response shoud be ReadableStream');
34 assert_equals(stream.state, 'readable', 'stream state before abort() call');
35 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x hr.LOADING]);
36
33 xhr.abort(); 37 xhr.abort();
34 38
35 assert_equals(xhr.readyState, xhr.DONE, "xhr.readyState after abort( ) call"); 39 assert_equals(stream.state, 'errored', 'stream state after abort() c all');
36 assert_equals(xhr.response, null, "xhr.response after abort() call") ; 40 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState after abor t() call');
37 return; 41 assert_equals(xhr.response, null, 'xhr.response after abort() call') ;
38
39 case xhr.DONE:
40 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x hr.LOADING, xhr.DONE]); 42 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x hr.LOADING, xhr.DONE]);
41 testInLoadingState.done(); 43 testInLoadingState.done();
42 return; 44 return;
43 45
46 case xhr.DONE:
47 return;
48
44 default: 49 default:
45 assert_unreached('Unexpected readyState: ' + xhr.readyState); 50 assert_unreached('Unexpected readyState: ' + xhr.readyState);
46 return; 51 return;
47 } 52 }
48 }); 53 });
49 54
50 xhr.open('GET', '../resources/test.ogv', true); 55 xhr.open('GET', '../resources/test.ogv', true);
51 xhr.send(); 56 xhr.send();
52 }); 57 });
53 58
54 var testInDoneState = async_test("Test aborting XMLHttpRequest with responseType set to 'stream' in DONE state."); 59 var testInDoneState = async_test('Test aborting XMLHttpRequest with responseType set to "stream" in DONE state.');
55 60
56 testInDoneState.step(function() 61 testInDoneState.step(function()
57 { 62 {
58 var xhr = new XMLHttpRequest; 63 var xhr = new XMLHttpRequest;
59 64
60 xhr.responseType = "legacystream"; 65 xhr.responseType = 'stream';
61 66
62 var seenStates = []; 67 var seenStates = [];
63 68
64 xhr.onreadystatechange = testInDoneState.step_func(function() { 69 xhr.onreadystatechange = testInDoneState.step_func(function() {
65 // onreadystatechange can be invoked multiple times in LOADING state. 70 // onreadystatechange can be invoked multiple times in LOADING state.
66 if (seenStates.length == 0 || xhr.readyState != seenStates[seenStates.le ngth - 1]) 71 if (seenStates.length == 0 || xhr.readyState != seenStates[seenStates.le ngth - 1])
67 seenStates.push(xhr.readyState); 72 seenStates.push(xhr.readyState);
68 73
69 switch (xhr.readyState) { 74 switch (xhr.readyState) {
70 case xhr.UNSENT: 75 case xhr.UNSENT:
71 case xhr.OPENED: 76 case xhr.OPENED:
72 case xhr.HEADERS_RECEIVED: 77 case xhr.HEADERS_RECEIVED:
73 case xhr.LOADING: 78 case xhr.LOADING:
74 return; 79 return;
75 80
76 case xhr.DONE: 81 case xhr.DONE:
77 assert_equals(xhr.status, 200, "xhr.status"); 82 var stream = xhr.response;
78 assert_not_equals(xhr.response, null, "xhr.response during DONE"); 83 assert_true(stream instanceof ReadableStream, 'xhr.response shoud be ReadableStream');
84 assert_equals(stream.state, 'readable', 'stream state before abort() call');
85 assert_equals(xhr.status, 200, 'xhr.status');
86 assert_not_equals(xhr.response, null, 'xhr.response during DONE');
79 87
80 xhr.abort(); 88 xhr.abort();
81 89
82 assert_equals(xhr.readyState, xhr.UNSENT, "xhr.readyState after abor t() call"); 90 assert_equals(stream.state, 'errored', 'stream state after abort() c all');
83 assert_equals(xhr.response, null, "xhr.response after abort() call") ; 91 assert_equals(xhr.readyState, xhr.UNSENT, 'xhr.readyState after abor t() call');
92 assert_equals(xhr.response, null, 'xhr.response after abort() call') ;
84 93
85 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x hr.LOADING, xhr.DONE]); 94 assert_array_equals(seenStates, [xhr.OPENED, xhr.HEADERS_RECEIVED, x hr.LOADING, xhr.DONE]);
86 testInDoneState.done(); 95 testInDoneState.done();
87 return; 96 return;
88 97
89 default: 98 default:
90 assert_unreached('Unexpected readyState: ' + xhr.readyState); 99 assert_unreached('Unexpected readyState: ' + xhr.readyState);
91 return; 100 return;
92 } 101 }
93 }); 102 });
94 103
95 xhr.open('GET', '../resources/test.ogv', true); 104 xhr.open('GET', '../resources/test.ogv', true);
96 xhr.send(); 105 xhr.send();
97 }); 106 });
98 </script> 107 </script>
99 </body> 108 </body>
100 </html> 109 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698