/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ /* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test that color selection respects the user pref. const TEST_URI = `
Styled Node
`; add_task(function* () { let TESTS = [ {name: "hex", result: "#0f0"}, {name: "rgb", result: "rgb(0, 255, 0)"} ]; for (let {name, result} of TESTS) { info("starting test for " + name); Services.prefs.setCharPref("devtools.defaultColorUnit", name); let tab = yield addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); let {inspector, view} = yield openRuleView(); yield selectNode("#testid", inspector); yield basicTest(view, name, result); let target = TargetFactory.forTab(tab); yield gDevTools.closeToolbox(target); gBrowser.removeCurrentTab(); } }); function* basicTest(view, name, result) { let cPicker = view.tooltips.colorPicker; let swatch = getRuleViewProperty(view, "#testid", "color").valueSpan .querySelector(".ruleview-colorswatch"); let onColorPickerReady = cPicker.once("ready"); swatch.click(); yield onColorPickerReady; yield simulateColorPickerChange(view, cPicker, [0, 255, 0, 1], { selector: "#testid", name: "color", value: "rgb(0, 255, 0)" }); let spectrum = cPicker.spectrum; let onHidden = cPicker.tooltip.once("hidden"); // Validating the color change ends up updating the rule view twice let onRuleViewChanged = waitForNEvents(view, "ruleview-changed", 2); focusAndSendKey(spectrum.element.ownerDocument.defaultView, "RETURN"); yield onHidden; yield onRuleViewChanged; is(getRuleViewPropertyValue(view, "#testid", "color"), result, "changing the color used the " + name + " unit"); }