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

Unified 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: add comment 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/http/tests/fetch/script-tests/request.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/http/tests/fetch/script-tests/fetch.js
diff --git a/LayoutTests/http/tests/fetch/script-tests/fetch.js b/LayoutTests/http/tests/fetch/script-tests/fetch.js
index efd4100f1997ff5aa4000fc4f6645a13e4dc5fba..f2224aa54fb2c7adbc0e5f01cdffce29c56a3cfd 100644
--- a/LayoutTests/http/tests/fetch/script-tests/fetch.js
+++ b/LayoutTests/http/tests/fetch/script-tests/fetch.js
@@ -82,6 +82,7 @@ promise_test(function(t) {
assert_equals(request.url, redirect_original_url,
'Request\'s url is the original URL');
assert_equals(request.context, '');
+ assert_equals(request.redirect, 'follow');
return fetch(request)
.then(function(response) {
@@ -95,6 +96,71 @@ promise_test(function(t) {
});
}, 'Request/response url attribute getter with redirect');
+promise_test(function(t) {
+ var redirect_target_url =
+ BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200';
+ var redirect_original_url =
+ BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' +
+ redirect_target_url;
+
+ var request = new Request(redirect_original_url, {redirect: 'manual'});
+ assert_equals(request.url, redirect_original_url,
+ 'Request\'s url is the original URL');
+ assert_equals(request.context, '');
+ assert_equals(request.redirect, 'manual');
+
+ return fetch(request)
+ .then(function(response) {
+ assert_equals(response.status, 0);
+ assert_equals(response.type, 'opaqueredirect');
+ assert_equals(response.url, '');
+ });
+ }, 'Manual redirect fetch returns opaque redirect response');
+
+promise_test(function(t) {
+ var redirect_target_url =
+ BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200';
+ var redirect_original_url =
+ BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' +
+ redirect_target_url;
+
+ var request = new Request(redirect_original_url, {redirect: 'error'});
+ assert_equals(request.url, redirect_original_url,
+ 'Request\'s url is the original URL');
+ assert_equals(request.context, '');
+ assert_equals(request.redirect, 'error');
+
+ return fetch(request)
+ .then(
+ t.unreached_func('Redirect response must cause an error when redirct' +
+ ' mode is error.'),
+ function() {});
+ }, 'Redirect response must cause an error when redirct mode is error.');
+
+promise_test(function(test) {
+ var url = BASE_ORIGIN + '/fetch/resources/doctype.html';
+ return fetch(new Request(url, {redirect: 'manual'}))
+ .then(function(response) {
+ assert_equals(response.status, 200);
+ assert_equals(response.statusText, 'OK');
+ assert_equals(response.url, url);
+ return response.text();
+ })
+ .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); })
+ }, 'No-redirect fetch completes normally even if redirect mode is manual');
+
+promise_test(function(test) {
+ var url = BASE_ORIGIN + '/fetch/resources/doctype.html';
+ return fetch(new Request(url, {redirect: 'error'}))
+ .then(function(response) {
+ assert_equals(response.status, 200);
+ assert_equals(response.statusText, 'OK');
+ assert_equals(response.url, url);
+ return response.text();
+ })
+ .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); })
+ }, 'No-redirect fetch completes normally even if redirect mode is error');
+
function evalJsonp(text) {
return new Promise(function(resolve) {
var report = resolve;
« no previous file with comments | « no previous file | LayoutTests/http/tests/fetch/script-tests/request.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698