diff options
Diffstat (limited to 'browser/devtools/profiler/test/browser_profiler_console-record-04.js')
-rw-r--r-- | browser/devtools/profiler/test/browser_profiler_console-record-04.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/browser/devtools/profiler/test/browser_profiler_console-record-04.js b/browser/devtools/profiler/test/browser_profiler_console-record-04.js new file mode 100644 index 000000000..f2e749496 --- /dev/null +++ b/browser/devtools/profiler/test/browser_profiler_console-record-04.js @@ -0,0 +1,70 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests if the profiler is correctly populated by new console recordings + * after it is opened. + */ + +let test = Task.async(function*() { + let [target, debuggee, panel] = yield initFrontend(SIMPLE_URL); + let { $, EVENTS, gFront, RecordingsListView, ProfileView } = panel.panelWin; + + yield consoleProfile(gFront, "hello world"); + + is(RecordingsListView.itemCount, 1, + "There should be one recording visible."); + ok(!$(".side-menu-widget-empty-text"), + "There shouldn't be any empty text displayed in the recordings list."); + + is(ProfileView.tabCount, 0, + "There shouldn't be any tabs visible yet."); + is($("#profile-pane").selectedPanel, $("#recording-notice"), + "There should be a recording notice displayed in the profile view."); + + is(RecordingsListView.items[0], RecordingsListView.selectedItem, + "The first and only recording item should be selected."); + + is(RecordingsListView.items[0].attachment.profilerData.profileLabel, "hello world", + "The profile label for the first recording is correct."); + ok(RecordingsListView.items[0].isRecording, + "The 'isRecording' flag for the first recording is correct."); + + let recordingDisplayed = panel.panelWin.once(EVENTS.RECORDING_DISPLAYED); + yield consoleProfileEnd(gFront); + yield recordingDisplayed; + ok(true, "The newly finished console recording was automatically displayed."); + + is(RecordingsListView.itemCount, 1, + "There should still be one recording visible."); + ok(!$(".side-menu-widget-empty-text"), + "There still shouldn't be any empty text displayed in the recordings list."); + + is(ProfileView.tabCount, 1, + "There should still be one tab visible."); + is($("#profile-pane").selectedPanel, $("#profile-content"), + "The profile content should still be displayed in the profile view."); + + is(RecordingsListView.items[0], RecordingsListView.selectedItem, + "The first and only recording item should still be selected."); + + is(RecordingsListView.items[0].attachment.profilerData.profileLabel, "hello world", + "The profile label for the first recording is still correct."); + ok(!RecordingsListView.items[0].isRecording, + "The 'isRecording' flag for the first recording is still correct."); + + yield teardown(panel); + finish(); +}); + +function* consoleProfile(front, label) { + let notified = front.once("profile"); + console.profile(label); + yield notified; +} + +function* consoleProfileEnd(front) { + let notified = front.once("profileEnd"); + console.profileEnd(); + yield notified; +} |