diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/inspector/rules/test/browser_rules_edit-value-after-name_03.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | devtools/client/inspector/rules/test/browser_rules_edit-value-after-name_03.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/test/browser_rules_edit-value-after-name_03.js b/devtools/client/inspector/rules/test/browser_rules_edit-value-after-name_03.js new file mode 100644 index 0000000000..c43751da1f --- /dev/null +++ b/devtools/client/inspector/rules/test/browser_rules_edit-value-after-name_03.js @@ -0,0 +1,86 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests that clicking on color swatch while editing the property name +// will show the color tooltip with the correct value. See also Bug 1248274. + +const TEST_URI = ` + <style type="text/css"> + #testid { + color: red; + background: linear-gradient( + 90deg, + rgb(183,222,237), + rgb(33,180,226), + rgb(31,170,217), + rgba(200,170,140,0.5)); + } + </style> + <div id="testid">Styled Node</div> +`; + +add_task(async function () { + await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); + const { inspector, view } = await openRuleView(); + + info("Test click on color swatch while editing property name"); + + await selectNode("#testid", inspector); + const prop = getTextProperty(view, 1, { + background: + "linear-gradient( 90deg, rgb(183,222,237), rgb(33,180,226), rgb(31,170,217), rgba(200,170,140,0.5))", + }); + const propEditor = prop.editor; + + const swatchSpan = propEditor.valueSpan.querySelectorAll( + ".ruleview-colorswatch" + )[3]; + const colorPicker = view.tooltips.getTooltip("colorPicker"); + + info("Focus the background name span"); + await focusEditableField(view, propEditor.nameSpan); + const editor = inplaceEditor(propEditor.doc.activeElement); + + info( + "Modify the background property to background-image to trigger the " + + "property-value-updated event" + ); + editor.input.value = "background-image"; + + const onRuleViewChanged = view.once("ruleview-changed"); + const onPropertyValueUpdate = view.once("property-value-updated"); + const onReady = colorPicker.once("ready"); + + info("blur propEditor.nameSpan by clicking on the color swatch"); + EventUtils.synthesizeMouseAtCenter( + swatchSpan, + {}, + propEditor.doc.defaultView + ); + + info( + "wait for ruleview-changed event to be triggered to prevent pending requests" + ); + await onRuleViewChanged; + + info("wait for the property value to be updated"); + await onPropertyValueUpdate; + + info("wait for the color picker to be shown"); + await onReady; + + ok(true, "The color picker was shown on click of the color swatch"); + ok( + !inplaceEditor(propEditor.valueSpan), + "The inplace editor wasn't shown as a result of the color swatch click" + ); + + const spectrum = colorPicker.spectrum; + is( + `"${spectrum.rgb}"`, + '"200,170,140,0.5"', + "The correct color picker was shown" + ); +}); |