• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<meta charset=utf-8>
3<title>Event.defaultPrevented is not reset after dispatchEvent()</title>
4<script src="/resources/testharness.js"></script>
5<script src="/resources/testharnessreport.js"></script>
6</head>
7<body>
8<div id=log></div>
9<input id="target" type="hidden" value=""/>
10<script>
11test(function() {
12    var EVENT = "foo";
13    var TARGET = document.getElementById("target");
14    var evt = document.createEvent("Event");
15    evt.initEvent(EVENT, true, true);
16
17    TARGET.addEventListener(EVENT, this.step_func(function(e) {
18        e.preventDefault();
19        assert_true(e.defaultPrevented, "during dispatch");
20    }), true);
21    TARGET.dispatchEvent(evt);
22
23    assert_true(evt.defaultPrevented, "after dispatch");
24    assert_equals(evt.target, TARGET);
25    assert_equals(evt.srcElement, TARGET);
26}, "Default prevention via preventDefault");
27
28test(function() {
29    var EVENT = "foo";
30    var TARGET = document.getElementById("target");
31    var evt = document.createEvent("Event");
32    evt.initEvent(EVENT, true, true);
33
34    TARGET.addEventListener(EVENT, this.step_func(function(e) {
35        e.returnValue = false;
36        assert_true(e.defaultPrevented, "during dispatch");
37    }), true);
38    TARGET.dispatchEvent(evt);
39
40    assert_true(evt.defaultPrevented, "after dispatch");
41    assert_equals(evt.target, TARGET);
42    assert_equals(evt.srcElement, TARGET);
43}, "Default prevention via returnValue");
44</script>
45