deno.land / std@0.166.0 / node / _tools / test / parallel / test-whatwg-events-add-event-listener-options-passive.js
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';
const common = require('../common');
// Manually converted from https://github.com/web-platform-tests/wpt/blob/master/dom/events/AddEventListenerOptions-passive.html// in order to define the `document` ourselves
const { fail, ok, strictEqual} = require('assert');
{ const document = new EventTarget(); let supportsPassive = false; const query_options = { get passive() { supportsPassive = true; return false; }, get dummy() { fail('dummy value getter invoked'); return false; } };
document.addEventListener('test_event', null, query_options); ok(supportsPassive);
supportsPassive = false; document.removeEventListener('test_event', null, query_options); strictEqual(supportsPassive, false);}{ function testPassiveValue(optionsValue, expectedDefaultPrevented) { const document = new EventTarget(); let defaultPrevented; function handler(e) { if (e.defaultPrevented) { fail('Event prematurely marked defaultPrevented'); } e.preventDefault(); defaultPrevented = e.defaultPrevented; } document.addEventListener('test', handler, optionsValue); // TODO the WHATWG test is more extensive here and tests dispatching on // document.body, if we ever support getParent we should amend this const ev = new Event('test', { bubbles: true, cancelable: true }); const uncanceled = document.dispatchEvent(ev);
strictEqual(defaultPrevented, expectedDefaultPrevented); strictEqual(uncanceled, !expectedDefaultPrevented);
document.removeEventListener('test', handler, optionsValue); } testPassiveValue(undefined, true); testPassiveValue({}, true); testPassiveValue({ passive: false }, true);
common.skip('TODO: passive listeners is still broken'); testPassiveValue({ passive: 1 }, false); testPassiveValue({ passive: true }, false); testPassiveValue({ passive: 0 }, true);}
Version Info