michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: // Tests that the pref commands work michael@0: michael@0: let prefBranch = Cc["@mozilla.org/preferences-service;1"] michael@0: .getService(Ci.nsIPrefService).getBranch(null) michael@0: .QueryInterface(Ci.nsIPrefBranch2); michael@0: michael@0: let supportsString = Cc["@mozilla.org/supports-string;1"] michael@0: .createInstance(Ci.nsISupportsString); michael@0: michael@0: let settings = require("gcli/settings"); michael@0: michael@0: const TEST_URI = "data:text/html;charset=utf-8,gcli-settings"; michael@0: michael@0: function test() { michael@0: return Task.spawn(spawnTest).then(finish, helpers.handleError); michael@0: } michael@0: michael@0: function spawnTest() { michael@0: // Setup michael@0: let options = yield helpers.openTab(TEST_URI); michael@0: michael@0: let tiltEnabled = settings.getSetting("devtools.tilt.enabled"); michael@0: let tabSize = settings.getSetting("devtools.editor.tabsize"); michael@0: let remoteHost = settings.getSetting("devtools.debugger.remote-host"); michael@0: michael@0: let tiltEnabledOrig = prefBranch.getBoolPref("devtools.tilt.enabled"); michael@0: let tabSizeOrig = prefBranch.getIntPref("devtools.editor.tabsize"); michael@0: let remoteHostOrig = prefBranch.getComplexValue( michael@0: "devtools.debugger.remote-host", michael@0: Components.interfaces.nsISupportsString).data; michael@0: michael@0: info("originally: devtools.tilt.enabled = " + tiltEnabledOrig); michael@0: info("originally: devtools.editor.tabsize = " + tabSizeOrig); michael@0: info("originally: devtools.debugger.remote-host = " + remoteHostOrig); michael@0: michael@0: // Actual tests michael@0: is(tiltEnabled.value, tiltEnabledOrig, "tiltEnabled default"); michael@0: is(tabSize.value, tabSizeOrig, "tabSize default"); michael@0: is(remoteHost.value, remoteHostOrig, "remoteHost default"); michael@0: michael@0: tiltEnabled.setDefault(); michael@0: tabSize.setDefault(); michael@0: remoteHost.setDefault(); michael@0: michael@0: let tiltEnabledDefault = tiltEnabled.value; michael@0: let tabSizeDefault = tabSize.value; michael@0: let remoteHostDefault = remoteHost.value; michael@0: michael@0: tiltEnabled.value = false; michael@0: tabSize.value = 42; michael@0: remoteHost.value = "example.com" michael@0: michael@0: is(tiltEnabled.value, false, "tiltEnabled basic"); michael@0: is(tabSize.value, 42, "tabSize basic"); michael@0: is(remoteHost.value, "example.com", "remoteHost basic"); michael@0: michael@0: function tiltEnabledCheck(ev) { michael@0: is(ev.setting, tiltEnabled, "tiltEnabled event setting"); michael@0: is(ev.value, true, "tiltEnabled event value"); michael@0: is(ev.setting.value, true, "tiltEnabled event setting value"); michael@0: } michael@0: tiltEnabled.onChange.add(tiltEnabledCheck); michael@0: tiltEnabled.value = true; michael@0: is(tiltEnabled.value, true, "tiltEnabled change"); michael@0: michael@0: function tabSizeCheck(ev) { michael@0: is(ev.setting, tabSize, "tabSize event setting"); michael@0: is(ev.value, 1, "tabSize event value"); michael@0: is(ev.setting.value, 1, "tabSize event setting value"); michael@0: } michael@0: tabSize.onChange.add(tabSizeCheck); michael@0: tabSize.value = 1; michael@0: is(tabSize.value, 1, "tabSize change"); michael@0: michael@0: function remoteHostCheck(ev) { michael@0: is(ev.setting, remoteHost, "remoteHost event setting"); michael@0: is(ev.value, "y.com", "remoteHost event value"); michael@0: is(ev.setting.value, "y.com", "remoteHost event setting value"); michael@0: } michael@0: remoteHost.onChange.add(remoteHostCheck); michael@0: remoteHost.value = "y.com"; michael@0: is(remoteHost.value, "y.com", "remoteHost change"); michael@0: michael@0: tiltEnabled.onChange.remove(tiltEnabledCheck); michael@0: tabSize.onChange.remove(tabSizeCheck); michael@0: remoteHost.onChange.remove(remoteHostCheck); michael@0: michael@0: function remoteHostReCheck(ev) { michael@0: is(ev.setting, remoteHost, "remoteHost event reset"); michael@0: is(ev.value, null, "remoteHost event revalue"); michael@0: is(ev.setting.value, null, "remoteHost event setting revalue"); michael@0: } michael@0: remoteHost.onChange.add(remoteHostReCheck); michael@0: michael@0: tiltEnabled.setDefault(); michael@0: tabSize.setDefault(); michael@0: remoteHost.setDefault(); michael@0: michael@0: remoteHost.onChange.remove(remoteHostReCheck); michael@0: michael@0: is(tiltEnabled.value, tiltEnabledDefault, "tiltEnabled reset"); michael@0: is(tabSize.value, tabSizeDefault, "tabSize reset"); michael@0: is(remoteHost.value, remoteHostDefault, "remoteHost reset"); michael@0: michael@0: // Cleanup michael@0: prefBranch.setBoolPref("devtools.tilt.enabled", tiltEnabledOrig); michael@0: prefBranch.setIntPref("devtools.editor.tabsize", tabSizeOrig); michael@0: supportsString.data = remoteHostOrig; michael@0: prefBranch.setComplexValue("devtools.debugger.remote-host", michael@0: Components.interfaces.nsISupportsString, michael@0: supportsString); michael@0: michael@0: yield helpers.closeTab(options); michael@0: }