browser/devtools/canvasdebugger/test/browser_canvas-frontend-slider-02.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

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

mercurial