fune/browser/components/shell/test/browser_1119088.js
Mike Conley 4e72ac1533 Bug 1492482 - Remove CPOW usage from browser_1119088.js. r=mstange
Depends on D6957

Differential Revision: https://phabricator.services.mozilla.com/D6958

--HG--
extra : moz-landing-system : lando
2018-10-02 17:59:23 +00:00

65 lines
2.4 KiB
JavaScript

/* eslint-disable mozilla/no-arbitrary-setTimeout */
let NS_OSX_PICTURE_DOCUMENTS_DIR = "Pct";
let NS_MAC_USER_LIB_DIR = "ULibDir";
/**
* Tests "Set As Desktop Background" on macOS.
*/
add_task(async function() {
await BrowserTestUtils.withNewTab({
gBrowser,
url: "about:logo",
}, async (browser) => {
let dirSvc = Cc["@mozilla.org/file/directory_service;1"].
getService(Ci.nsIDirectoryServiceProvider);
let desktopBackgroundDb = dirSvc.getFile(NS_MAC_USER_LIB_DIR, {});
desktopBackgroundDb.append("Application Support");
desktopBackgroundDb.append("Dock");
let desktopBackgroundDbBackup = desktopBackgroundDb.clone();
desktopBackgroundDb.append("desktoppicture.db");
desktopBackgroundDbBackup.append("desktoppicture.db.backup");
ok(desktopBackgroundDb.exists(),
"Desktop background database must exist for test to run.");
if (desktopBackgroundDbBackup.exists()) {
desktopBackgroundDbBackup.remove(false);
}
desktopBackgroundDb.copyTo(null, desktopBackgroundDbBackup.leafName);
let wpFile = dirSvc.getFile(NS_OSX_PICTURE_DOCUMENTS_DIR, {});
wpFile.append("logo.png");
if (wpFile.exists()) {
wpFile.remove(false);
}
let shell = Cc["@mozilla.org/browser/shell-service;1"].
getService(Ci.nsIShellService);
// For simplicity, we're going to reach in and access the image on the
// page directly, which means the page shouldn't be running in a remote
// browser. Thankfully, about:logo runs in the parent process for now.
Assert.ok(!gBrowser.selectedBrowser.isRemoteBrowser,
"image can be accessed synchronously from the parent process");
let image = gBrowser.selectedBrowser.contentDocument.images[0];
shell.setDesktopBackground(image, 0, "logo.png");
await BrowserTestUtils.waitForCondition(() => wpFile.exists());
info("Desktop background was written to disk.");
desktopBackgroundDbBackup.moveTo(null, desktopBackgroundDb.leafName);
wpFile.remove(false);
// Restart Dock to reload previous background image.
let killall = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
killall.initWithPath("/usr/bin/killall");
let dockArg = ["Dock"];
let process =
Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(killall);
process.run(true, dockArg, 1);
});
});