browser/devtools/canvasdebugger/test/browser_canvas-actor-test-03.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:456a12621d07
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 /**
5 * Tests if functions inside a single animation frame are recorded and stored
6 * for a canvas context.
7 */
8
9 function ifTestingSupported() {
10 let [target, debuggee, front] = yield initCanavsDebuggerBackend(SIMPLE_CANVAS_URL);
11
12 let navigated = once(target, "navigate");
13
14 yield front.setup({ reload: true });
15 ok(true, "The front was setup up successfully.");
16
17 yield navigated;
18 ok(true, "Target automatically navigated when the front was set up.");
19
20 let snapshotActor = yield front.recordAnimationFrame();
21 ok(snapshotActor,
22 "A snapshot actor was sent after recording.");
23
24 let animationOverview = yield snapshotActor.getOverview();
25 ok(snapshotActor,
26 "An animation overview could be retrieved after recording.");
27
28 let functionCalls = animationOverview.calls;
29 ok(functionCalls,
30 "An array of function call actors was sent after recording.");
31 is(functionCalls.length, 8,
32 "The number of function call actors is correct.");
33
34 is(functionCalls[0].type, CallWatcherFront.METHOD_FUNCTION,
35 "The first called function is correctly identified as a method.");
36 is(functionCalls[0].name, "clearRect",
37 "The first called function's name is correct.");
38 is(functionCalls[0].file, SIMPLE_CANVAS_URL,
39 "The first called function's file is correct.");
40 is(functionCalls[0].line, 25,
41 "The first called function's line is correct.");
42 is(functionCalls[0].argsPreview, "0, 0, 128, 128",
43 "The first called function's args preview is correct.");
44 is(functionCalls[0].callerPreview, "ctx",
45 "The first called function's caller preview is correct.");
46
47 is(functionCalls[6].type, CallWatcherFront.METHOD_FUNCTION,
48 "The penultimate called function is correctly identified as a method.");
49 is(functionCalls[6].name, "fillRect",
50 "The penultimate called function's name is correct.");
51 is(functionCalls[6].file, SIMPLE_CANVAS_URL,
52 "The penultimate called function's file is correct.");
53 is(functionCalls[6].line, 21,
54 "The penultimate called function's line is correct.");
55 is(functionCalls[6].argsPreview, "10, 10, 55, 50",
56 "The penultimate called function's args preview is correct.");
57 is(functionCalls[6].callerPreview, "ctx",
58 "The penultimate called function's caller preview is correct.");
59
60 is(functionCalls[7].type, CallWatcherFront.METHOD_FUNCTION,
61 "The last called function is correctly identified as a method.");
62 is(functionCalls[7].name, "requestAnimationFrame",
63 "The last called function's name is correct.");
64 is(functionCalls[7].file, SIMPLE_CANVAS_URL,
65 "The last called function's file is correct.");
66 is(functionCalls[7].line, 30,
67 "The last called function's line is correct.");
68 ok(functionCalls[7].argsPreview.contains("Function"),
69 "The last called function's args preview is correct.");
70 is(functionCalls[7].callerPreview, "",
71 "The last called function's caller preview is correct.");
72
73 yield removeTab(target.tab);
74 finish();
75 }

mercurial