diff options
Diffstat (limited to 'devtools/client/performance/test/browser_perf-overview-time-interval.js')
-rw-r--r-- | devtools/client/performance/test/browser_perf-overview-time-interval.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/devtools/client/performance/test/browser_perf-overview-time-interval.js b/devtools/client/performance/test/browser_perf-overview-time-interval.js new file mode 100644 index 000000000..b66e3ef86 --- /dev/null +++ b/devtools/client/performance/test/browser_perf-overview-time-interval.js @@ -0,0 +1,73 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +/** + * Tests that the `setTimeInterval` and `getTimeInterval` functions + * work properly. + */ + +const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls"); +const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils"); +const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions"); +const { once } = require("devtools/client/performance/test/helpers/event-utils"); + +add_task(function* () { + let { panel } = yield initPerformanceInNewTab({ + url: SIMPLE_URL, + win: window + }); + + let { EVENTS, OverviewView } = panel.panelWin; + + try { + OverviewView.setTimeInterval({ starTime: 0, endTime: 1 }); + ok(false, "Setting a time interval shouldn't have worked."); + } catch (e) { + ok(true, "Setting a time interval didn't work, as expected."); + } + + try { + OverviewView.getTimeInterval(); + ok(false, "Getting the time interval shouldn't have worked."); + } catch (e) { + ok(true, "Getting the time interval didn't work, as expected."); + } + + yield startRecording(panel); + yield stopRecording(panel); + + // Get/set the time interval and wait for the event propagation. + + let rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED); + OverviewView.setTimeInterval({ startTime: 10, endTime: 20 }); + yield rangeSelected; + + let firstInterval = OverviewView.getTimeInterval(); + info("First interval start time: " + firstInterval.startTime); + info("First interval end time: " + firstInterval.endTime); + is(Math.round(firstInterval.startTime), 10, + "The interval's start time was properly set."); + is(Math.round(firstInterval.endTime), 20, + "The interval's end time was properly set."); + + // Get/set another time interval and make sure there's no event propagation. + + function fail() { + ok(false, "The selection event should not have propagated."); + } + + OverviewView.on(EVENTS.UI_OVERVIEW_RANGE_SELECTED, fail); + OverviewView.setTimeInterval({ startTime: 30, endTime: 40 }, { stopPropagation: true }); + OverviewView.off(EVENTS.UI_OVERVIEW_RANGE_SELECTED, fail); + + let secondInterval = OverviewView.getTimeInterval(); + info("Second interval start time: " + secondInterval.startTime); + info("Second interval end time: " + secondInterval.endTime); + is(Math.round(secondInterval.startTime), 30, + "The interval's start time was properly set again."); + is(Math.round(secondInterval.endTime), 40, + "The interval's end time was properly set again."); + + yield teardownToolboxAndRemoveTab(panel); +}); |