1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/debugger/test/browser_dbg_break-on-dom-08.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,57 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +/** 1.8 + * Tests that breaking on an event selects the variables view tab. 1.9 + */ 1.10 + 1.11 +const TAB_URL = EXAMPLE_URL + "doc_event-listeners-02.html"; 1.12 + 1.13 +function test() { 1.14 + initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => { 1.15 + let gDebugger = aPanel.panelWin; 1.16 + let gView = gDebugger.DebuggerView; 1.17 + let gEvents = gView.EventListeners; 1.18 + 1.19 + Task.spawn(function() { 1.20 + yield waitForSourceShown(aPanel, ".html"); 1.21 + aDebuggee.addBodyClickEventListener(); 1.22 + 1.23 + let fetched = waitForDebuggerEvents(aPanel, gDebugger.EVENTS.EVENT_LISTENERS_FETCHED); 1.24 + gView.toggleInstrumentsPane({ visible: true, animated: false }, 1); 1.25 + yield fetched; 1.26 + yield ensureThreadClientState(aPanel, "resumed"); 1.27 + 1.28 + is(gView.instrumentsPaneHidden, false, 1.29 + "The instruments pane should be visible."); 1.30 + is(gView.instrumentsPaneTab, "events-tab", 1.31 + "The events tab should be selected."); 1.32 + 1.33 + let updated = waitForDebuggerEvents(aPanel, gDebugger.EVENTS.EVENT_BREAKPOINTS_UPDATED); 1.34 + EventUtils.sendMouseEvent({ type: "click" }, getItemCheckboxNode(1), gDebugger); 1.35 + yield updated; 1.36 + yield ensureThreadClientState(aPanel, "resumed"); 1.37 + 1.38 + let paused = waitForCaretAndScopes(aPanel, 48); 1.39 + // Spin the event loop before causing the debuggee to pause, to allow 1.40 + // this function to yield first. 1.41 + executeSoon(() => { 1.42 + EventUtils.sendMouseEvent({ type: "click" }, aDebuggee.document.body, aDebuggee); 1.43 + }); 1.44 + yield paused; 1.45 + yield ensureThreadClientState(aPanel, "paused"); 1.46 + 1.47 + is(gView.instrumentsPaneHidden, false, 1.48 + "The instruments pane should be visible."); 1.49 + is(gView.instrumentsPaneTab, "variables-tab", 1.50 + "The variables tab should be selected."); 1.51 + 1.52 + yield resumeDebuggerThenCloseAndFinish(aPanel); 1.53 + }); 1.54 + 1.55 + function getItemCheckboxNode(index) { 1.56 + return gEvents.items[index].target.parentNode 1.57 + .querySelector(".side-menu-widget-item-checkbox"); 1.58 + } 1.59 + }); 1.60 +}