File: browser_420786.js

package info (click to toggle)
firefox-esr 52.8.1esr-1~deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,983,244 kB
  • sloc: cpp: 4,810,275; ansic: 2,004,548; python: 451,282; java: 241,615; asm: 178,649; xml: 136,302; sh: 82,207; makefile: 22,575; perl: 15,783; objc: 4,389; yacc: 1,816; ada: 1,697; pascal: 1,519; lex: 1,257; cs: 879; exp: 499; php: 436; lisp: 258; awk: 152; sed: 51; ruby: 47; csh: 27
file content (88 lines) | stat: -rw-r--r-- 3,112 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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";

function onPageLoad() {
  gBrowser.selectedBrowser.removeEventListener("load", onPageLoad, true);

  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 = content.document.images[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, "zoom");
  checkWallpaper(Ci.nsIShellService.BACKGROUND_FIT, "scaled");

  // 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);

  gBrowser.removeCurrentTab();
  finish();
}

function test() {
  try {
    // If GSettings is available, then the GConf tests
    // will fail
    Cc["@mozilla.org/gsettings-service;1"].
      getService(Ci.nsIGSettingsService).
      getCollectionForSchema("org.gnome.desktop.background");
    todo(false, "This test doesn't work when GSettings is available");
    return;
  } catch (e) { }

  gBrowser.selectedTab = gBrowser.addTab();
  gBrowser.selectedBrowser.addEventListener("load", onPageLoad, true);
  content.location = "about:logo";

  waitForExplicitFinish();
}