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

Side by Side Diff: LayoutTests/http/tests/fetch/script-tests/fetch.js

Issue 1280733002: [3/3 blink] Support redirect option of Request and "opaqueredirect" response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@Redirect1
Patch Set: update fetch-request-redirect.html Created 5 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 if (self.importScripts) { 1 if (self.importScripts) {
2 importScripts('../resources/fetch-test-helpers.js'); 2 importScripts('../resources/fetch-test-helpers.js');
3 } 3 }
4 4
5 sequential_promise_test(function(t) { 5 sequential_promise_test(function(t) {
6 return fetch('http://') 6 return fetch('http://')
7 .then( 7 .then(
8 t.unreached_func('fetch of invalid URL must fail'), 8 t.unreached_func('fetch of invalid URL must fail'),
9 function() {}); 9 function() {});
10 }, 'Fetch invalid URL'); 10 }, 'Fetch invalid URL');
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 var redirect_target_url = 75 var redirect_target_url =
76 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; 76 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200';
77 var redirect_original_url = 77 var redirect_original_url =
78 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + 78 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' +
79 redirect_target_url; 79 redirect_target_url;
80 80
81 var request = new Request(redirect_original_url); 81 var request = new Request(redirect_original_url);
82 assert_equals(request.url, redirect_original_url, 82 assert_equals(request.url, redirect_original_url,
83 'Request\'s url is the original URL'); 83 'Request\'s url is the original URL');
84 assert_equals(request.context, ''); 84 assert_equals(request.context, '');
85 assert_equals(request.redirect, 'follow');
85 86
86 return fetch(request) 87 return fetch(request)
87 .then(function(response) { 88 .then(function(response) {
88 assert_equals(response.status, 200); 89 assert_equals(response.status, 200);
89 assert_equals(response.statusText, 'OK'); 90 assert_equals(response.statusText, 'OK');
90 assert_equals(response.url, redirect_target_url, 91 assert_equals(response.url, redirect_target_url,
91 'Response\'s url is locationURL'); 92 'Response\'s url is locationURL');
92 assert_equals(request.url, redirect_original_url, 93 assert_equals(request.url, redirect_original_url,
93 'Request\'s url remains the original URL'); 94 'Request\'s url remains the original URL');
94 assert_equals(request.context, ''); 95 assert_equals(request.context, '');
95 }); 96 });
96 }, 'Request/response url attribute getter with redirect'); 97 }, 'Request/response url attribute getter with redirect');
97 98
99 sequential_promise_test(function(t) {
100 var redirect_target_url =
101 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200';
102 var redirect_original_url =
103 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' +
104 redirect_target_url;
105
106 var request = new Request(redirect_original_url, {redirect: 'manual'});
107 assert_equals(request.url, redirect_original_url,
108 'Request\'s url is the original URL');
109 assert_equals(request.context, '');
110 assert_equals(request.redirect, 'manual');
111
112 return fetch(request)
113 .then(function(response) {
114 assert_equals(response.status, 0);
115 assert_equals(response.type, 'opaqueredirect');
116 assert_equals(response.url, '');
117 });
118 }, 'Manual redirect fetch returns opaque redirect response');
119
120 sequential_promise_test(function(t) {
121 var redirect_target_url =
122 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200';
123 var redirect_original_url =
124 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' +
125 redirect_target_url;
126
127 var request = new Request(redirect_original_url, {redirect: 'error'});
128 assert_equals(request.url, redirect_original_url,
129 'Request\'s url is the original URL');
130 assert_equals(request.context, '');
131 assert_equals(request.redirect, 'error');
132
133 return fetch(request)
134 .then(
135 t.unreached_func('Redirect response must cause an error when redirct' +
136 ' mode is error.'),
137 function() {});
138 }, 'Redirect response must cause an error when redirct mode is error.');
139
140 sequential_promise_test(function(test) {
141 var url = BASE_ORIGIN + '/fetch/resources/doctype.html';
142 return fetch(new Request(url, {redirect: 'manual'}))
143 .then(function(response) {
144 assert_equals(response.status, 200);
145 assert_equals(response.statusText, 'OK');
146 assert_equals(response.url, url);
147 return response.text();
148 })
149 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); })
150 }, 'No redirect fetch completes normally even if redirect mode is manual');
falken 2015/08/13 06:42:30 This was hard to parse. Maybe "No-redirect fetch c
horo 2015/08/13 10:46:36 Done.
151
152 sequential_promise_test(function(test) {
153 var url = BASE_ORIGIN + '/fetch/resources/doctype.html';
154 return fetch(new Request(url, {redirect: 'error'}))
155 .then(function(response) {
156 assert_equals(response.status, 200);
157 assert_equals(response.statusText, 'OK');
158 assert_equals(response.url, url);
159 return response.text();
160 })
161 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); })
162 }, 'No redirect fetch completes normally even if redirect mode is error');
falken 2015/08/13 06:42:30 same here
horo 2015/08/13 10:46:36 Done.
163
98 function evalJsonp(text) { 164 function evalJsonp(text) {
99 return new Promise(function(resolve) { 165 return new Promise(function(resolve) {
100 var report = resolve; 166 var report = resolve;
101 // text must contain report() call. 167 // text must contain report() call.
102 eval(text); 168 eval(text);
103 }); 169 });
104 } 170 }
105 171
106 sequential_promise_test(function(t) { 172 sequential_promise_test(function(t) {
107 var request = 173 var request =
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 function runInfiniteFetchLoop() { 274 function runInfiniteFetchLoop() {
209 fetch('dummy.html') 275 fetch('dummy.html')
210 .then(function() { runInfiniteFetchLoop(); }); 276 .then(function() { runInfiniteFetchLoop(); });
211 } 277 }
212 runInfiniteFetchLoop(); 278 runInfiniteFetchLoop();
213 }, 279 },
214 'Destroying the execution context while fetch is happening should not ' + 280 'Destroying the execution context while fetch is happening should not ' +
215 'cause a crash.'); 281 'cause a crash.');
216 282
217 done(); 283 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698