summaryrefslogtreecommitdiffstats
path: root/devtools/client/shadereditor/test/browser_webgl-actor-test-18.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shadereditor/test/browser_webgl-actor-test-18.js')
-rw-r--r--devtools/client/shadereditor/test/browser_webgl-actor-test-18.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/devtools/client/shadereditor/test/browser_webgl-actor-test-18.js b/devtools/client/shadereditor/test/browser_webgl-actor-test-18.js
new file mode 100644
index 000000000..977b07d86
--- /dev/null
+++ b/devtools/client/shadereditor/test/browser_webgl-actor-test-18.js
@@ -0,0 +1,31 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests the `getPixel` actor method works across threads.
+ */
+
+function* ifWebGLSupported() {
+ let { target, front } = yield initBackend(MULTIPLE_CONTEXTS_URL);
+ front.setup({ reload: true });
+
+ yield getPrograms(front, 2);
+
+ // Wait a frame to ensure rendering
+ yield front.waitForFrame();
+
+ let pixel = yield front.getPixel({ selector: "#canvas1", position: { x: 0, y: 0 }});
+ is(pixel.r, 255, "correct `r` value for first canvas.");
+ is(pixel.g, 255, "correct `g` value for first canvas.");
+ is(pixel.b, 0, "correct `b` value for first canvas.");
+ is(pixel.a, 255, "correct `a` value for first canvas.");
+
+ pixel = yield front.getPixel({ selector: "#canvas2", position: { x: 0, y: 0 }});
+ is(pixel.r, 0, "correct `r` value for second canvas.");
+ is(pixel.g, 255, "correct `g` value for second canvas.");
+ is(pixel.b, 255, "correct `b` value for second canvas.");
+ is(pixel.a, 255, "correct `a` value for second canvas.");
+
+ yield removeTab(target.tab);
+ finish();
+}