summaryrefslogtreecommitdiffstats
path: root/devtools/client/responsive/test/browser/browser_screenshot_button.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/responsive/test/browser/browser_screenshot_button.js')
-rw-r--r--devtools/client/responsive/test/browser/browser_screenshot_button.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/responsive/test/browser/browser_screenshot_button.js b/devtools/client/responsive/test/browser/browser_screenshot_button.js
new file mode 100644
index 0000000000..4dcb429087
--- /dev/null
+++ b/devtools/client/responsive/test/browser/browser_screenshot_button.js
@@ -0,0 +1,63 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test global exit button
+
+const TEST_URL = "data:text/html;charset=utf-8,";
+
+const { OS } = require("resource://gre/modules/osfile.jsm");
+
+async function waitUntilScreenshot() {
+ const { Downloads } = require("resource://gre/modules/Downloads.jsm");
+ const list = await Downloads.getList(Downloads.ALL);
+
+ return new Promise(function(resolve) {
+ const view = {
+ onDownloadAdded: download => {
+ download.whenSucceeded().then(() => {
+ resolve(download.target.path);
+ list.removeView(view);
+ });
+ },
+ };
+
+ list.addView(view);
+ });
+}
+
+addRDMTask(TEST_URL, async function({ ui }) {
+ const { toolWindow } = ui;
+ const { store, document } = toolWindow;
+
+ info("Click the screenshot button");
+ const screenshotButton = document.getElementById("screenshot-button");
+ screenshotButton.click();
+
+ const whenScreenshotSucceeded = waitUntilScreenshot();
+
+ const filePath = await whenScreenshotSucceeded;
+ const image = new Image();
+ image.src = OS.Path.toFileURI(filePath);
+
+ await once(image, "load");
+
+ // We have only one viewport at the moment
+ const viewport = store.getState().viewports[0];
+ const ratio = window.devicePixelRatio;
+
+ is(
+ image.width,
+ viewport.width * ratio,
+ "screenshot width has the expected width"
+ );
+
+ is(
+ image.height,
+ viewport.height * ratio,
+ "screenshot width has the expected height"
+ );
+
+ await OS.File.remove(filePath);
+});