diff -r 000000000000 -r 6474c204b198 browser/devtools/netmonitor/test/browser_net_persistent_logs.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/devtools/netmonitor/test/browser_net_persistent_logs.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,53 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests if the network monitor leaks on initialization and sudden destruction. + * You can also use this initialization format as a template for other tests. + */ + +function test() { + let monitor, reqMenu; + initNetMonitor(SINGLE_GET_URL).then(([aTab, aDebuggee, aMonitor]) => { + info("Starting test... "); + + monitor = aMonitor; + let { document, NetMonitorView, NetMonitorController } = aMonitor.panelWin; + let { RequestsMenu, NetworkDetails } = NetMonitorView; + reqMenu = RequestsMenu; + + Services.prefs.setBoolPref("devtools.webconsole.persistlog", false); + content.location.reload(true); + }) + .then(() => { + return waitForNetworkEvents(monitor, 2); + }) + .then(() => { + is(reqMenu.itemCount, 2, + "The request menu should have two items at this point."); + }) + .then(() => { + content.location.reload(true); + return waitForNetworkEvents(monitor, 2); + }) + .then(() => { + // Since the reload clears the log, we still expect two requests in the log + is(reqMenu.itemCount, 2, + "The request menu should still have two items at this point."); + }) + .then(() => { + // Now we toggle the persistence logs on + Services.prefs.setBoolPref("devtools.webconsole.persistlog", true); + content.location.reload(true); + return waitForNetworkEvents(monitor, 2); + }) + .then(() => { + // Since we togged the persistence logs, we expect four items after the reload + is(reqMenu.itemCount, 4, + "The request menu should now have four items at this point."); + }) + .then(() => { + Services.prefs.setBoolPref("devtools.webconsole.persistlog", false); + return teardown(monitor).then(finish); + }); +}