| // META: global=window,worker |
| // META: title=Response init: simple cases |
| |
| var defaultValues = { "type" : "default", |
| "url" : "", |
| "ok" : true, |
| "status" : 200, |
| "statusText" : "", |
| "body" : null |
| }; |
| |
| var statusCodes = { "givenValues" : [200, 300, 400, 500, 599], |
| "expectedValues" : [200, 300, 400, 500, 599] |
| }; |
| var statusTexts = { "givenValues" : ["", "OK", "with space", String.fromCharCode(0x80)], |
| "expectedValues" : ["", "OK", "with space", String.fromCharCode(0x80)] |
| }; |
| var initValuesDict = { "status" : statusCodes, |
| "statusText" : statusTexts |
| }; |
| |
| function isOkStatus(status) { |
| return 200 <= status && 299 >= status; |
| } |
| |
| var response = new Response(); |
| for (var attributeName in defaultValues) { |
| test(function() { |
| var expectedValue = defaultValues[attributeName]; |
| assert_equals(response[attributeName], expectedValue, |
| "Expect default response." + attributeName + " is " + expectedValue); |
| }, "Check default value for " + attributeName + " attribute"); |
| } |
| |
| for (var attributeName in initValuesDict) { |
| test(function() { |
| var valuesToTest = initValuesDict[attributeName]; |
| for (var valueIdx in valuesToTest["givenValues"]) { |
| var givenValue = valuesToTest["givenValues"][valueIdx]; |
| var expectedValue = valuesToTest["expectedValues"][valueIdx]; |
| var responseInit = {}; |
| responseInit[attributeName] = givenValue; |
| var response = new Response("", responseInit); |
| assert_equals(response[attributeName], expectedValue, |
| "Expect response." + attributeName + " is " + expectedValue + |
| " when initialized with " + givenValue); |
| assert_equals(response.ok, isOkStatus(response.status), |
| "Expect response.ok is " + isOkStatus(response.status)); |
| } |
| }, "Check " + attributeName + " init values and associated getter"); |
| } |
| |
| test(function() { |
| const response1 = new Response(""); |
| assert_equals(response1.headers, response1.headers); |
| |
| const response2 = new Response("", {"headers": {"X-Foo": "bar"}}); |
| assert_equals(response2.headers, response2.headers); |
| const headers = response2.headers; |
| response2.headers.set("X-Foo", "quux"); |
| assert_equals(headers, response2.headers); |
| headers.set("X-Other-Header", "baz"); |
| assert_equals(headers, response2.headers); |
| }, "Test that Response.headers has the [SameObject] extended attribute"); |