diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js')
-rw-r--r-- | devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js b/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js new file mode 100644 index 000000000..abe2dfc75 --- /dev/null +++ b/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js @@ -0,0 +1,79 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +/** + * Tests that when flame chart views scroll to change selection, + * other detail views are rerendered. + */ + +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"); +const { scrollCanvasGraph, HORIZONTAL_AXIS } = require("devtools/client/performance/test/helpers/input-utils"); + +add_task(function* () { + let { panel } = yield initPerformanceInNewTab({ + url: SIMPLE_URL, + win: window + }); + + let { + EVENTS, + OverviewView, + DetailsView, + WaterfallView, + JsCallTreeView, + JsFlameGraphView + } = panel.panelWin; + + yield startRecording(panel); + yield stopRecording(panel); + + let waterfallRendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED); + OverviewView.setTimeInterval({ startTime: 10, endTime: 20 }); + yield waterfallRendered; + + // Select the call tree to make sure it's initialized and ready to receive + // redrawing requests once reselected. + let callTreeRendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED); + yield DetailsView.selectView("js-calltree"); + yield callTreeRendered; + + // Switch to the flamegraph and perform a scroll over the visualization. + // The waterfall and call tree should get rerendered when reselected. + let flamegraphRendered = once(JsFlameGraphView, EVENTS.UI_JS_FLAMEGRAPH_RENDERED); + yield DetailsView.selectView("js-flamegraph"); + yield flamegraphRendered; + + let overviewRangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED); + let waterfallRerendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED); + let callTreeRerendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED); + + once(JsFlameGraphView, EVENTS.UI_JS_FLAMEGRAPH_RENDERED).then(() => { + ok(false, "FlameGraphView should not publicly rerender, the internal state " + + "and drawing should be handled by the underlying widget."); + }); + + // Reset the range to full view, trigger a "selection" event as if + // our mouse has done this + scrollCanvasGraph(JsFlameGraphView.graph, { + axis: HORIZONTAL_AXIS, + wheel: 200, + x: 10 + }); + + yield overviewRangeSelected; + ok(true, "Overview range was changed."); + + yield DetailsView.selectView("waterfall"); + yield waterfallRerendered; + ok(true, "Waterfall rerendered by flame graph changing interval."); + + yield DetailsView.selectView("js-calltree"); + yield callTreeRerendered; + ok(true, "CallTree rerendered by flame graph changing interval."); + + yield teardownToolboxAndRemoveTab(panel); +}); |