diff options
Diffstat (limited to 'devtools/client/framework/test/browser_source_map-reload.js')
-rw-r--r-- | devtools/client/framework/test/browser_source_map-reload.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_source_map-reload.js b/devtools/client/framework/test/browser_source_map-reload.js new file mode 100644 index 0000000000..f952944e21 --- /dev/null +++ b/devtools/client/framework/test/browser_source_map-reload.js @@ -0,0 +1,52 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Test that reloading re-reads the source maps. + +"use strict"; + +const INITIAL_URL = URL_ROOT_SSL + "doc_empty-tab-01.html"; +const PAGE_URL = URL_ROOT_SSL + "doc_reload.html"; +const JS_URL = URL_ROOT_SSL + "sjs_code_reload.sjs"; + +const ORIGINAL_URL_1 = "webpack:///code_reload_1.js"; +const ORIGINAL_URL_2 = "webpack:///code_reload_2.js"; + +const GENERATED_LINE = 86; +const ORIGINAL_LINE = 13; + +add_task(async function() { + // Start with the empty page, then navigate, so that we can properly + // listen for new sources arriving. + const toolbox = await openNewTabAndToolbox(INITIAL_URL, "webconsole"); + const service = toolbox.sourceMapURLService; + + let sourceSeen = waitForSourceLoad(toolbox, JS_URL); + await navigateTo(PAGE_URL); + await sourceSeen; + + info(`checking original location for ${JS_URL}:${GENERATED_LINE}`); + let newLoc = await new Promise(r => + service.subscribeByURL(JS_URL, GENERATED_LINE, undefined, r) + ); + is(newLoc.url, ORIGINAL_URL_1, "check mapped URL"); + is(newLoc.line, ORIGINAL_LINE, "check mapped line number"); + + // Reload the page. The sjs ensures that a different source file + // will be loaded. + sourceSeen = waitForSourceLoad(toolbox, JS_URL); + await reloadBrowser(); + await sourceSeen; + + info( + `checking post-reload original location for ${JS_URL}:${GENERATED_LINE}` + ); + newLoc = await new Promise(r => + service.subscribeByURL(JS_URL, GENERATED_LINE, undefined, r) + ); + is(newLoc.url, ORIGINAL_URL_2, "check post-reload mapped URL"); + is(newLoc.line, ORIGINAL_LINE, "check post-reload mapped line number"); + + await toolbox.destroy(); + gBrowser.removeCurrentTab(); +}); |