diff options
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_persistent_logs.js')
-rw-r--r-- | devtools/client/netmonitor/test/browser_net_persistent_logs.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_persistent_logs.js b/devtools/client/netmonitor/test/browser_net_persistent_logs.js new file mode 100644 index 000000000..ac2371e1f --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_persistent_logs.js @@ -0,0 +1,51 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests if the network monitor leaks on initialization and sudden destruction. + * You can also use this initialization format as a template for other tests. + */ + +add_task(function* () { + let { tab, monitor } = yield initNetMonitor(SINGLE_GET_URL); + info("Starting test... "); + + let { NetMonitorView } = monitor.panelWin; + let { RequestsMenu } = NetMonitorView; + + Services.prefs.setBoolPref("devtools.webconsole.persistlog", false); + + yield reloadAndWait(); + + is(RequestsMenu.itemCount, 2, + "The request menu should have two items at this point."); + + yield reloadAndWait(); + + // Since the reload clears the log, we still expect two requests in the log + is(RequestsMenu.itemCount, 2, + "The request menu should still have two items at this point."); + + // Now we toggle the persistence logs on + Services.prefs.setBoolPref("devtools.webconsole.persistlog", true); + + yield reloadAndWait(); + + // Since we togged the persistence logs, we expect four items after the reload + is(RequestsMenu.itemCount, 4, + "The request menu should now have four items at this point."); + + Services.prefs.setBoolPref("devtools.webconsole.persistlog", false); + return teardown(monitor); + + /** + * Reload the page and wait for 2 GET requests. Race-free. + */ + function reloadAndWait() { + let wait = waitForNetworkEvents(monitor, 2); + tab.linkedBrowser.reload(); + return wait; + } +}); |