blob: a7263d9253cc4989f3281b876148724d51430e50 [file] [log] [blame]
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart = 2.9
/// @assertion void removeEventListener(String type, EventListener listener,
/// [bool useCapture])
/// Removes an event listener from the EventTarget.
/// @description Checks that that correct listener is removed with useCapture
import "dart:html";
import "../../../Utils/expect.dart";
main() {
var type = 'click';
IFrameElement x = new IFrameElement();
var body = document.body;
body.append(x);
EventListener handler1 = (e) {
Expect.equals(type, e.type);
asyncEnd();
};
var seen = false;
EventListener handler2;
handler2 = (e) {
if (seen) Expect.fail('should be run once');
Expect.equals(type, e.type);
body.removeEventListener(
type, handler2, true); // remove itself when triggered
seen = true;
asyncEnd();
};
body.addEventListener(type, handler1, true);
body.addEventListener(type, handler2, true);
asyncMultiStart(3); // first time two handlers, second time one handler
var event = new Event(type);
x.dispatchEvent(event);
event = new Event(type);
x.dispatchEvent(event);
}