|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 // Tests that the pref commands work |
|
5 |
|
6 let prefBranch = Cc["@mozilla.org/preferences-service;1"] |
|
7 .getService(Ci.nsIPrefService).getBranch(null) |
|
8 .QueryInterface(Ci.nsIPrefBranch2); |
|
9 |
|
10 let supportsString = Cc["@mozilla.org/supports-string;1"] |
|
11 .createInstance(Ci.nsISupportsString); |
|
12 |
|
13 let settings = require("gcli/settings"); |
|
14 |
|
15 const TEST_URI = "data:text/html;charset=utf-8,gcli-settings"; |
|
16 |
|
17 function test() { |
|
18 return Task.spawn(spawnTest).then(finish, helpers.handleError); |
|
19 } |
|
20 |
|
21 function spawnTest() { |
|
22 // Setup |
|
23 let options = yield helpers.openTab(TEST_URI); |
|
24 |
|
25 let tiltEnabled = settings.getSetting("devtools.tilt.enabled"); |
|
26 let tabSize = settings.getSetting("devtools.editor.tabsize"); |
|
27 let remoteHost = settings.getSetting("devtools.debugger.remote-host"); |
|
28 |
|
29 let tiltEnabledOrig = prefBranch.getBoolPref("devtools.tilt.enabled"); |
|
30 let tabSizeOrig = prefBranch.getIntPref("devtools.editor.tabsize"); |
|
31 let remoteHostOrig = prefBranch.getComplexValue( |
|
32 "devtools.debugger.remote-host", |
|
33 Components.interfaces.nsISupportsString).data; |
|
34 |
|
35 info("originally: devtools.tilt.enabled = " + tiltEnabledOrig); |
|
36 info("originally: devtools.editor.tabsize = " + tabSizeOrig); |
|
37 info("originally: devtools.debugger.remote-host = " + remoteHostOrig); |
|
38 |
|
39 // Actual tests |
|
40 is(tiltEnabled.value, tiltEnabledOrig, "tiltEnabled default"); |
|
41 is(tabSize.value, tabSizeOrig, "tabSize default"); |
|
42 is(remoteHost.value, remoteHostOrig, "remoteHost default"); |
|
43 |
|
44 tiltEnabled.setDefault(); |
|
45 tabSize.setDefault(); |
|
46 remoteHost.setDefault(); |
|
47 |
|
48 let tiltEnabledDefault = tiltEnabled.value; |
|
49 let tabSizeDefault = tabSize.value; |
|
50 let remoteHostDefault = remoteHost.value; |
|
51 |
|
52 tiltEnabled.value = false; |
|
53 tabSize.value = 42; |
|
54 remoteHost.value = "example.com" |
|
55 |
|
56 is(tiltEnabled.value, false, "tiltEnabled basic"); |
|
57 is(tabSize.value, 42, "tabSize basic"); |
|
58 is(remoteHost.value, "example.com", "remoteHost basic"); |
|
59 |
|
60 function tiltEnabledCheck(ev) { |
|
61 is(ev.setting, tiltEnabled, "tiltEnabled event setting"); |
|
62 is(ev.value, true, "tiltEnabled event value"); |
|
63 is(ev.setting.value, true, "tiltEnabled event setting value"); |
|
64 } |
|
65 tiltEnabled.onChange.add(tiltEnabledCheck); |
|
66 tiltEnabled.value = true; |
|
67 is(tiltEnabled.value, true, "tiltEnabled change"); |
|
68 |
|
69 function tabSizeCheck(ev) { |
|
70 is(ev.setting, tabSize, "tabSize event setting"); |
|
71 is(ev.value, 1, "tabSize event value"); |
|
72 is(ev.setting.value, 1, "tabSize event setting value"); |
|
73 } |
|
74 tabSize.onChange.add(tabSizeCheck); |
|
75 tabSize.value = 1; |
|
76 is(tabSize.value, 1, "tabSize change"); |
|
77 |
|
78 function remoteHostCheck(ev) { |
|
79 is(ev.setting, remoteHost, "remoteHost event setting"); |
|
80 is(ev.value, "y.com", "remoteHost event value"); |
|
81 is(ev.setting.value, "y.com", "remoteHost event setting value"); |
|
82 } |
|
83 remoteHost.onChange.add(remoteHostCheck); |
|
84 remoteHost.value = "y.com"; |
|
85 is(remoteHost.value, "y.com", "remoteHost change"); |
|
86 |
|
87 tiltEnabled.onChange.remove(tiltEnabledCheck); |
|
88 tabSize.onChange.remove(tabSizeCheck); |
|
89 remoteHost.onChange.remove(remoteHostCheck); |
|
90 |
|
91 function remoteHostReCheck(ev) { |
|
92 is(ev.setting, remoteHost, "remoteHost event reset"); |
|
93 is(ev.value, null, "remoteHost event revalue"); |
|
94 is(ev.setting.value, null, "remoteHost event setting revalue"); |
|
95 } |
|
96 remoteHost.onChange.add(remoteHostReCheck); |
|
97 |
|
98 tiltEnabled.setDefault(); |
|
99 tabSize.setDefault(); |
|
100 remoteHost.setDefault(); |
|
101 |
|
102 remoteHost.onChange.remove(remoteHostReCheck); |
|
103 |
|
104 is(tiltEnabled.value, tiltEnabledDefault, "tiltEnabled reset"); |
|
105 is(tabSize.value, tabSizeDefault, "tabSize reset"); |
|
106 is(remoteHost.value, remoteHostDefault, "remoteHost reset"); |
|
107 |
|
108 // Cleanup |
|
109 prefBranch.setBoolPref("devtools.tilt.enabled", tiltEnabledOrig); |
|
110 prefBranch.setIntPref("devtools.editor.tabsize", tabSizeOrig); |
|
111 supportsString.data = remoteHostOrig; |
|
112 prefBranch.setComplexValue("devtools.debugger.remote-host", |
|
113 Components.interfaces.nsISupportsString, |
|
114 supportsString); |
|
115 |
|
116 yield helpers.closeTab(options); |
|
117 } |