summaryrefslogtreecommitdiffstats
path: root/devtools/client/canvasdebugger/test/browser_canvas-frontend-record-02.js
blob: aee63a5746acf637c6bd1c9b06213a65f319ed3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Tests whether the frontend displays a placeholder snapshot while recording.
 */

function* ifTestingSupported() {
  let { target, panel } = yield initCanvasDebuggerFrontend(SIMPLE_CANVAS_URL);
  let { window, EVENTS, L10N, $, SnapshotsListView } = panel.panelWin;

  yield reload(target);

  let recordingStarted = once(window, EVENTS.SNAPSHOT_RECORDING_STARTED);
  let recordingFinished = once(window, EVENTS.SNAPSHOT_RECORDING_FINISHED);
  let recordingSelected = once(window, EVENTS.SNAPSHOT_RECORDING_SELECTED);
  SnapshotsListView._onRecordButtonClick();

  yield recordingStarted;
  ok(true, "Started recording a snapshot of the animation loop.");

  let item = SnapshotsListView.getItemAtIndex(0);

  is($(".snapshot-item-title", item.target).getAttribute("value"),
    L10N.getFormatStr("snapshotsList.itemLabel", 1),
    "The placeholder item's title label is correct.");

  is($(".snapshot-item-calls", item.target).getAttribute("value"),
    L10N.getStr("snapshotsList.loadingLabel"),
    "The placeholder item's calls label is correct.");

  is($(".snapshot-item-save", item.target).getAttribute("value"), "",
    "The placeholder item's save label should not have a value yet.");

  is($("#reload-notice").getAttribute("hidden"), "true",
    "The reload notice should now be hidden.");
  is($("#empty-notice").getAttribute("hidden"), "true",
    "The empty notice should now be hidden.");
  is($("#waiting-notice").hasAttribute("hidden"), false,
    "The waiting notice should now be visible.");

  is($("#screenshot-container").getAttribute("hidden"), "true",
    "The screenshot container should still be hidden.");
  is($("#snapshot-filmstrip").getAttribute("hidden"), "true",
    "The snapshot filmstrip should still be hidden.");

  is($("#debugging-pane-contents").getAttribute("hidden"), "true",
    "The rest of the UI should still be hidden.");

  yield recordingFinished;
  ok(true, "Finished recording a snapshot of the animation loop.");

  yield recordingSelected;
  ok(true, "Finished selecting a snapshot of the animation loop.");

  is($("#reload-notice").getAttribute("hidden"), "true",
    "The reload notice should now be hidden.");
  is($("#empty-notice").getAttribute("hidden"), "true",
    "The empty notice should now be hidden.");
  is($("#waiting-notice").getAttribute("hidden"), "true",
    "The waiting notice should now be hidden.");

  is($("#screenshot-container").hasAttribute("hidden"), false,
    "The screenshot container should now be visible.");
  is($("#snapshot-filmstrip").hasAttribute("hidden"), false,
    "The snapshot filmstrip should now be visible.");

  is($("#debugging-pane-contents").hasAttribute("hidden"), false,
    "The rest of the UI should now be visible.");

  yield teardown(panel);
  finish();
}