Changeset 248647 in webkit


Ignore:
Timestamp:
Aug 13, 2019 5:29:19 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Re-sync web-platform-tests/dom/events from upstream
https://bugs.webkit.org/show_bug.cgi?id=200592

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-13
Reviewed by Ryosuke Niwa.

Re-sync web-platform-tests/dom/events from upstream 1e6fef09eae3.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/dom/events/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • tests-options.json:
Location:
trunk/LayoutTests
Files:
24 added
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r248640 r248647  
     12019-08-13  Alexey Shvayka  <shvaikalesh@gmail.com>
     2
     3        Re-sync web-platform-tests/dom/events from upstream
     4        https://bugs.webkit.org/show_bug.cgi?id=200592
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        Re-sync web-platform-tests/dom/events from upstream 1e6fef09eae3.
     9
     10        * TestExpectations:
     11        * platform/ios/TestExpectations:
     12        * platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
     13        * tests-options.json:
     14
    1152019-08-13  John Wilander  <wilander@apple.com>
    216
  • trunk/LayoutTests/TestExpectations

    r248404 r248647  
    655655
    656656# Only supported on iOS
     657imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.html [ Skip ]
    657658imported/w3c/web-platform-tests/pointerevents [ Skip ]
    658659pointerevents [ Skip ]
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r248404 r248647  
     12019-08-13  Alexey Shvayka  <shvaikalesh@gmail.com>
     2
     3        Re-sync web-platform-tests/dom/events from upstream
     4        https://bugs.webkit.org/show_bug.cgi?id=200592
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        Re-sync web-platform-tests/dom/events from upstream 1e6fef09eae3.
     9
     10        * resources/import-expectations.json:
     11        * web-platform-tests/dom/events/*: Updated.
     12
    1132019-08-08  Rob Buis  <rbuis@igalia.com>
    214
  • trunk/LayoutTests/imported/w3c/resources/import-expectations.json

    r248404 r248647  
    9393    "web-platform-tests/custom-elements/v0": "skip",
    9494    "web-platform-tests/dom": "import",
     95    "web-platform-tests/dom/events": "import",
     96    "web-platform-tests/dom/events/scrolling": "skip",
    9597    "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html": "skip",
    9698    "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg": "skip",
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html

    r230664 r248647  
    4141}, "preventDefault() should change defaultPrevented if cancelable is true.");
    4242test(function() {
     43  ev.initEvent("foo", true, true);
    4344  assert_equals(ev.cancelable, true, "cancelable (before)");
    4445  ev.returnValue = false;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html

    r230664 r248647  
    7575}, "pick the first with activation behavior <input type=checkbox>")
    7676
    77 var globalCounter = 0 // sorry
    7877async_test(function(t) { // as above with <a>
    79   var i = 0
     78  window.hrefComplete = t.step_func(function(a) {
     79    assert_equals(a, 'child');
     80    t.done();
     81  });
    8082  var link = document.createElement("a")
    81   link.href = "javascript:(function(){globalCounter--})()" // must not be triggered
     83  link.href = "javascript:hrefComplete('link')" // must not be triggered
    8284  dump.appendChild(link)
    8385  var child = link.appendChild(document.createElement("a"))
    84   child.href = "javascript:(function(){globalCounter++})()"
     86  child.href = "javascript:hrefComplete('child')"
    8587  child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
    86   assert_equals(globalCounter, 1)
    87   t.done()
    8888}, "pick the first with activation behavior <a href>")
    8989
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed-expected.txt

    r236002 r248647  
    11
    2 FAIL  Dispatch additional events inside an event listener  assert_array_equals: actual_targets lengths differ, expected 16 got 17
     2PASS  Dispatch additional events inside an event listener 
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html

    r217225 r248647  
    2121
    2222<script>
    23 async_test(function() {
     23test(function() {
    2424  var event_type = "bar";
    2525  var target = document.getElementById("target");
     
    4040    target,
    4141    target,
     42    target, // The additional listener for target runs as we copy its listeners twice
    4243    parent,
    4344    tbody,
     
    4849    window
    4950  ];
    50   var expected_listeners = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
     51  var expected_listeners = [0,0,0,0,0,0,0,0,1,3,1,1,1,1,1,1,1];
    5152
    5253  var actual_targets = [], actual_listeners = [];
     
    8788  assert_array_equals(actual_targets, expected_targets, "actual_targets");
    8889  assert_array_equals(actual_listeners, expected_listeners, "actual_listeners");
    89 
    90   this.done();
    9190});
    9291</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-timestamp-safe-resolution-expected.txt

    r220772 r248647  
    11
    2 PASS Event timestamp should not have a resolution better that 5 microseconds
     2PASS Event timestamp should not have a resolution better than 5 microseconds
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-timestamp-safe-resolution.html

    r223327 r248647  
    4646  const minResolution = estimateMinimumResolution(samples);
    4747  assert_greater_than_equal(minResolution, 5);
    48 }, 'Event timestamp should not have a resolution better that 5 microseconds');
     48}, 'Event timestamp should not have a resolution better than 5 microseconds');
    4949</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent-expected.txt

    r203164 r248647  
     1CONSOLE MESSAGE: line 46: [object Object]
    12
    2 PASS EventListener::handleEvent()
     3PASS calls `handleEvent` method of `EventListener`
     4PASS rethrows errors when getting `handleEvent`
     5PASS performs `Get` every time event is dispatched
     6PASS doesn't call `handleEvent` method on callable `EventListener`
     7FAIL throws if `handleEvent` is falsy and not callable assert_true: expected true got false
     8FAIL throws if `handleEvent` is thruthy and not callable assert_true: expected true got false
    39
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent.html

    r230664 r248647  
    44<script src="/resources/testharness.js"></script>
    55<script src="/resources/testharnessreport.js"></script>
     6<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener">
    67<div id=log></div>
    7 <table id="table" border="1" style="display: none">
    8     <tbody id="table-body">
    9     <tr id="table-row">
    10         <td id="table-cell">Shady Grove</td>
    11         <td>Aeolian</td>
    12     </tr>
    13     <tr id="parent">
    14         <td id="target">Over the river, Charlie</td>
    15         <td>Dorian</td>
    16     </tr>
    17     </tbody>
    18 </table>
    198<script>
     9setup({ allow_uncaught_exception: true });
     10
    2011test(function(t) {
    21     var event = "foo";
    22     var target = document.getElementById("target");
    23 
    24     var event_listener = {
    25         "handleEvent": function(evt) {
     12    var type = "foo";
     13    var target = document.createElement("div");
     14    var eventListener = {
     15        handleEvent: function(evt) {
    2616            var that = this;
    2717            t.step(function() {
    28                 assert_equals(evt.type, event);
     18                assert_equals(evt.type, type);
    2919                assert_equals(evt.target, target);
    3020                assert_equals(evt.srcElement, target);
    31                 assert_equals(that, event_listener);
     21                assert_equals(that, eventListener);
    3222            });
    33         }
     23        },
    3424    };
    3525
    36     var evt = document.createEvent("Event");
    37     evt.initEvent(event, true, true);
     26    target.addEventListener(type, eventListener);
     27    target.dispatchEvent(new Event(type));
     28}, "calls `handleEvent` method of `EventListener`");
    3829
    39     target.addEventListener(event, event_listener, true);
    40     target.dispatchEvent(evt);
    41 });
     30test(function(t) {
     31    var type = "foo";
     32    var target = document.createElement("div");
     33    var thrownError = { name: "test" };
     34    var uncaughtError;
     35    var errorHandler = function(event) {
     36        uncaughtError = event.error;
     37    };
     38
     39    window.addEventListener("error", errorHandler);
     40    t.add_cleanup(function() {
     41        window.removeEventListener("error", errorHandler);
     42    });
     43
     44    target.addEventListener(type, {
     45        get handleEvent() {
     46            throw thrownError;
     47        },
     48    });
     49
     50    target.dispatchEvent(new Event(type));
     51    assert_equals(thrownError, uncaughtError);
     52}, "rethrows errors when getting `handleEvent`");
     53
     54test(function(t) {
     55    var type = "foo";
     56    var target = document.createElement("div");
     57    var calls = 0;
     58
     59    target.addEventListener(type, {
     60        get handleEvent() {
     61            calls++;
     62            return function() {};
     63        },
     64    });
     65
     66    assert_equals(calls, 0);
     67    target.dispatchEvent(new Event(type));
     68    target.dispatchEvent(new Event(type));
     69    assert_equals(calls, 2);
     70}, "performs `Get` every time event is dispatched");
     71
     72test(function(t) {
     73    var type = "foo";
     74    var target = document.createElement("div");
     75    var calls = 0;
     76    var eventListener = function() { calls++; };
     77    eventListener.handleEvent = t.unreached_func("`handleEvent` method should not be called on functions");
     78
     79    target.addEventListener(type, eventListener);
     80    target.dispatchEvent(new Event(type));
     81    assert_equals(calls, 1);
     82}, "doesn't call `handleEvent` method on callable `EventListener`");
     83
     84test(function(t) {
     85    var type = "foo";
     86    var target = document.createElement("div");
     87    var uncaughtError;
     88    var errorHandler = function(event) {
     89        uncaughtError = event.error;
     90    };
     91
     92    window.addEventListener("error", errorHandler);
     93    t.add_cleanup(function() {
     94        window.removeEventListener("error", errorHandler);
     95    });
     96
     97    target.addEventListener(type, {
     98        handleEvent: null,
     99    });
     100
     101    target.dispatchEvent(new Event(type));
     102    assert_true(uncaughtError instanceof TypeError);
     103}, "throws if `handleEvent` is falsy and not callable");
     104
     105test(function(t) {
     106    var type = "foo";
     107    var target = document.createElement("div");
     108    var uncaughtError;
     109    var errorHandler = function(event) {
     110        uncaughtError = event.error;
     111    };
     112
     113    window.addEventListener("error", errorHandler);
     114    t.add_cleanup(function() {
     115        window.removeEventListener("error", errorHandler);
     116    });
     117
     118    target.addEventListener(type, {
     119        handleEvent: 1,
     120    });
     121
     122    target.dispatchEvent(new Event(type));
     123    assert_true(uncaughtError instanceof TypeError);
     124}, "throws if `handleEvent` is thruthy and not callable");
    42125</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-incumbent-global-subsubframe.sub.html

    r203164 r248647  
    1212        {
    1313          actual: e.origin,
    14           expected: "{{location[scheme]}}://{{domains[www1]}}:{{ports[http][0]}}",
     14          expected: parent.location.origin,
    1515          reason: "Incumbent should have been the caller of addEventListener()"
    1616        },
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt

    r236002 r248647  
    2626PASS Exceptions from event listeners must not be propagated.
    2727PASS Event listeners added during dispatch should be called
    28 FAIL Event listeners should be called in order of addition assert_array_equals: property 1, expected 2 but got 3
     28PASS Capturing event listeners should be called before non-capturing ones
    2929
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html

    r217225 r248647  
    9999  }), true)
    100100  b.dispatchEvent(new Event("x"))
    101   assert_array_equals(results, [1, 2, 3])
     101  assert_array_equals(results, [1, 3, 2])
    102102  this.done()
    103 }, "Event listeners should be called in order of addition")
     103}, "Capturing event listeners should be called before non-capturing ones")
    104104</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-extra.window.js

    r233489 r248647  
    5757  }));
    5858  child.addEventListener("hi", t.step_func(e => {
    59     assert_equals(window.event, e);
     59    assert_equals(window.event, undefined);
    6060    assert_equals(counter++, 2);
    6161  }));
    6262  furtherChild.addEventListener("hi", t.step_func(e => {
    6363    host.appendChild(child);
    64     assert_equals(window.event, e);
     64    assert_equals(window.event, undefined);
    6565    assert_equals(counter++, 0);
    6666  }));
    6767  furtherChild.addEventListener("hi", t.step_func(e => {
    68     assert_equals(window.event, e);
     68    assert_equals(window.event, undefined);
    6969    assert_equals(counter++, 1);
    7070  }));
     
    7676  const frame = document.body.appendChild(document.createElement("iframe"));
    7777  frame.src = "resources/event-global-extra-frame.html";
    78   frame.onload = t.step_func_done(() => {
     78  frame.onload = t.step_func_done((load_event) => {
    7979    const event = new Event("hi");
    8080    document.addEventListener("hi", frame.contentWindow.listener); // listener intentionally not wrapped in t.step_func
     
    8686    assert_equals(frameState.event, event);
    8787    assert_equals(frameState.windowEvent, event);
    88     assert_equals(frameState.parentEvent, undefined);
     88    assert_equals(frameState.parentEvent, load_event);
    8989  });
    9090}, "Listener from a different global");
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log

    r233489 r248647  
    2929/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-detached-click.html
    3030/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html
     31/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-listener-order.window.js
    3132/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-multiple-cancelBubble.html
    3233/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html
    3334/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture.html
     35/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html
    3436/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-order.html
    3537/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-other-document.html
     
    4244/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-init-while-dispatching.html
    4345/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent.html
     46/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-isTrusted.any.js
    4447/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation.html
    4548/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-returnValue.html
     
    4952/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty.html
    5053/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type.html
     54/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-addEventListener.sub.window.js
    5155/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent.html
    5256/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html
     
    6266/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html
    6367/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html
     68/LayoutTests/imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.html
    6469/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-disabled-dynamic.html
    6570/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-extra.window.js
    6671/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global.html
    6772/LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global.worker.js
     73/LayoutTests/imported/w3c/web-platform-tests/dom/events/legacy-pre-activation-behavior.window.js
    6874/LayoutTests/imported/w3c/web-platform-tests/dom/events/relatedTarget.window.js
     75/LayoutTests/imported/w3c/web-platform-tests/dom/events/shadow-relatedTarget.html
  • trunk/LayoutTests/platform/ios/TestExpectations

    r248638 r248647  
    2121http/tests/preload/viewport [ Pass ]
    2222http/tests/gzip-content-encoding [ Pass ]
     23
     24imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.html [ Pass ]
    2325
    2426#//////////////////////////////////////////////////////////////////////////////////////////
  • trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt

    r236364 r248647  
    2626PASS Exceptions from event listeners must not be propagated.
    2727PASS Event listeners added during dispatch should be called
    28 FAIL Event listeners should be called in order of addition assert_array_equals: property 1, expected 2 but got 3
     28PASS Capturing event listeners should be called before non-capturing ones
    2929
  • trunk/LayoutTests/tests-options.json

    r247866 r248647  
    492492        "slow"
    493493    ],
     494    "imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html": [
     495        "slow"
     496    ],
    494497    "imported/w3c/web-platform-tests/dom/nodes/Document-characterSet-normalization.html": [
    495498        "slow"
Note: See TracChangeset for help on using the changeset viewer.