1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Tests the that Filter Editor Tooltip opens by clicking on filter swatches
const TEST_URL = URL_ROOT + "doc_filter.html";
add_task(async function () {
await addTab(TEST_URL);
const { toolbox, view } = await openRuleView();
info("Getting the filter swatch element");
const property = await getRuleViewProperty(view, "body", "filter", {
wait: true,
});
const swatch = property.valueSpan.querySelector(".ruleview-filterswatch");
const filterTooltip = view.tooltips.getTooltip("filterEditor");
// 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.
const onRuleViewChanged = view.once("ruleview-changed");
swatch.click();
await onRuleViewChanged;
ok(true, "The shown event was emitted after clicking on swatch");
ok(
!inplaceEditor(swatch.parentNode),
"The inplace editor wasn't shown as a result of the filter swatch click"
);
info("Get the cssfilter widget instance");
const widget = filterTooltip.widget;
const select = widget.el.querySelector("select");
// Next we will check that interacting with the select does not close the
// filter tooltip.
info("Show the filter select");
const onSelectPopupShown = BrowserTestUtils.waitForSelectPopupShown(window);
EventUtils.synthesizeMouseAtCenter(select, {}, toolbox.win);
const selectPopup = await onSelectPopupShown;
ok(
filterTooltip.tooltip.isVisible(),
"The tooltip was not hidden when opening the select"
);
info("Hide the filter select");
const onSelectPopupHidden = once(selectPopup, "popuphidden");
const blurMenuItem = selectPopup.querySelector("menuitem[label='blur']");
EventUtils.synthesizeMouseAtCenter(blurMenuItem, {}, window);
await onSelectPopupHidden;
await waitFor(() => select.value === "blur");
is(
select.value,
"blur",
"The filter select was updated with the correct value"
);
ok(
filterTooltip.tooltip.isVisible(),
"The tooltip was not hidden when using the select"
);
await hideTooltipAndWaitForRuleViewChanged(filterTooltip, view);
await waitForTick();
});
|