diff options
author | Matt A. Tobin <email@mattatobin.com> | 2016-10-16 19:34:53 -0400 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2016-10-16 19:34:53 -0400 |
commit | 81805ce3f63e2e4a799bd54f174083c58a9b5640 (patch) | |
tree | 6e13374b213ac9b2ae74c25d8aac875faf71fdd0 /toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js | |
parent | 28c8da71bf521bb3ee76f27b8a241919e24b7cd5 (diff) | |
download | palemoon-gre-81805ce3f63e2e4a799bd54f174083c58a9b5640.tar.gz |
Move Mozilla DevTools to Platform - Part 3: Merge the browser/devtools and toolkit/devtools adjusting for directory collisions
Diffstat (limited to 'toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js')
-rw-r--r-- | toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js b/toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js new file mode 100644 index 000000000..e44335792 --- /dev/null +++ b/toolkit/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js @@ -0,0 +1,102 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Bug 1008372: Setting a breakpoint in a line without code should move + * the icon to the actual location, and if a breakpoint already exists + * on the new location don't duplicate + */ + +const TAB_URL = EXAMPLE_URL + "doc_breakpoint-move.html"; + +function test() { + let gTab, gPanel, gDebugger; + let gEditor, gSources, gBreakpoints, gBreakpointsAdded, gBreakpointsRemoving; + + initDebugger(TAB_URL).then(([aTab,, aPanel]) => { + gTab = aTab; + gPanel = aPanel; + gDebugger = gPanel.panelWin; + gEditor = gDebugger.DebuggerView.editor; + gSources = gDebugger.DebuggerView.Sources; + gBreakpoints = gDebugger.DebuggerController.Breakpoints; + gBreakpointsAdded = gBreakpoints._added; + gBreakpointsRemoving = gBreakpoints._removing; + + waitForSourceAndCaretAndScopes(gPanel, ".html", 1).then(performTest); + callInTab(gTab, "ermahgerd"); + }); + + function performTest() { + is(gBreakpointsAdded.size, 0, + "No breakpoints currently added."); + is(gBreakpointsRemoving.size, 0, + "No breakpoints currently being removed."); + is(gEditor.getBreakpoints().length, 0, + "No breakpoints currently shown in the editor."); + + Task.spawn(function*() { + let bpClient = yield gPanel.addBreakpoint({ + actor: gSources.selectedValue, + line: 19 + }); + yield gPanel.addBreakpoint({ + actor: gSources.selectedValue, + line: 20 + }); + + let movedBpClient = yield gPanel.addBreakpoint({ + actor: gSources.selectedValue, + line: 17 + }); + testMovedLocation(movedBpClient); + + yield resumeAndTestBreakpoint(19); + + yield gPanel.removeBreakpoint({ + actor: gSources.selectedValue, + line: 19 + }); + + yield resumeAndTestBreakpoint(20); + yield doResume(gPanel); + + callInTab(gTab, "ermahgerd"); + yield waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES); + + yield resumeAndTestBreakpoint(20); + resumeDebuggerThenCloseAndFinish(gPanel); + }); + } + + function resumeAndTestBreakpoint(line) { + return Task.spawn(function*() { + let event = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES); + doResume(gPanel); + yield event; + testBreakpoint(line); + }); + }; + + function testBreakpoint(line) { + let selectedBreakpoint = gSources._selectedBreakpointItem; + ok(selectedBreakpoint, + "There should be a selected breakpoint on line " + line); + is(selectedBreakpoint.attachment.line, line, + "The breakpoint on line " + line + " was not hit"); + } + + function testMovedLocation(breakpointClient) { + ok(breakpointClient, + "Breakpoint added, client received."); + is(breakpointClient.location.actor, gSources.selectedValue, + "Breakpoint client url is the same."); + is(breakpointClient.location.line, 19, + "Breakpoint client line is new."); + + is(breakpointClient.requestedLocation.actor, gSources.selectedValue, + "Requested location url is correct"); + is(breakpointClient.requestedLocation.line, 17, + "Requested location line is correct"); + } +} |