mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 22:55:23 +00:00
71 lines
2.8 KiB
JavaScript
71 lines
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Tests if all the function calls associated with an animation frame snapshot
|
|
* are properly displayed in the UI.
|
|
*/
|
|
|
|
function* ifTestingSupported() {
|
|
let { target, panel } = yield initCanvasDebuggerFrontend(SIMPLE_CANVAS_URL);
|
|
let { window, $, EVENTS, SnapshotsListView, CallsListView } = panel.panelWin;
|
|
|
|
yield reload(target);
|
|
|
|
let recordingFinished = once(window, EVENTS.SNAPSHOT_RECORDING_FINISHED);
|
|
let callListPopulated = once(window, EVENTS.CALL_LIST_POPULATED);
|
|
SnapshotsListView._onRecordButtonClick();
|
|
yield promise.all([recordingFinished, callListPopulated]);
|
|
|
|
is(CallsListView.itemCount, 8,
|
|
"All the function calls should now be displayed in the UI.");
|
|
|
|
testItem(CallsListView.getItemAtIndex(0),
|
|
"1", "Object", "clearRect", "(0, 0, 128, 128)", "doc_simple-canvas.html:25");
|
|
|
|
testItem(CallsListView.getItemAtIndex(1),
|
|
"2", "Object", "fillStyle", " = rgb(192, 192, 192)", "doc_simple-canvas.html:20");
|
|
testItem(CallsListView.getItemAtIndex(2),
|
|
"3", "Object", "fillRect", "(0, 0, 128, 128)", "doc_simple-canvas.html:21");
|
|
|
|
testItem(CallsListView.getItemAtIndex(3),
|
|
"4", "Object", "fillStyle", " = rgba(0, 0, 192, 0.5)", "doc_simple-canvas.html:20");
|
|
testItem(CallsListView.getItemAtIndex(4),
|
|
"5", "Object", "fillRect", "(30, 30, 55, 50)", "doc_simple-canvas.html:21");
|
|
|
|
testItem(CallsListView.getItemAtIndex(5),
|
|
"6", "Object", "fillStyle", " = rgba(192, 0, 0, 0.5)", "doc_simple-canvas.html:20");
|
|
testItem(CallsListView.getItemAtIndex(6),
|
|
"7", "Object", "fillRect", "(10, 10, 55, 50)", "doc_simple-canvas.html:21");
|
|
|
|
testItem(CallsListView.getItemAtIndex(7),
|
|
"8", "", "requestAnimationFrame", "(Function)", "doc_simple-canvas.html:30");
|
|
|
|
function testItem(item, index, context, name, args, location) {
|
|
let i = CallsListView.indexOfItem(item);
|
|
is(i, index - 1,
|
|
"The item at index " + index + " is correctly displayed in the UI.");
|
|
|
|
is($(".call-item-index", item.target).getAttribute("value"), index,
|
|
"The item's gutter label has the correct text.");
|
|
|
|
if (context) {
|
|
is($(".call-item-context", item.target).getAttribute("value"), context,
|
|
"The item's context label has the correct text.");
|
|
} else {
|
|
is($(".call-item-context", item.target) + "", "[object XULElement]",
|
|
"The item's context label should not be available.");
|
|
}
|
|
|
|
is($(".call-item-name", item.target).getAttribute("value"), name,
|
|
"The item's name label has the correct text.");
|
|
is($(".call-item-args", item.target).getAttribute("value"), args,
|
|
"The item's args label has the correct text.");
|
|
is($(".call-item-location", item.target).getAttribute("value"), location,
|
|
"The item's location label has the correct text.");
|
|
}
|
|
|
|
yield teardown(panel);
|
|
finish();
|
|
}
|