Files
palemoon27/browser/devtools/profiler/test/browser_profiler_shared-connection-02.js
T
2018-07-24 23:29:57 +08:00

50 lines
1.8 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests if the shared profiler connection is only opened once.
*/
let gProfilerConnectionsOpened = 0;
Services.obs.addObserver(profilerConnectionObserver, "profiler-connection-opened", false);
let test = Task.async(function*() {
let [target, debuggee, panel] = yield initFrontend(SIMPLE_URL);
is(gProfilerConnectionsOpened, 1,
"Only one profiler connection was opened.");
let SharedProfilerUtils = devtools.require("devtools/profiler/shared");
let sharedProfilerConnection = SharedProfilerUtils.getProfilerConnection(panel._toolbox);
ok(sharedProfilerConnection,
"A shared profiler connection for the current toolbox was retrieved.");
is(sharedProfilerConnection._request, panel.panelWin.gFront._request,
"The same shared profiler connection is used by the panel's front.");
ok(sharedProfilerConnection._target,
"A target exists for the current profiler connection.");
ok(sharedProfilerConnection._client,
"A target exists for the current profiler connection.");
is(sharedProfilerConnection._pendingConsoleRecordings.length, 0,
"There shouldn't be any pending console recordings yet.");
is(sharedProfilerConnection._finishedConsoleRecordings.length, 0,
"There shouldn't be any finished console recordings yet.");
yield sharedProfilerConnection.open();
is(gProfilerConnectionsOpened, 1,
"No additional profiler connections were opened.");
yield teardown(panel);
finish();
});
function profilerConnectionObserver(subject, topic, data) {
is(topic, "profiler-connection-opened", "The correct topic was observed.");
gProfilerConnectionsOpened++;
}
registerCleanupFunction(() => {
Services.obs.removeObserver(profilerConnectionObserver, "profiler-connection-opened");
});