1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/commandline/test/browser_cmd_settings.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,117 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +// Tests that the pref commands work 1.8 + 1.9 +let prefBranch = Cc["@mozilla.org/preferences-service;1"] 1.10 + .getService(Ci.nsIPrefService).getBranch(null) 1.11 + .QueryInterface(Ci.nsIPrefBranch2); 1.12 + 1.13 +let supportsString = Cc["@mozilla.org/supports-string;1"] 1.14 + .createInstance(Ci.nsISupportsString); 1.15 + 1.16 +let settings = require("gcli/settings"); 1.17 + 1.18 +const TEST_URI = "data:text/html;charset=utf-8,gcli-settings"; 1.19 + 1.20 +function test() { 1.21 + return Task.spawn(spawnTest).then(finish, helpers.handleError); 1.22 +} 1.23 + 1.24 +function spawnTest() { 1.25 + // Setup 1.26 + let options = yield helpers.openTab(TEST_URI); 1.27 + 1.28 + let tiltEnabled = settings.getSetting("devtools.tilt.enabled"); 1.29 + let tabSize = settings.getSetting("devtools.editor.tabsize"); 1.30 + let remoteHost = settings.getSetting("devtools.debugger.remote-host"); 1.31 + 1.32 + let tiltEnabledOrig = prefBranch.getBoolPref("devtools.tilt.enabled"); 1.33 + let tabSizeOrig = prefBranch.getIntPref("devtools.editor.tabsize"); 1.34 + let remoteHostOrig = prefBranch.getComplexValue( 1.35 + "devtools.debugger.remote-host", 1.36 + Components.interfaces.nsISupportsString).data; 1.37 + 1.38 + info("originally: devtools.tilt.enabled = " + tiltEnabledOrig); 1.39 + info("originally: devtools.editor.tabsize = " + tabSizeOrig); 1.40 + info("originally: devtools.debugger.remote-host = " + remoteHostOrig); 1.41 + 1.42 + // Actual tests 1.43 + is(tiltEnabled.value, tiltEnabledOrig, "tiltEnabled default"); 1.44 + is(tabSize.value, tabSizeOrig, "tabSize default"); 1.45 + is(remoteHost.value, remoteHostOrig, "remoteHost default"); 1.46 + 1.47 + tiltEnabled.setDefault(); 1.48 + tabSize.setDefault(); 1.49 + remoteHost.setDefault(); 1.50 + 1.51 + let tiltEnabledDefault = tiltEnabled.value; 1.52 + let tabSizeDefault = tabSize.value; 1.53 + let remoteHostDefault = remoteHost.value; 1.54 + 1.55 + tiltEnabled.value = false; 1.56 + tabSize.value = 42; 1.57 + remoteHost.value = "example.com" 1.58 + 1.59 + is(tiltEnabled.value, false, "tiltEnabled basic"); 1.60 + is(tabSize.value, 42, "tabSize basic"); 1.61 + is(remoteHost.value, "example.com", "remoteHost basic"); 1.62 + 1.63 + function tiltEnabledCheck(ev) { 1.64 + is(ev.setting, tiltEnabled, "tiltEnabled event setting"); 1.65 + is(ev.value, true, "tiltEnabled event value"); 1.66 + is(ev.setting.value, true, "tiltEnabled event setting value"); 1.67 + } 1.68 + tiltEnabled.onChange.add(tiltEnabledCheck); 1.69 + tiltEnabled.value = true; 1.70 + is(tiltEnabled.value, true, "tiltEnabled change"); 1.71 + 1.72 + function tabSizeCheck(ev) { 1.73 + is(ev.setting, tabSize, "tabSize event setting"); 1.74 + is(ev.value, 1, "tabSize event value"); 1.75 + is(ev.setting.value, 1, "tabSize event setting value"); 1.76 + } 1.77 + tabSize.onChange.add(tabSizeCheck); 1.78 + tabSize.value = 1; 1.79 + is(tabSize.value, 1, "tabSize change"); 1.80 + 1.81 + function remoteHostCheck(ev) { 1.82 + is(ev.setting, remoteHost, "remoteHost event setting"); 1.83 + is(ev.value, "y.com", "remoteHost event value"); 1.84 + is(ev.setting.value, "y.com", "remoteHost event setting value"); 1.85 + } 1.86 + remoteHost.onChange.add(remoteHostCheck); 1.87 + remoteHost.value = "y.com"; 1.88 + is(remoteHost.value, "y.com", "remoteHost change"); 1.89 + 1.90 + tiltEnabled.onChange.remove(tiltEnabledCheck); 1.91 + tabSize.onChange.remove(tabSizeCheck); 1.92 + remoteHost.onChange.remove(remoteHostCheck); 1.93 + 1.94 + function remoteHostReCheck(ev) { 1.95 + is(ev.setting, remoteHost, "remoteHost event reset"); 1.96 + is(ev.value, null, "remoteHost event revalue"); 1.97 + is(ev.setting.value, null, "remoteHost event setting revalue"); 1.98 + } 1.99 + remoteHost.onChange.add(remoteHostReCheck); 1.100 + 1.101 + tiltEnabled.setDefault(); 1.102 + tabSize.setDefault(); 1.103 + remoteHost.setDefault(); 1.104 + 1.105 + remoteHost.onChange.remove(remoteHostReCheck); 1.106 + 1.107 + is(tiltEnabled.value, tiltEnabledDefault, "tiltEnabled reset"); 1.108 + is(tabSize.value, tabSizeDefault, "tabSize reset"); 1.109 + is(remoteHost.value, remoteHostDefault, "remoteHost reset"); 1.110 + 1.111 + // Cleanup 1.112 + prefBranch.setBoolPref("devtools.tilt.enabled", tiltEnabledOrig); 1.113 + prefBranch.setIntPref("devtools.editor.tabsize", tabSizeOrig); 1.114 + supportsString.data = remoteHostOrig; 1.115 + prefBranch.setComplexValue("devtools.debugger.remote-host", 1.116 + Components.interfaces.nsISupportsString, 1.117 + supportsString); 1.118 + 1.119 + yield helpers.closeTab(options); 1.120 +}