From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test/mochitest/browser_dbg-sourcemaps-bogus.js | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 devtools/client/debugger/test/mochitest/browser_dbg-sourcemaps-bogus.js (limited to 'devtools/client/debugger/test/mochitest/browser_dbg-sourcemaps-bogus.js') diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-sourcemaps-bogus.js b/devtools/client/debugger/test/mochitest/browser_dbg-sourcemaps-bogus.js new file mode 100644 index 0000000000..e9e3a3c7f2 --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg-sourcemaps-bogus.js @@ -0,0 +1,91 @@ +/* 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 . */ + +// Test that errors while loading sourcemap does not break debugging. + +"use strict"; + +requestLongerTimeout(2); + +add_task(async function () { + // NOTE: the CORS call makes the test run times inconsistent + + // - non-existant-map.js has a reference to source map file which doesn't exists. + // There is no particular warning and no original file is displayed, only the generated file. + // - map-with-failed-original-request.js has a reference to a valid source map file, + // but the map doesn't inline source content and refers to a URL which fails loading. + // (this file is based on dom-mutation.js and related map) + const dbg = await initDebugger( + "doc-sourcemap-bogus.html", + "non-existant-map.js", + "map-with-failed-original-request.js", + "map-with-failed-original-request.original.js", + "invalid-json-map.js" + ); + // Make sure there is only the expected sources and we miss some original sources. + is(dbg.selectors.getSourceCount(), 4, "Only 4 source exists"); + + await selectSource(dbg, "non-existant-map.js"); + is( + findFooterNotificationMessage(dbg), + "Source Map Error: request failed with status 404", + "There is a warning about the missing source map file" + ); + + // We should still be able to set breakpoints and pause in the + // generated source. + await addBreakpoint(dbg, "non-existant-map.js", 4); + invokeInTab("runCode"); + await waitForPaused(dbg); + assertPausedAtSourceAndLine( + dbg, + findSource(dbg, "non-existant-map.js").id, + 4 + ); + await resume(dbg); + + // Test a Source Map with invalid JSON + await selectSource(dbg, "invalid-json-map.js"); + is( + findFooterNotificationMessage(dbg), + "Source Map Error: JSON.parse: expected property name or '}' at line 2 column 3 of the JSON data", + "There is a warning about the missing source map file" + ); + + // Test a Source Map with missing original text content + await selectSource(dbg, "map-with-failed-original-request.js"); + ok( + !findElement(dbg, "editorNotificationFooter"), + "The source-map is valid enough to not spawn a warning message" + ); + await addBreakpoint(dbg, "map-with-failed-original-request.js", 7); + invokeInTab("changeStyleAttribute"); + await waitForPaused(dbg); + + // As the original file can't be loaded, the generated source is automatically selected + assertPausedAtSourceAndLine( + dbg, + findSource(dbg, "map-with-failed-original-request.js").id, + 7 + ); + + // The original file is visible in the source tree and can be selected, + // but its content can't be displayed + await selectSource(dbg, "map-with-failed-original-request.original.js"); + const notificationMessage = DEBUGGER_L10N.getFormatStr( + "editorNotificationFooter.noOriginalScopes", + DEBUGGER_L10N.getStr("scopes.showOriginalScopes") + ); + is( + findFooterNotificationMessage(dbg), + notificationMessage, + "There is no warning about source-map but rather one about original scopes" + ); + is( + getCM(dbg).getValue(), + `Error while fetching an original source: request failed with status 404\nSource URL: ${EXAMPLE_URL}map-with-failed-original-request.original.js` + ); + + await resume(dbg); +}); -- cgit v1.2.3