/* 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(async function () { const TESTS = [ { name: "hex", result: "#0f0" }, { name: "rgb", result: "rgb(0, 255, 0)" }, ]; for (const { name, result } of TESTS) { info("starting test for " + name); Services.prefs.setCharPref("devtools.defaultColorUnit", name); const tab = await addTab( "data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI) ); const { inspector, view } = await openRuleView(); await selectNode("#testid", inspector); await basicTest(view, name, result); await gDevTools.closeToolboxForTab(tab); gBrowser.removeCurrentTab(); } }); async function basicTest(view, name, result) { const cPicker = view.tooltips.getTooltip("colorPicker"); const swatch = getRuleViewProperty( view, "#testid", "color" ).valueSpan.querySelector(".ruleview-colorswatch"); const onColorPickerReady = cPicker.once("ready"); swatch.click(); await onColorPickerReady; await simulateColorPickerChange(view, cPicker, [0, 255, 0, 1], { selector: "#testid", name: "color", value: "rgb(0, 255, 0)", }); const spectrum = cPicker.spectrum; const onHidden = cPicker.tooltip.once("hidden"); // Validating the color change ends up updating the rule view twice const onRuleViewChanged = waitForNEvents(view, "ruleview-changed", 2); focusAndSendKey(spectrum.element.ownerDocument.defaultView, "RETURN"); await onHidden; await onRuleViewChanged; is( getRuleViewPropertyValue(view, "#testid", "color"), result, "changing the color used the " + name + " unit" ); }