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.

     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 }

mercurial