| <!DOCTYPE html> |
| <!-- |
| Distributed under both the W3C Test Suite License [1] and the W3C |
| 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the |
| policies and contribution forms [3]. |
| |
| [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license |
| [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license |
| [3] http://www.w3.org/2004/10/27-testcases |
| --> |
| <html> |
| <head> |
| <title>Shadow DOM Test - event path</title> |
| <link rel="author" title="Kazuhito Hokamura" href="mailto:k.hokamura@gmail.com"> |
| <link rel="help" href="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event"> |
| <meta name="assert" content="Extensions to Event Interface: event.path cross the shadow boundary"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="../../testcommon.js"></script> |
| <link rel="stylesheet" href="/resources/testharness.css"> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| var t = async_test('event.path cross the shadow boundary'); |
| |
| t.step(unit(function(ctx) { |
| var doc = newRenderedHTMLDocument(ctx); |
| var host = doc.createElement('div'); |
| |
| var shadowRoot = host.createShadowRoot(); |
| var child = doc.createElement('div'); |
| |
| doc.body.appendChild(host); |
| shadowRoot.appendChild(child); |
| |
| child.addEventListener('click', t.step_func(function(e) { |
| assert_equals(e.path.length, 7, 'path.length'); |
| assert_equals(e.path[0], child, 'path[0] should be child'); |
| assert_equals(e.path[1], shadowRoot, 'path[1] should be shadowRoot'); |
| assert_equals(e.path[2], host, 'path[2] should be host'); |
| assert_equals(e.path[3], doc.body, 'path[3] should be body'); |
| assert_equals(e.path[4], doc.documentElement, 'path[4] should be html'); |
| assert_equals(e.path[5], doc, 'path[5] should be document'); |
| assert_equals(e.path[6], ctx.iframes[0].contentWindow, 'path[6] should be window'); |
| |
| t.done(); |
| })); |
| |
| var event = doc.createEvent('HTMLEvents'); |
| event.initEvent('click', true, false); |
| child.dispatchEvent(event); |
| })); |
| </script> |
| </body> |
| </html> |