Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 /**
5 * Tests if the slider in the calls list view works as advertised.
6 */
8 function ifTestingSupported() {
9 let [target, debuggee, panel] = yield initCanavsDebuggerFrontend(SIMPLE_CANVAS_URL);
10 let { window, $, EVENTS, gFront, SnapshotsListView, CallsListView } = panel.panelWin;
12 yield reload(target);
14 let recordingFinished = once(window, EVENTS.SNAPSHOT_RECORDING_FINISHED);
15 let callListPopulated = once(window, EVENTS.CALL_LIST_POPULATED);
16 let thumbnailsDisplayed = once(window, EVENTS.THUMBNAILS_DISPLAYED);
17 SnapshotsListView._onRecordButtonClick();
18 yield promise.all([recordingFinished, callListPopulated, thumbnailsDisplayed]);
20 let firstSnapshot = SnapshotsListView.getItemAtIndex(0);
21 let firstSnapshotOverview = yield firstSnapshot.attachment.actor.getOverview();
23 let thumbnails = firstSnapshotOverview.thumbnails;
24 is(thumbnails.length, 4,
25 "There should be 4 thumbnails cached for the snapshot item.");
27 let thumbnailImageElementSet = waitForMozSetImageElement(window);
28 $("#calls-slider").value = 1;
29 let thumbnailPixels = yield thumbnailImageElementSet;
31 ok(sameArray(thumbnailPixels, thumbnails[0].pixels),
32 "The screenshot element should have a thumbnail as an immediate background.");
34 yield once(window, EVENTS.CALL_SCREENSHOT_DISPLAYED);
35 ok(true, "The full-sized screenshot was displayed for the item at index 1.");
37 let thumbnailImageElementSet = waitForMozSetImageElement(window);
38 $("#calls-slider").value = 2;
39 let thumbnailPixels = yield thumbnailImageElementSet;
41 ok(sameArray(thumbnailPixels, thumbnails[1].pixels),
42 "The screenshot element should have a thumbnail as an immediate background.");
44 yield once(window, EVENTS.CALL_SCREENSHOT_DISPLAYED);
45 ok(true, "The full-sized screenshot was displayed for the item at index 2.");
47 let thumbnailImageElementSet = waitForMozSetImageElement(window);
48 $("#calls-slider").value = 7;
49 let thumbnailPixels = yield thumbnailImageElementSet;
51 ok(sameArray(thumbnailPixels, thumbnails[3].pixels),
52 "The screenshot element should have a thumbnail as an immediate background.");
54 yield once(window, EVENTS.CALL_SCREENSHOT_DISPLAYED);
55 ok(true, "The full-sized screenshot was displayed for the item at index 7.");
57 let thumbnailImageElementSet = waitForMozSetImageElement(window);
58 $("#calls-slider").value = 4;
59 let thumbnailPixels = yield thumbnailImageElementSet;
61 ok(sameArray(thumbnailPixels, thumbnails[2].pixels),
62 "The screenshot element should have a thumbnail as an immediate background.");
64 yield once(window, EVENTS.CALL_SCREENSHOT_DISPLAYED);
65 ok(true, "The full-sized screenshot was displayed for the item at index 4.");
67 let thumbnailImageElementSet = waitForMozSetImageElement(window);
68 $("#calls-slider").value = 0;
69 let thumbnailPixels = yield thumbnailImageElementSet;
71 ok(sameArray(thumbnailPixels, thumbnails[0].pixels),
72 "The screenshot element should have a thumbnail as an immediate background.");
74 yield once(window, EVENTS.CALL_SCREENSHOT_DISPLAYED);
75 ok(true, "The full-sized screenshot was displayed for the item at index 0.");
77 yield teardown(panel);
78 finish();
79 }
81 function waitForMozSetImageElement(panel) {
82 let deferred = promise.defer();
83 panel._onMozSetImageElement = deferred.resolve;
84 return deferred.promise;
85 }
87 function sameArray(a, b) {
88 if (a.length != b.length) {
89 return false;
90 }
91 for (let i = 0; i < a.length; i++) {
92 if (a[i] !== b[i]) {
93 return false;
94 }
95 }
96 return true;
97 }