mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-05-27 15:28:45 +00:00
60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
/* 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");
|
|
|
|
function* waitUntilScreenshot() {
|
|
return new Promise(Task.async(function* (resolve) {
|
|
let { Downloads } = require("resource://gre/modules/Downloads.jsm");
|
|
let list = yield Downloads.getList(Downloads.ALL);
|
|
|
|
let view = {
|
|
onDownloadAdded: download => {
|
|
download.whenSucceeded().then(() => {
|
|
resolve(download.target.path);
|
|
list.removeView(view);
|
|
});
|
|
}
|
|
};
|
|
|
|
yield list.addView(view);
|
|
}));
|
|
}
|
|
|
|
addRDMTask(TEST_URL, function* ({ ui: {toolWindow} }) {
|
|
let { store, document } = toolWindow;
|
|
|
|
// Wait until the viewport has been added
|
|
yield waitUntilState(store, state => state.viewports.length == 1);
|
|
|
|
info("Click the screenshot button");
|
|
let screenshotButton = document.getElementById("global-screenshot-button");
|
|
screenshotButton.click();
|
|
|
|
let whenScreenshotSucceeded = waitUntilScreenshot();
|
|
|
|
let filePath = yield whenScreenshotSucceeded;
|
|
let image = new Image();
|
|
image.src = OS.Path.toFileURI(filePath);
|
|
|
|
yield once(image, "load");
|
|
|
|
// We have only one viewport at the moment
|
|
let viewport = store.getState().viewports[0];
|
|
let 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");
|
|
|
|
yield OS.File.remove(filePath);
|
|
});
|