From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../shared/test/browser_filter-presets-01.js | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 devtools/client/shared/test/browser_filter-presets-01.js (limited to 'devtools/client/shared/test/browser_filter-presets-01.js') diff --git a/devtools/client/shared/test/browser_filter-presets-01.js b/devtools/client/shared/test/browser_filter-presets-01.js new file mode 100644 index 000000000..859f5f63e --- /dev/null +++ b/devtools/client/shared/test/browser_filter-presets-01.js @@ -0,0 +1,99 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests saving presets + +const {CSSFilterEditorWidget} = require("devtools/client/shared/widgets/FilterWidget"); +const {getClientCssProperties} = require("devtools/shared/fronts/css-properties"); + +const TEST_URI = `data:text/html,
`; + +add_task(function* () { + let [,, doc] = yield createHost("bottom", TEST_URI); + const cssIsValid = getClientCssProperties().getValidityChecker(doc); + + const container = doc.querySelector("#filter-container"); + let widget = new CSSFilterEditorWidget(container, "none", cssIsValid); + // First render + yield widget.once("render"); + + const VALUE = "blur(2px) contrast(150%)"; + const NAME = "Test"; + + yield showFilterPopupPresetsAndCreatePreset(widget, NAME, VALUE); + + let preset = widget.el.querySelector(".preset"); + is(preset.querySelector("label").textContent, NAME, + "Should show preset name correctly"); + is(preset.querySelector("span").textContent, VALUE, + "Should show preset value preview correctly"); + + let list = yield widget.getPresets(); + let input = widget.el.querySelector(".presets-list .footer input"); + let data = list[0]; + + is(data.name, NAME, + "Should add the preset to asyncStorage - name property"); + is(data.value, VALUE, + "Should add the preset to asyncStorage - name property"); + + info("Test overriding preset by using the same name"); + + const VALUE_2 = "saturate(50%) brightness(10%)"; + + widget.setCssValue(VALUE_2); + + yield savePreset(widget); + + is(widget.el.querySelectorAll(".preset").length, 1, + "Should override the preset with the same name - render"); + + list = yield widget.getPresets(); + data = list[0]; + + is(list.length, 1, + "Should override the preset with the same name - asyncStorage"); + + is(data.name, NAME, + "Should override the preset with the same name - prop name"); + is(data.value, VALUE_2, + "Should override the preset with the same name - prop value"); + + yield widget.setPresets([]); + + info("Test saving a preset without name"); + input.value = ""; + + yield savePreset(widget, "preset-save-error"); + + list = yield widget.getPresets(); + is(list.length, 0, + "Should not add a preset without name"); + + info("Test saving a preset without filters"); + + input.value = NAME; + widget.setCssValue("none"); + + yield savePreset(widget, "preset-save-error"); + + list = yield widget.getPresets(); + is(list.length, 0, + "Should not add a preset without filters (value: none)"); +}); + +/** + * Call savePreset on widget and wait for the specified event to emit + * @param {CSSFilterWidget} widget + * @param {string} expectEvent="render" The event to listen on + * @return {Promise} + */ +function savePreset(widget, expectEvent = "render") { + let onEvent = widget.once(expectEvent); + widget._savePreset({ + preventDefault: () => {}, + }); + return onEvent; +} -- cgit v1.2.3