browser/devtools/debugger/test/browser_dbg_breakpoints-actual-location2.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /**
     5  * Bug 1008372: Setting a breakpoint in a line without code should move
     6  * the icon to the actual location, and if a breakpoint already exists
     7  * on the new location don't duplicate
     8  */
    10 const TAB_URL = EXAMPLE_URL + "doc_breakpoint-move.html";
    12 function test() {
    13   let gTab, gDebuggee, gPanel, gDebugger;
    14   let gEditor, gSources, gBreakpoints, gBreakpointsAdded, gBreakpointsRemoving;
    16   initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
    17     gTab = aTab;
    18     gDebuggee = aDebuggee;
    19     gPanel = aPanel;
    20     gDebugger = gPanel.panelWin;
    21     gEditor = gDebugger.DebuggerView.editor;
    22     gSources = gDebugger.DebuggerView.Sources;
    23     gBreakpoints = gDebugger.DebuggerController.Breakpoints;
    24     gBreakpointsAdded = gBreakpoints._added;
    25     gBreakpointsRemoving = gBreakpoints._removing;
    27     waitForSourceAndCaretAndScopes(gPanel, ".html", 1).then(performTest);
    28     gDebuggee.ermahgerd();
    29   });
    31   function performTest() {
    32     is(gBreakpointsAdded.size, 0,
    33       "No breakpoints currently added.");
    34     is(gBreakpointsRemoving.size, 0,
    35       "No breakpoints currently being removed.");
    36     is(gEditor.getBreakpoints().length, 0,
    37       "No breakpoints currently shown in the editor.");
    39     Task.spawn(function*() {
    40       let bpClient = yield gPanel.addBreakpoint({
    41         url: gSources.selectedValue,
    42         line: 19
    43       });
    44       yield gPanel.addBreakpoint({
    45         url: gSources.selectedValue,
    46         line: 20
    47       });
    49       let movedBpClient = yield gPanel.addBreakpoint({
    50         url: gSources.selectedValue,
    51         line: 17
    52       });
    53       testMovedLocation(movedBpClient);
    55       yield resumeAndTestBreakpoint(19);
    57       yield gPanel.removeBreakpoint({
    58         url: gSources.selectedValue,
    59         line: 19
    60       });
    62       yield resumeAndTestBreakpoint(20);
    63       yield doResume(gPanel);
    65       executeSoon(() => gDebuggee.ermahgerd());
    66       yield waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES);
    68       yield resumeAndTestBreakpoint(20);
    69       resumeDebuggerThenCloseAndFinish(gPanel);
    70     });
    71   }
    73   function resumeAndTestBreakpoint(line) {
    74     return Task.spawn(function*() {
    75       let event = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES);
    76       doResume(gPanel);
    77       yield event;
    78       testBreakpoint(line);
    79     });
    80   };
    82   function testBreakpoint(line) {
    83     let selectedBreakpoint = gSources._selectedBreakpointItem;
    84     ok(selectedBreakpoint,
    85        "There should be a selected breakpoint on line " + line);
    86     is(selectedBreakpoint.attachment.line, line,
    87        "The breakpoint on line " + line + " was not hit");
    88   }
    90   function testMovedLocation(breakpointClient) {
    91     ok(breakpointClient,
    92       "Breakpoint added, client received.");
    93     is(breakpointClient.location.url, gSources.selectedValue,
    94       "Breakpoint client url is the same.");
    95     is(breakpointClient.location.line, 19,
    96       "Breakpoint client line is new.");
    98     is(breakpointClient.requestedLocation.url, gSources.selectedValue,
    99       "Requested location url is correct");
   100     is(breakpointClient.requestedLocation.line, 17,
   101       "Requested location line is correct");
   102   }
   103 }

mercurial