Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/html/webappapis/scripting/events/eventhandler-cancellation.html

Issue 2665073003: Import wpt@cd5cce9780f84cee679919679b8199084ea96d54 (Closed)
Patch Set: Update test expectations and baselines. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <meta charset=utf-8>
3 <title></title>
4 <script src=/resources/testharness.js></script>
5 <script src=/resources/testharnessreport.js></script>
6 <!-- A window to work with that won't trigger the harness exception detection
7 when we fire "error" events at it -->
8 <iframe style="display: none"></iframe>
9 <script>
10 test(function() {
11 var blob = new Blob([""]);
12 // Most targets disabled for now until
13 // https://github.com/whatwg/html/issues/2296 is sorted out.
14 var targets = [ frames[0] /*, document, document.documentElement,
15 new Worker(URL.createObjectURL(blob) */ ];
16 // Event constructors also mostly disabled until
17 // https://github.com/whatwg/html/issues/2296 is sorted out.
18 var eventCtors = [ /* Event, */ ErrorEvent /*, MouseEvent */ ];
19 var values = [true, false, "", "abc", {}, 0, 1, -1, null, undefined,
20 2.5, NaN, Infinity, Symbol.toStringTag ];
21 // Event types also mostly disabled pending
22 // https://github.com/whatwg/html/issues/2296
23 var eventTypes = [ "error"/*, "click", "load"*/ ];
24
25 // Variables that keep track of which subtest we're running.
26 var curTarget;
27 var curValue;
28 var curCtor;
29 var curType;
30
31 function defaultPreventedTester(event) {
32 var expectedValue;
33 if (curTarget === frames[0] &&
34 curCtor === ErrorEvent &&
35 curValue === true &&
36 curType == "error") {
37 expectedValue = true;
38 } else {
39 // This will need adjusting once we allow more targets and event
40 // constructors above!
41 expectedValue = false;
42 }
43 var valueRepr;
44 if (typeof curValue == "string") {
45 valueRepr = '"' + curValue + '"';
46 } else {
47 valueRepr = String(curValue);
48 }
49 test(function() {
50 assert_equals(event.defaultPrevented, expectedValue);
51 }, "Returning " + valueRepr +
52 " from " + String(curTarget) + "'s on" + curType +
53 " event handler while " + curCtor.name +
54 " is firing should" +
55 (expectedValue ? "" : " not") +
56 " cancel the event");
57 }
58
59 for (curCtor of eventCtors) {
60 for (curTarget of targets) {
61 for (curType of eventTypes) {
62 for (curValue of values) {
63 // We have to make sure that defaultPreventedTester is added after
64 // our event handler.
65 curTarget["on" + curType] = function() { return curValue; }
66 curTarget.addEventListener(curType, defaultPreventedTester);
67 var e = new curCtor(curType, { cancelable: true });
68 curTarget.dispatchEvent(e);
69 curTarget["on" + curType] = null;
70 curTarget.removeEventListener(curType, defaultPreventedTester);
71 }
72 }
73 }
74 }
75 }, "event handler cancellation behavior");
76 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698