diff options
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js')
-rw-r--r-- | devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js b/devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js new file mode 100644 index 0000000000..31b64c2fdc --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js @@ -0,0 +1,80 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests that large files are treated differently in the debugger: + * 1) No parsing to determine current symbol is attempted when + * starting a search + */ + +const TAB_URL = EXAMPLE_URL + "doc_function-search.html"; + +function test() { + let options = { + source: EXAMPLE_URL + "code_function-search-01.js", + line: 1 + }; + initDebugger(TAB_URL, options).then(([aTab, aDebuggee, aPanel]) => { + const gTab = aTab; + const gDebuggee = aDebuggee; + const gPanel = aPanel; + const gDebugger = gPanel.panelWin; + + const gEditor = gDebugger.DebuggerView.editor; + const gSources = gDebugger.DebuggerView.Sources; + const Filtering = gDebugger.DebuggerView.Filtering; + + // Setting max size so that code_function-search-01.js will be + // considered a large file on first load + gDebugger.DebuggerView.LARGE_FILE_SIZE = 1; + + function testLargeFile() { + ok(gEditor.getText().length > gDebugger.DebuggerView.LARGE_FILE_SIZE, + "First source is considered a large file."); + is(gEditor.getMode().name, "javascript", + "Editor is syntax highlighting."); + ok(gEditor.getText().includes("First source!"), + "Editor text contents appears to be correct."); + + // Press ctrl+f with the cursor in a token + gEditor.focus(); + gEditor.setCursor({ line: 3, ch: 10}); + synthesizeKeyFromKeyTag(gDebugger.document.getElementById("tokenSearchKey")); + is(Filtering._searchbox.value, "#", + "Search box is NOT prefilled with current token"); + } + + function testSmallFile() { + ok(gEditor.getText().length < gDebugger.DebuggerView.LARGE_FILE_SIZE, + "Second source is considered a small file."); + is(gEditor.getMode().name, "javascript", + "Editor is syntax highlighting."); + ok(gEditor.getText().includes("First source!"), + "Editor text contents appears to be correct."); + + // Press ctrl+f with the cursor in a token + gEditor.focus(); + gEditor.setCursor({ line: 3, ch: 10}); + synthesizeKeyFromKeyTag(gDebugger.document.getElementById("tokenSearchKey")); + is(Filtering._searchbox.value, "#test", + "Search box is prefilled with current token"); + } + + Task.spawn(function* () { + yield testLargeFile(); + + info("Making it appear as a small file and then reselecting 01.js"); + gDebugger.DebuggerView.LARGE_FILE_SIZE = 1000; + gSources.selectedIndex = 1; + yield waitForSourceShown(gPanel, "-02.js"); + gSources.selectedIndex = 0; + yield waitForSourceShown(gPanel, "-01.js"); + + yield testSmallFile(); + + closeDebuggerAndFinish(gPanel); + }); + }); +} |