// META: global=window,worker // META: title=Response: redirect static method var url = "http://test.url:1234/"; test(function() { const redirectResponse = Response.redirect(url); assert_equals(redirectResponse.type, "default"); assert_false(redirectResponse.redirected); assert_false(redirectResponse.ok); assert_equals(redirectResponse.status, 302, "Default redirect status is 302"); assert_equals(redirectResponse.headers.get("Location"), url, "redirected response has Location header with the correct url"); assert_equals(redirectResponse.statusText, ""); }, "Check default redirect response"); [301, 302, 303, 307, 308].forEach(function(status) { test(function() { const redirectResponse = Response.redirect(url, status); assert_equals(redirectResponse.type, "default"); assert_false(redirectResponse.redirected); assert_false(redirectResponse.ok); assert_equals(redirectResponse.status, status, "Redirect status is " + status); assert_equals(redirectResponse.headers.get("Location"), url); assert_equals(redirectResponse.statusText, ""); }, "Check response returned by static method redirect(), status = " + status); }); test(function() { var invalidUrl = "http://:This is not an url"; assert_throws_js(TypeError, function() { Response.redirect(invalidUrl); }, "Expect TypeError exception"); }, "Check error returned when giving invalid url to redirect()"); var invalidRedirectStatus = [200, 309, 400, 500]; invalidRedirectStatus.forEach(function(invalidStatus) { test(function() { assert_throws_js(RangeError, function() { Response.redirect(url, invalidStatus); }, "Expect RangeError exception"); }, "Check error returned when giving invalid status to redirect(), status = " + invalidStatus); });