michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: /** michael@0: * Bug 731394: Test the debugger source editor default context menu. michael@0: */ michael@0: michael@0: const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html"; michael@0: michael@0: function test() { michael@0: let gTab, gDebuggee, gPanel, gDebugger; michael@0: let gEditor, gSources, gContextMenu; michael@0: michael@0: initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => { michael@0: gTab = aTab; michael@0: gDebuggee = aDebuggee; michael@0: gPanel = aPanel; michael@0: gDebugger = gPanel.panelWin; michael@0: gEditor = gDebugger.DebuggerView.editor; michael@0: gSources = gDebugger.DebuggerView.Sources; michael@0: gContextMenu = gDebugger.document.getElementById("sourceEditorContextMenu"); michael@0: michael@0: waitForSourceAndCaretAndScopes(gPanel, "-02.js", 1).then(performTest).then(null, info); michael@0: gDebuggee.firstCall(); michael@0: }); michael@0: michael@0: function performTest() { michael@0: is(gDebugger.gThreadClient.state, "paused", michael@0: "Should only be getting stack frames while paused."); michael@0: is(gSources.itemCount, 2, michael@0: "Found the expected number of sources."); michael@0: is(gEditor.getText().indexOf("debugger"), 172, michael@0: "The correct source was loaded initially."); michael@0: is(gSources.selectedValue, gSources.values[1], michael@0: "The correct source is selected."); michael@0: michael@0: is(gEditor.getText().indexOf("\u263a"), 162, michael@0: "Unicode characters are converted correctly."); michael@0: michael@0: ok(gContextMenu, michael@0: "The source editor's context menupopup is available."); michael@0: ok(gEditor.getOption("readOnly"), michael@0: "The source editor is read only."); michael@0: michael@0: gEditor.focus(); michael@0: gEditor.setSelection({ line: 1, ch: 0 }, { line: 1, ch: 10 }); michael@0: michael@0: once(gContextMenu, "popupshown").then(testContextMenu).then(null, info); michael@0: gContextMenu.openPopup(gEditor.container, "overlap", 0, 0, true, false); michael@0: } michael@0: michael@0: function testContextMenu() { michael@0: let document = gDebugger.document; michael@0: michael@0: ok(document.getElementById("editMenuCommands"), michael@0: "#editMenuCommands found."); michael@0: ok(!document.getElementById("editMenuKeys"), michael@0: "#editMenuKeys not found."); michael@0: michael@0: gContextMenu.hidePopup(); michael@0: resumeDebuggerThenCloseAndFinish(gPanel); michael@0: } michael@0: }