diff options
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_jsterm_content_defined_helpers.js')
-rw-r--r-- | devtools/client/webconsole/test/browser/browser_jsterm_content_defined_helpers.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_jsterm_content_defined_helpers.js b/devtools/client/webconsole/test/browser/browser_jsterm_content_defined_helpers.js new file mode 100644 index 0000000000..b4c4504c84 --- /dev/null +++ b/devtools/client/webconsole/test/browser/browser_jsterm_content_defined_helpers.js @@ -0,0 +1,58 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that using helper functions in jsterm call the global content functions +// if they are defined. + +const PREFIX = "content-"; +const HELPERS = [ + "$_", + "$", + "$$", + "$0", + "$x", + "clear", + "clearHistory", + "copy", + "help", + "inspect", + "keys", + "screenshot", + "values", +]; + +// The page script sets a global function for each known helper (except print). +const TEST_URI = `data:text/html,<!DOCTYPE html><meta charset=utf8> + <script> + const helpers = ${JSON.stringify(HELPERS)}; + for (const helper of helpers) { + window[helper] = () => "${PREFIX}" + helper; + } + </script>`; + +add_task(async function () { + const hud = await openNewTabAndConsole(TEST_URI); + const { jsterm } = hud; + const { autocompletePopup } = jsterm; + + for (const helper of HELPERS) { + await setInputValueForAutocompletion(hud, helper); + const autocompleteItems = getAutocompletePopupLabels( + autocompletePopup + ).filter(l => l === helper); + is( + autocompleteItems.length, + 1, + `There's no duplicated "${helper}" item in the autocomplete popup` + ); + + await executeAndWaitForResultMessage( + hud, + `${helper}()`, + `"${PREFIX + helper}"` + ); + ok(true, `output is correct for ${helper}()`); + } +}); |