Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / imported / web-platform-tests / shadow-dom / elements-and-dom-objects / extensions-to-event-interface / event-path-001.html
1 <!DOCTYPE html>
2 <!-- 
3 Distributed under both the W3C Test Suite License [1] and the W3C
4 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
5 policies and contribution forms [3].
6
7 [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
8 [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
9 [3] http://www.w3.org/2004/10/27-testcases
10  -->
11 <html>
12 <head>
13 <title>Shadow DOM Test - event path</title>
14 <link rel="author" title="Kazuhito Hokamura" href="mailto:k.hokamura@gmail.com">
15 <link rel="help" href="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event">
16 <meta name="assert" content="Extensions to Event Interface: event.path cross the shadow boundary">
17 <script src="../../../../../resources/testharness.js"></script>
18 <script src="../../../../../resources/testharnessreport.js"></script>
19 <script src="../../testcommon.js"></script>
20 <link rel="stylesheet" href="../../../../../resources/testharness.css">
21 </head>
22 <body>
23 <div id="log"></div>
24 <script>
25 var t = async_test('event.path cross the shadow boundary');
26
27 t.step(unit(function(ctx) {
28     var doc = newRenderedHTMLDocument(ctx);
29     var host = doc.createElement('div');
30
31     var shadowRoot = host.createShadowRoot();
32     var child = doc.createElement('div');
33
34     doc.body.appendChild(host);
35     shadowRoot.appendChild(child);
36
37     child.addEventListener('click', t.step_func(function(e) {
38         assert_equals(e.path.length, 6, 'path.length');
39         assert_equals(e.path[0], child, 'path[0] should be child');
40         assert_equals(e.path[1], shadowRoot, 'path[1] should be shadowRoot');
41         assert_equals(e.path[2], host, 'path[2] should be host');
42         assert_equals(e.path[3], doc.body, 'path[3] should be body');
43         assert_equals(e.path[4], doc.documentElement, 'path[4] should be html');
44         assert_equals(e.path[5], doc, 'path[5] should be document');
45
46         t.done();
47     }));
48
49     var event = doc.createEvent('HTMLEvents');
50     event.initEvent('click', true, false);
51     child.dispatchEvent(event);
52 }));
53 </script>
54 </body>
55 </html>