browser/devtools/shadereditor/test/browser_se_programs-blackbox-01.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 blackboxing a program works properly.
     6  */
     8 function ifWebGLSupported() {
     9   let [target, debuggee, panel] = yield initShaderEditor(MULTIPLE_CONTEXTS_URL);
    10   let { gFront, EVENTS, ShadersListView, ShadersEditorsView } = panel.panelWin;
    12   once(panel.panelWin, EVENTS.SHADER_COMPILED).then(() => {
    13     ok(false, "No shaders should be publicly compiled during this test.");
    14   });
    16   reload(target);
    17   let [[firstProgramActor, secondProgramActor]] = yield promise.all([
    18     getPrograms(gFront, 2),
    19     once(panel.panelWin, EVENTS.SOURCES_SHOWN)
    20   ]);
    22   let vsEditor = yield ShadersEditorsView._getEditor("vs");
    23   let fsEditor = yield ShadersEditorsView._getEditor("fs");
    25   vsEditor.once("change", () => {
    26     ok(false, "The vertex shader source was unexpectedly changed.");
    27   });
    28   fsEditor.once("change", () => {
    29     ok(false, "The fragment shader source was unexpectedly changed.");
    30   });
    31   once(panel.panelWin, EVENTS.SOURCES_SHOWN).then(() => {
    32     ok(false, "No sources should be changed form this point onward.");
    33   });
    35   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
    36   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
    37   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
    38   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
    40   ok(!ShadersListView.selectedAttachment.isBlackBoxed,
    41     "The first program should not be blackboxed yet.");
    42   is(getBlackBoxCheckbox(panel, 0).checked, true,
    43     "The first blackbox checkbox should be initially checked.");
    44   ok(!ShadersListView.attachments[1].isBlackBoxed,
    45     "The second program should not be blackboxed yet.");
    46   is(getBlackBoxCheckbox(panel, 1).checked, true,
    47     "The second blackbox checkbox should be initially checked.");
    49   getBlackBoxCheckbox(panel, 0).click();
    51   ok(ShadersListView.selectedAttachment.isBlackBoxed,
    52     "The first program should now be blackboxed.");
    53   is(getBlackBoxCheckbox(panel, 0).checked, false,
    54     "The first blackbox checkbox should now be unchecked.");
    55   ok(!ShadersListView.attachments[1].isBlackBoxed,
    56     "The second program should still not be blackboxed.");
    57   is(getBlackBoxCheckbox(panel, 1).checked, true,
    58     "The second blackbox checkbox should still be checked.");
    60   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    61   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
    62   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    63   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
    64   ok(true, "The first program was correctly blackboxed.");
    66   getBlackBoxCheckbox(panel, 1).click();
    68   ok(ShadersListView.selectedAttachment.isBlackBoxed,
    69     "The first program should still be blackboxed.");
    70   is(getBlackBoxCheckbox(panel, 0).checked, false,
    71     "The first blackbox checkbox should still be unchecked.");
    72   ok(ShadersListView.attachments[1].isBlackBoxed,
    73     "The second program should now be blackboxed.");
    74   is(getBlackBoxCheckbox(panel, 1).checked, false,
    75     "The second blackbox checkbox should now be unchecked.");
    77   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    78   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    79   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    80   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    81   ok(true, "The second program was correctly blackboxed.");
    83   ShadersListView._onProgramMouseEnter({ target: getItemLabel(panel, 0) });
    85   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    86   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    87   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    88   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    89   ok(true, "Highlighting shouldn't work while blackboxed (1).");
    91   ShadersListView._onProgramMouseLeave({ target: getItemLabel(panel, 0) });
    92   ShadersListView._onProgramMouseEnter({ target: getItemLabel(panel, 1) });
    94   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    95   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    96   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
    97   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
    98   ok(true, "Highlighting shouldn't work while blackboxed (2).");
   100   ShadersListView._onProgramMouseLeave({ target: getItemLabel(panel, 1) });
   102   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
   103   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
   104   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas1");
   105   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 0, a: 255 }, true, "#canvas2");
   106   ok(true, "Highlighting shouldn't work while blackboxed (3).");
   108   getBlackBoxCheckbox(panel, 0).click();
   109   getBlackBoxCheckbox(panel, 1).click();
   111   ok(!ShadersListView.selectedAttachment.isBlackBoxed,
   112     "The first program should now be unblackboxed.");
   113   is(getBlackBoxCheckbox(panel, 0).checked, true,
   114     "The first blackbox checkbox should now be rechecked.");
   115   ok(!ShadersListView.attachments[1].isBlackBoxed,
   116     "The second program should now be unblackboxed.");
   117   is(getBlackBoxCheckbox(panel, 1).checked, true,
   118     "The second blackbox checkbox should now be rechecked.");
   120   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   121   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   122   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   123   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   124   ok(true, "The two programs were correctly unblackboxed.");
   126   ShadersListView._onProgramMouseEnter({ target: getItemLabel(panel, 0) });
   128   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 255, g: 0, b: 0, a: 255 }, true, "#canvas1");
   129   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   130   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 255, g: 0, b: 0, a: 255 }, true, "#canvas1");
   131   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   132   ok(true, "The first program was correctly highlighted.");
   134   ShadersListView._onProgramMouseLeave({ target: getItemLabel(panel, 0) });
   135   ShadersListView._onProgramMouseEnter({ target: getItemLabel(panel, 1) });
   137   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   138   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 0, b: 64, a: 255 }, true, "#canvas2");
   139   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   140   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 0, b: 64, a: 255 }, true, "#canvas2");
   141   ok(true, "The second program was correctly highlighted.");
   143   ShadersListView._onProgramMouseLeave({ target: getItemLabel(panel, 1) });
   145   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   146   yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   147   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 255, g: 255, b: 0, a: 255 }, true, "#canvas1");
   148   yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
   149   ok(true, "The two programs were correctly unhighlighted.");
   151   yield teardown(panel);
   152   finish();
   153 }
   155 function getItemLabel(aPanel, aIndex) {
   156   return aPanel.panelWin.document.querySelectorAll(
   157     ".side-menu-widget-item-contents")[aIndex];
   158 }
   160 function getBlackBoxCheckbox(aPanel, aIndex) {
   161   return aPanel.panelWin.document.querySelectorAll(
   162     ".side-menu-widget-item-checkbox")[aIndex];
   163 }
   165 function once(aTarget, aEvent) {
   166   let deferred = promise.defer();
   167   aTarget.once(aEvent, deferred.resolve);
   168   return deferred.promise;
   169 }

mercurial