| 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;
|
|
|