/** Test for Bug 1261673 **/
SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(runTests);
function runTests() {
let input = window.document.getElementById("test_number");
// focus: whether the target input element is focused
// deltaY: deltaY of WheelEvent
// deltaMode: deltaMode of WheelEvent
// valueChanged: expected value changes after input element handled the wheel event
let params = [
{focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: -1},
{focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 1},
{focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_PAGE, valueChanged: -1},
{focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_PAGE, valueChanged: 1},
{focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_PIXEL, valueChanged: 0},
{focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_PIXEL, valueChanged: 0},
{focus: false, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 0},
{focus: false, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 0}
];
let testIdx = 0;
// The expected value of the number field; used in is() check below.
// Initialized to the value that the field starts out with; subtests will
// modify this if they expect to modify the value.
let expectedValue = parseInt(input.value);
// Actual/expected number of mutations to the number field's value:
let actualChangeCount = 0;
let expectedChangeCount = 0;
const prefName = "dom.input.number_and_range_modified_by_mousewheel";
let didFlipPref = false;
let isPrefEnabled = SpecialPowers.getBoolPref(prefName);
is(isPrefEnabled, false, "Expecting pref to be disabled by default"); input.addEventListener("change", () => {
++actualChangeCount;
});
function runNext() {
let p = params[testIdx];
(p.focus) ? input.focus() : input.blur();
if (isPrefEnabled && p.valueChanged != 0) {
expectedChangeCount++;
expectedValue += p.valueChanged;
}
is(actualChangeCount, expectedChangeCount, "UA should fire change event when input's value changed");
if (++testIdx < params.length) {
// More subtests remain; kick off the next one.
runNext();
} else if (!didFlipPref) {
// Reached the end of the subtest list. Flip the pref
// and restart our iteration over the subtests.
await SpecialPowers.pushPrefEnv({
set: [[prefName, !isPrefEnabled]],
});
isPrefEnabled = !isPrefEnabled;
didFlipPref = true;
testIdx = actualChangeCount = expectedChangeCount = 0;
runNext();
} else {
// Reached the end of the subtest list, for both pref settings.
// We're done!
SimpleTest.finish();
}
});
}
runNext();
}
</script>
</body>
</html>
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.