diff options
Diffstat (limited to 'devtools/client/inspector/rules/test/browser_rules_filtereditor-commit-on-ENTER.js')
-rw-r--r-- | devtools/client/inspector/rules/test/browser_rules_filtereditor-commit-on-ENTER.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/devtools/client/inspector/rules/test/browser_rules_filtereditor-commit-on-ENTER.js b/devtools/client/inspector/rules/test/browser_rules_filtereditor-commit-on-ENTER.js new file mode 100644 index 0000000000..7237f0c997 --- /dev/null +++ b/devtools/client/inspector/rules/test/browser_rules_filtereditor-commit-on-ENTER.js @@ -0,0 +1,51 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests the Filter Editor Tooltip committing changes on ENTER + +const TEST_URL = URL_ROOT + "doc_filter.html"; + +add_task(async function () { + await addTab(TEST_URL); + const { view } = await openRuleView(); + + info("Get the filter swatch element"); + const swatch = getRuleViewProperty( + view, + "body", + "filter" + ).valueSpan.querySelector(".ruleview-filterswatch"); + + info("Click on the filter swatch element"); + // Clicking on a cssfilter swatch sets the current filter value in the tooltip + // which, in turn, makes the FilterWidget emit an "updated" event that causes + // the rule-view to refresh. So we must wait for the ruleview-changed event. + let onRuleViewChanged = view.once("ruleview-changed"); + swatch.click(); + await onRuleViewChanged; + + info("Get the cssfilter widget instance"); + const filterTooltip = view.tooltips.getTooltip("filterEditor"); + const widget = filterTooltip.widget; + + info("Set a new value in the cssfilter widget"); + onRuleViewChanged = view.once("ruleview-changed"); + widget.setCssValue("blur(2px)"); + await waitForComputedStyleProperty("body", null, "filter", "blur(2px)"); + await onRuleViewChanged; + ok(true, "Changes previewed on the element"); + + info("Press RETURN to commit changes"); + // Pressing return in the cssfilter tooltip triggeres 2 ruleview-changed + onRuleViewChanged = waitForNEvents(view, "ruleview-changed", 2); + EventUtils.sendKey("RETURN", widget.styleWindow); + await onRuleViewChanged; + + is( + await getComputedStyleProperty("body", null, "filter"), + "blur(2px)", + "The elemenet's filter was kept after RETURN" + ); +}); |