tenfourfox/devtools/client/performance/test/browser_perf-overview-selection-01.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

73 lines
2.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
requestLongerTimeout(2);
/**
* 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 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.graphs.get("timeline");
let MAX = graph.width;
let duration = PerformanceController.getCurrentRecording().getDuration();
let selection = null;
// Throw out events that select everything, as this will occur on the
// first click
OverviewView.on(EVENTS.OVERVIEW_RANGE_SELECTED, function handler (_, interval) {
if (interval.endTime !== duration) {
selection = interval;
OverviewView.off(handler);
}
});
let results = onceSpread(OverviewView, EVENTS.OVERVIEW_RANGE_SELECTED);
// Select the first half of the graph
dragStart(graph, 0);
dragStop(graph, MAX / 2);
yield waitUntil(() => selection);
let { startTime, endTime } = selection;
let mapStart = () => 0;
let mapEnd = () => duration;
let actual = graph.getMappedSelection({ mapStart, mapEnd });
is(actual.min, 0, "graph selection starts at 0");
is(actual.max, duration/2, `graph selection ends at ${duration/2}`);
is(graph.hasSelection(), true,
"A selection exists on the graph.");
is(startTime, 0,
"OVERVIEW_RANGE_SELECTED fired with startTime value on click.");
is(endTime, duration / 2,
"OVERVIEW_RANGE_SELECTED fired with endTime value on click.");
// Listen to deselection
results = onceSpread(OverviewView, EVENTS.OVERVIEW_RANGE_SELECTED);
dropSelection(graph);
[_, params] = yield results;
is(graph.hasSelection(), false,
"A selection no longer on the graph.");
is(params.startTime, 0,
"OVERVIEW_RANGE_SELECTED fired with 0 as a startTime.");
is(params.endTime, duration,
"OVERVIEW_RANGE_SELECTED fired with max duration as endTime");
yield teardown(panel);
finish();
}