diff --git a/Libraries/LibWeb/Fetch/Response.cpp b/Libraries/LibWeb/Fetch/Response.cpp index 6eac1a90e280..51cb93470857 100644 --- a/Libraries/LibWeb/Fetch/Response.cpp +++ b/Libraries/LibWeb/Fetch/Response.cpp @@ -85,13 +85,13 @@ GC::Ref Response::create(JS::Realm& realm, GC::Ref= 0x21 && c <= 0x7E) || (c >= 0x80 && c <= 0xFF); }); } diff --git a/Tests/LibWeb/Text/expected/wpt-import/fetch/api/response/response-init-001.any.txt b/Tests/LibWeb/Text/expected/wpt-import/fetch/api/response/response-init-001.any.txt new file mode 100644 index 000000000000..2eee99c4ad4b --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/fetch/api/response/response-init-001.any.txt @@ -0,0 +1,14 @@ +Harness status: OK + +Found 9 tests + +9 Pass +Pass Check default value for type attribute +Pass Check default value for url attribute +Pass Check default value for ok attribute +Pass Check default value for status attribute +Pass Check default value for statusText attribute +Pass Check default value for body attribute +Pass Check status init values and associated getter +Pass Check statusText init values and associated getter +Pass Test that Response.headers has the [SameObject] extended attribute \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.html b/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.html new file mode 100644 index 000000000000..25792d989763 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.html @@ -0,0 +1,15 @@ + + +Response init: simple cases + + + + +
+ diff --git a/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.js b/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.js new file mode 100644 index 000000000000..559e49ad11ff --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/fetch/api/response/response-init-001.any.js @@ -0,0 +1,64 @@ +// 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");