Files
palemoon27/toolkit/devtools/performance/test/browser_perf-overview-selection-01.js
T

54 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests that events are fired from OverviewView from selection manipulation.
*/
function spawnTest () {
let { panel } = yield initPerformance(SIMPLE_URL);
let { EVENTS, PerformanceController, OverviewView } = panel.panelWin;
let startTime, endTime, params, _;
yield startRecording(panel);
yield Promise.all([
once(OverviewView, EVENTS.FRAMERATE_GRAPH_RENDERED),
once(OverviewView, EVENTS.MARKERS_GRAPH_RENDERED),
once(OverviewView, EVENTS.OVERVIEW_RENDERED)
]);
yield stopRecording(panel);
let graph = OverviewView.markersOverview;
let MAX = graph.width;
// Select the first half of the graph
let results = onceSpread(OverviewView, EVENTS.OVERVIEW_RANGE_SELECTED);
dragStart(graph, 0);
dragStop(graph, MAX / 2);
[_, { startTime, endTime }] = yield results;
let mapStart = () => 0;
let mapEnd = () => PerformanceController.getCurrentRecording().getDuration();
let actual = graph.getMappedSelection({ mapStart, mapEnd });
is(graph.hasSelection(), true,
"A selection exists on the graph.");
is(startTime, actual.min,
"OVERVIEW_RANGE_SELECTED fired with startTime value on click.");
is(endTime, actual.max,
"OVERVIEW_RANGE_SELECTED fired with endTime value on click.");
// Listen to deselection
results = onceSpread(OverviewView, EVENTS.OVERVIEW_RANGE_CLEARED);
dropSelection(graph);
[_, params] = yield results;
is(graph.hasSelection(), false,
"A selection no longer on the graph.");
is(params, undefined,
"OVERVIEW_RANGE_CLEARED fired with no additional arguments.");
yield teardown(panel);
finish();
}