diff options
Diffstat (limited to '')
-rw-r--r-- | netwerk/test/browser/browser_103_no_cancel_on_error.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/netwerk/test/browser/browser_103_no_cancel_on_error.js b/netwerk/test/browser/browser_103_no_cancel_on_error.js new file mode 100644 index 0000000000..2420441585 --- /dev/null +++ b/netwerk/test/browser/browser_103_no_cancel_on_error.js @@ -0,0 +1,67 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +Services.prefs.setBoolPref("network.early-hints.enabled", true); + +const { request_count_checking } = ChromeUtils.importESModule( + "resource://testing-common/early_hint_preload_test_helper.sys.mjs" +); + +// - httpCode is the response code we're testing for. This file mostly covers 400 and 500 responses +async function test_hint_completion_on_error(httpCode) { + // reset the count + let headers = new Headers(); + headers.append("X-Early-Hint-Count-Start", ""); + await fetch( + "https://example.com/browser/netwerk/test/browser/early_hint_pixel_count.sjs", + { headers } + ); + + let requestUrl = `https://example.com/browser/netwerk/test/browser/early_hint_asset_html.sjs?hinted=1&as=image&code=${httpCode}`; + + await BrowserTestUtils.withNewTab( + { + gBrowser, + url: requestUrl, + waitForLoad: true, + }, + async function () {} + ); + + let gotRequestCount = await fetch( + "https://example.com/browser/netwerk/test/browser/early_hint_pixel_count.sjs" + ).then(response => response.json()); + + await request_count_checking(`test_103_error_${httpCode}`, gotRequestCount, { + hinted: 1, + normal: 0, + }); +} + +// 400 Bad Request +add_task(async function test_complete_103_on_400() { + await test_hint_completion_on_error(400); +}); +add_task(async function test_complete_103_on_401() { + await test_hint_completion_on_error(401); +}); +add_task(async function test_complete_103_on_402() { + await test_hint_completion_on_error(402); +}); +add_task(async function test_complete_103_on_403() { + await test_hint_completion_on_error(403); +}); +add_task(async function test_complete_103_on_500() { + await test_hint_completion_on_error(500); +}); +add_task(async function test_complete_103_on_501() { + await test_hint_completion_on_error(501); +}); +add_task(async function test_complete_103_on_502() { + await test_hint_completion_on_error(502); +}); |