mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
99 lines
3.1 KiB
JavaScript
99 lines
3.1 KiB
JavaScript
const Ci = Components.interfaces;
|
|
const Cc = Components.classes;
|
|
|
|
const DG_BACKGROUND = "/desktop/gnome/background"
|
|
const DG_IMAGE_KEY = DG_BACKGROUND + "/picture_filename";
|
|
const DG_OPTION_KEY = DG_BACKGROUND + "/picture_options";
|
|
const DG_DRAW_BG_KEY = DG_BACKGROUND + "/draw_background";
|
|
|
|
var testPage;
|
|
|
|
function url(spec) {
|
|
var ios = Cc["@mozilla.org/network/io-service;1"].
|
|
getService(Ci.nsIIOService);
|
|
return ios.newURI(spec, null, null);
|
|
}
|
|
|
|
function onPageLoad() {
|
|
testPage.events.removeListener("load", onPageLoad);
|
|
|
|
var bs = Cc["@mozilla.org/intl/stringbundle;1"].
|
|
getService(Ci.nsIStringBundleService);
|
|
var brandName = bs.createBundle("chrome://branding/locale/brand.properties").
|
|
GetStringFromName("brandShortName");
|
|
|
|
var dirSvc = Cc["@mozilla.org/file/directory_service;1"].
|
|
getService(Ci.nsIDirectoryServiceProvider);
|
|
var homeDir = dirSvc.getFile("Home", {});
|
|
|
|
var wpFile = homeDir.clone();
|
|
wpFile.append(brandName + "_wallpaper.png");
|
|
|
|
// Backup the existing wallpaper so that this test doesn't change the user's
|
|
// settings.
|
|
var wpFileBackup = homeDir.clone()
|
|
wpFileBackup.append(brandName + "_wallpaper.png.backup");
|
|
|
|
if (wpFileBackup.exists())
|
|
wpFileBackup.remove(false);
|
|
|
|
if (wpFile.exists())
|
|
wpFile.copyTo(null, wpFileBackup.leafName);
|
|
|
|
var shell = Cc["@mozilla.org/browser/shell-service;1"].
|
|
getService(Ci.nsIShellService);
|
|
var gconf = Cc["@mozilla.org/gnome-gconf-service;1"].
|
|
getService(Ci.nsIGConfService);
|
|
|
|
var prevImageKey = gconf.getString(DG_IMAGE_KEY);
|
|
var prevOptionKey = gconf.getString(DG_OPTION_KEY);
|
|
var prevDrawBgKey = gconf.getBool(DG_DRAW_BG_KEY);
|
|
|
|
var image = testPage.document.getElementsByTagName("img")[0];
|
|
|
|
function checkWallpaper(position, expectedGConfPosition) {
|
|
shell.setDesktopBackground(image, position);
|
|
ok(wpFile.exists(), "Wallpaper was written to disk");
|
|
is(gconf.getString(DG_IMAGE_KEY), wpFile.path,
|
|
"Wallpaper file GConf key is correct");
|
|
is(gconf.getString(DG_OPTION_KEY), expectedGConfPosition,
|
|
"Wallpaper position GConf key is correct");
|
|
}
|
|
|
|
checkWallpaper(Ci.nsIShellService.BACKGROUND_TILE, "wallpaper");
|
|
checkWallpaper(Ci.nsIShellService.BACKGROUND_STRETCH, "stretched");
|
|
checkWallpaper(Ci.nsIShellService.BACKGROUND_CENTER, "centered");
|
|
checkWallpaper(Ci.nsIShellService.BACKGROUND_FILL, "centered");
|
|
|
|
// Restore GConf and wallpaper
|
|
|
|
gconf.setString(DG_IMAGE_KEY, prevImageKey);
|
|
gconf.setString(DG_OPTION_KEY, prevOptionKey);
|
|
gconf.setBool(DG_DRAW_BG_KEY, prevDrawBgKey);
|
|
|
|
wpFile.remove(false);
|
|
if (wpFileBackup.exists()) {
|
|
wpFileBackup.moveTo(null, wpFile.leafName);
|
|
}
|
|
testPage.close();
|
|
finish();
|
|
}
|
|
|
|
function test() {
|
|
var osString = Cc["@mozilla.org/xre/app-info;1"].
|
|
getService(Ci.nsIXULRuntime).OS;
|
|
|
|
// This test is Linux specific for now
|
|
if (osString != "Linux") {
|
|
finish();
|
|
return;
|
|
}
|
|
|
|
testPage = Application.activeWindow.open(url("about:blank"));
|
|
testPage.events.addListener("load", onPageLoad);
|
|
testPage.load(url("about:logo"));
|
|
testPage.focus();
|
|
|
|
waitForExplicitFinish();
|
|
}
|