test_421977.js
Go to the documentation of this file.
1 const Cc = Components.classes;
2 const Ci = Components.interfaces;
3 const Cr = Components.results;
4 
5 const GCONF_BG_COLOR_KEY = "/desktop/gnome/background/primary_color";
6 
7 var gShell;
8 var gGConf;
9 
14 function colorToHex(aColor) {
15  const rMask = 4294901760;
16  const gMask = 65280;
17  const bMask = 255;
18 
19  var r = (aColor & rMask) >> 16;
20  var g = (aColor & gMask) >> 8;
21  var b = (aColor & bMask);
22 
23  return "#" + [r, g, b].map(function(aInt)
24  aInt.toString(16).replace(/^(.)$/, "0$1"))
25  .join("").toUpperCase();
26 }
27 
32 function hexToColor(aString) {
33  return parseInt(aString.substring(1,3), 16) << 16 |
34  parseInt(aString.substring(3,5), 16) << 8 |
35  parseInt(aString.substring(5,7), 16);
36 }
37 
43 function checkGConfToShellColor(aGConfColor, aExpectedShellColor) {
44 
45  gGConf.setString(GCONF_BG_COLOR_KEY, aGConfColor);
46  var shellColor = colorToHex(gShell.desktopBackgroundColor);
47 
48  do_check_eq(shellColor, aExpectedShellColor);
49 }
50 
56 function checkShellToGConfColor(aShellColor, aExpectedGConfColor) {
57 
58  gShell.desktopBackgroundColor = hexToColor(aShellColor);
59  var gconfColor = gGConf.getString(GCONF_BG_COLOR_KEY);
60 
61  do_check_eq(gconfColor, aExpectedGConfColor);
62 }
63 
64 function run_test() {
65 
66  // This test is Linux specific for now
67  if (!("@mozilla.org/gnome-gconf-service;1" in Cc))
68  return;
69 
70  gGConf = Cc["@mozilla.org/gnome-gconf-service;1"].
71  getService(Ci.nsIGConfService);
72 
73  gShell = Cc["@mozilla.org/browser/shell-service;1"].
74  getService(Ci.nsIShellService);
75 
76  // Save the original background color so that we can restore it
77  // after the test.
78  var origGConfColor = gGConf.getString(GCONF_BG_COLOR_KEY);
79 
80  try {
81 
82  checkGConfToShellColor("#000", "#000000");
83  checkGConfToShellColor("#00f", "#0000FF");
84  checkGConfToShellColor("#b2f", "#BB22FF");
85  checkGConfToShellColor("#fff", "#FFFFFF");
86 
87  checkGConfToShellColor("#000000", "#000000");
88  checkGConfToShellColor("#0000ff", "#0000FF");
89  checkGConfToShellColor("#b002f0", "#B002F0");
90  checkGConfToShellColor("#ffffff", "#FFFFFF");
91 
92  checkGConfToShellColor("#000000000", "#000000");
93  checkGConfToShellColor("#00f00f00f", "#000000");
94  checkGConfToShellColor("#aaabbbccc", "#AABBCC");
95  checkGConfToShellColor("#fffffffff", "#FFFFFF");
96 
97  checkGConfToShellColor("#000000000000", "#000000");
98  checkGConfToShellColor("#000f000f000f", "#000000");
99  checkGConfToShellColor("#00ff00ff00ff", "#000000");
100  checkGConfToShellColor("#aaaabbbbcccc", "#AABBCC");
101  checkGConfToShellColor("#111122223333", "#112233");
102  checkGConfToShellColor("#ffffffffffff", "#FFFFFF");
103 
104  checkShellToGConfColor("#000000", "#000000000000");
105  checkShellToGConfColor("#0000FF", "#00000000ffff");
106  checkShellToGConfColor("#FFFFFF", "#ffffffffffff");
107  checkShellToGConfColor("#0A0B0C", "#0a0a0b0b0c0c");
108  checkShellToGConfColor("#A0B0C0", "#a0a0b0b0c0c0");
109  checkShellToGConfColor("#AABBCC", "#aaaabbbbcccc");
110 
111  } finally {
112  gGConf.setString(GCONF_BG_COLOR_KEY, origGConfColor);
113  }
114 }
const Cr
Definition: test_421977.js:3
function run_test()
Definition: test_421977.js:64
do_check_eq(typeof PlacesUtils,"object")
function checkShellToGConfColor(aShellColor, aExpectedGConfColor)
Definition: test_421977.js:56
function colorToHex(aColor)
Definition: test_421977.js:14
var gShell
Definition: test_421977.js:7
getService(Ci.sbIFaceplateManager)
function checkGConfToShellColor(aGConfColor, aExpectedShellColor)
Definition: test_421977.js:43
const Ci
Definition: test_421977.js:2
function hexToColor(aString)
Definition: test_421977.js:32
const GCONF_BG_COLOR_KEY
Definition: test_421977.js:5
var gGConf
Definition: test_421977.js:8
const Cc
Definition: test_421977.js:1