diff options
Diffstat (limited to 'devtools/client/canvasdebugger/test/browser_canvas-frontend-call-search.js')
-rw-r--r-- | devtools/client/canvasdebugger/test/browser_canvas-frontend-call-search.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/devtools/client/canvasdebugger/test/browser_canvas-frontend-call-search.js b/devtools/client/canvasdebugger/test/browser_canvas-frontend-call-search.js new file mode 100644 index 000000000..e865df391 --- /dev/null +++ b/devtools/client/canvasdebugger/test/browser_canvas-frontend-call-search.js @@ -0,0 +1,72 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests if filtering the items in the call list works properly. + */ + +function* ifTestingSupported() { + let { target, panel } = yield initCanvasDebuggerFrontend(SIMPLE_CANVAS_URL); + let { window, $, EVENTS, SnapshotsListView, CallsListView } = panel.panelWin; + let searchbox = $("#calls-searchbox"); + + yield reload(target); + + let firstRecordingFinished = once(window, EVENTS.SNAPSHOT_RECORDING_FINISHED); + let callListPopulated = once(window, EVENTS.CALL_LIST_POPULATED); + SnapshotsListView._onRecordButtonClick(); + yield promise.all([firstRecordingFinished, callListPopulated]); + + is(searchbox.value, "", + "The searchbox should be initially empty."); + is(CallsListView.visibleItems.length, 8, + "All the items should be initially visible in the calls list."); + + searchbox.focus(); + EventUtils.sendString("clear", window); + + is(searchbox.value, "clear", + "The searchbox should now contain the 'clear' string."); + is(CallsListView.visibleItems.length, 1, + "Only one item should now be visible in the calls list."); + + is(CallsListView.visibleItems[0].attachment.actor.type, CallWatcherFront.METHOD_FUNCTION, + "The visible item's type has the expected value."); + is(CallsListView.visibleItems[0].attachment.actor.name, "clearRect", + "The visible item's name has the expected value."); + is(CallsListView.visibleItems[0].attachment.actor.file, SIMPLE_CANVAS_URL, + "The visible item's file has the expected value."); + is(CallsListView.visibleItems[0].attachment.actor.line, 25, + "The visible item's line has the expected value."); + is(CallsListView.visibleItems[0].attachment.actor.argsPreview, "0, 0, 128, 128", + "The visible item's args have the expected value."); + is(CallsListView.visibleItems[0].attachment.actor.callerPreview, "Object", + "The visible item's caller has the expected value."); + + let secondRecordingFinished = once(window, EVENTS.SNAPSHOT_RECORDING_FINISHED); + callListPopulated = once(window, EVENTS.CALL_LIST_POPULATED); + + SnapshotsListView._onRecordButtonClick(); + yield secondRecordingFinished; + + SnapshotsListView.selectedIndex = 1; + yield callListPopulated; + + is(searchbox.value, "clear", + "The searchbox should still contain the 'clear' string."); + is(CallsListView.visibleItems.length, 1, + "Only one item should still be visible in the calls list."); + + for (let i = 0; i < 5; i++) { + searchbox.focus(); + EventUtils.sendKey("BACK_SPACE", window); + } + + is(searchbox.value, "", + "The searchbox should now be emptied."); + is(CallsListView.visibleItems.length, 8, + "All the items should be initially visible again in the calls list."); + + yield teardown(panel); + finish(); +} |