106 lines
2.8 KiB
JavaScript
106 lines
2.8 KiB
JavaScript
async function waitForPdfJS(browser, url) {
|
|
// Runs tests after all "load" event handlers have fired off
|
|
let loadPromise = BrowserTestUtils.waitForContentEvent(
|
|
browser,
|
|
"documentloaded",
|
|
false,
|
|
null,
|
|
true
|
|
);
|
|
await SpecialPowers.spawn(browser, [url], contentUrl => {
|
|
content.location = contentUrl;
|
|
});
|
|
return loadPromise;
|
|
}
|
|
|
|
async function waitForPdfJSAnnotationLayer(browser, url) {
|
|
let loadPromise = BrowserTestUtils.waitForContentEvent(
|
|
browser,
|
|
"annotationlayerrendered",
|
|
false,
|
|
null,
|
|
true
|
|
);
|
|
await SpecialPowers.spawn(browser, [url], contentUrl => {
|
|
content.location = contentUrl;
|
|
});
|
|
return loadPromise;
|
|
}
|
|
|
|
async function waitForPdfJSSandbox(browser) {
|
|
let loadPromise = BrowserTestUtils.waitForContentEvent(
|
|
browser,
|
|
"sandboxcreated",
|
|
false,
|
|
null,
|
|
true
|
|
);
|
|
return loadPromise;
|
|
}
|
|
|
|
function changeMimeHandler(preferredAction, alwaysAskBeforeHandling) {
|
|
let handlerService = Cc[
|
|
"@mozilla.org/uriloader/handler-service;1"
|
|
].getService(Ci.nsIHandlerService);
|
|
let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
|
|
let handlerInfo = mimeService.getFromTypeAndExtension(
|
|
"application/pdf",
|
|
"pdf"
|
|
);
|
|
var oldAction = [
|
|
handlerInfo.preferredAction,
|
|
handlerInfo.alwaysAskBeforeHandling,
|
|
];
|
|
|
|
// Change and save mime handler settings
|
|
handlerInfo.alwaysAskBeforeHandling = alwaysAskBeforeHandling;
|
|
handlerInfo.preferredAction = preferredAction;
|
|
handlerService.store(handlerInfo);
|
|
|
|
// Refresh data
|
|
handlerInfo = mimeService.getFromTypeAndExtension("application/pdf", "pdf");
|
|
|
|
// Test: Mime handler was updated
|
|
is(
|
|
handlerInfo.alwaysAskBeforeHandling,
|
|
alwaysAskBeforeHandling,
|
|
"always-ask prompt change successful"
|
|
);
|
|
is(
|
|
handlerInfo.preferredAction,
|
|
preferredAction,
|
|
"mime handler change successful"
|
|
);
|
|
|
|
return oldAction;
|
|
}
|
|
|
|
function createTemporarySaveDirectory() {
|
|
var saveDir = Services.dirsvc.get("TmpD", Ci.nsIFile);
|
|
saveDir.append("testsavedir");
|
|
if (!saveDir.exists()) {
|
|
saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
|
|
}
|
|
return saveDir;
|
|
}
|
|
|
|
async function cleanupDownloads(listId = Downloads.PUBLIC) {
|
|
info("cleaning up downloads");
|
|
let downloadList = await Downloads.getList(listId);
|
|
for (let download of await downloadList.getAll()) {
|
|
await download.finalize(true);
|
|
try {
|
|
if (Services.appinfo.OS === "WINNT") {
|
|
// We need to make the file writable to delete it on Windows.
|
|
await IOUtils.setPermissions(download.target.path, 0o600);
|
|
}
|
|
await IOUtils.remove(download.target.path);
|
|
} catch (error) {
|
|
info("The file " + download.target.path + " is not removed, " + error);
|
|
}
|
|
|
|
await downloadList.remove(download);
|
|
await download.finalize();
|
|
}
|
|
}
|