Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/shadow-dom/events-related-target-scoped.html |
| diff --git a/third_party/WebKit/LayoutTests/shadow-dom/events-related-target-scoped.html b/third_party/WebKit/LayoutTests/shadow-dom/events-related-target-scoped.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d964d247feeeb7e652abfe5b4ca819360bf44d7d |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/shadow-dom/events-related-target-scoped.html |
| @@ -0,0 +1,110 @@ |
| +<!DOCTYPE html> |
| +<script src="../resources/testharness.js"></script> |
| +<script src="../resources/testharnessreport.js"></script> |
| +<script src="../fast/dom/shadow/resources/shadow-dom.js"></script> |
| + |
| +<div id="log"></div> |
| +<div id="sandbox"> |
| + <div id = "host"> |
| + <template> |
| + <input id="target1"></input> |
| + <input id="target2"></input> |
| + <input id="target3"></input> |
| + <input id="target4"></input> |
| + </template> |
| + </div> |
| +</div> |
| + |
| +<script> |
| + |
| +function moveMouseOver(element) |
| +{ |
| + if (!window.eventSender || !window.internals) |
| + return; |
| + |
| + var defaultPaddingSize = 20; |
| + var x = element.offsetLeft + element.offsetWidth / 2; |
| + var y; |
| + if (element.hasChildNodes() || window.internals.shadowRoot(element)) |
| + y = element.offsetTop + defaultPaddingSize; |
| + else |
| + y = element.offsetTop + element.offsetHeight / 2; |
| + eventSender.mouseMoveTo(x, y); |
| +} |
| + |
| +var sandbox = document.getElementById('sandbox'); |
| +convertTemplatesToShadowRootsWithin(sandbox); |
| +var target1 = getNodeInComposedTree('host/target1'); |
| +var target2 = getNodeInComposedTree('host/target2'); |
| +var target3 = getNodeInComposedTree('host/target3'); |
| +var target4 = getNodeInComposedTree('host/target4'); |
| + |
| +async_test(function(t) { |
| + target1.onfocus = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, null); |
| + assert_false(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + target1.focus(); |
| +}, 'Trusted events should have relatedTargetScoped set to false by default.'); |
| + |
| +async_test(function(t) { |
|
hayato
2016/03/18 06:26:52
It looks that this test is assuming that target1 i
yuzuchan
2016/03/18 07:20:15
Thanks for the comment, done.
|
| + target2.onfocus = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, target1); |
| + assert_true(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + target2.focus(); |
| +}, 'Trusted focus events with a related target should have relatedTargetScoped true.'); |
| + |
| +async_test(function(t) { |
| + target1.onmouseenter = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, null); |
| + assert_false(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + moveMouseOver(target1); |
| +}, 'Trusted mouse events without a related target should have relatedTargetScoped set to false.'); |
| + |
| +async_test(function(t) { |
| + target2.onmouseenter = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, target1); |
| + assert_true(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + moveMouseOver(target2); |
| +}, 'Trusted mouse events with a related target should have relatedTargetScoped true.'); |
| + |
| +async_test(function(t) { |
| + var userFocus1 = new FocusEvent('focus', { relatedTarget: target4 }); |
| + target3.onfocus = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, target4); |
| + assert_false(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + target3.dispatchEvent(userFocus1); |
| +}, 'Untrusted events should have relatedTargetScoped set to false by default.'); |
| + |
| +async_test(function(t) { |
| + var userFocus2 = new FocusEvent('focus', { relatedTarget: target3, relatedTargetScoped: true }); |
| + target4.onfocus = function(e) { |
| + t.step(function() { |
| + assert_equals(e.relatedTarget, target3); |
| + assert_true(e.relatedTargetScoped); |
| + t.done(); |
| + }); |
| + }; |
| + target4.dispatchEvent(userFocus2); |
| +}, 'Trusted focus events with a related target should have relatedTargetScoped true.'); |
| + |
| +</script> |