summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface')
-rw-r--r--testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface/event-path-001.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface/event-path-001.html b/testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface/event-path-001.html
new file mode 100644
index 000000000..455ee40c3
--- /dev/null
+++ b/testing/web-platform/tests/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-event-interface/event-path-001.html
@@ -0,0 +1,56 @@
+<!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.composedPath() cross the shadow boundary">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../../../html/resources/common.js"></script>
+<script src="../../../resources/shadow-dom-utils.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+var t = async_test('event.composedPath() cross the shadow boundary');
+
+t.step(unit(function(ctx) {
+ var doc = newRenderedHTMLDocument(ctx);
+ var host = doc.createElement('div');
+
+ var shadowRoot = host.attachShadow({mode: 'open'});
+ var child = doc.createElement('div');
+
+ doc.body.appendChild(host);
+ shadowRoot.appendChild(child);
+
+ child.addEventListener('click', t.step_func(function(e) {
+ assert_equals(e.composedPath().length, 7, 'composedPath().length');
+ assert_equals(e.composedPath()[0], child, 'composedPath()[0] should be child');
+ assert_equals(e.composedPath()[1], shadowRoot, 'composedPath()[1] should be shadowRoot');
+ assert_equals(e.composedPath()[2], host, 'composedPath()[2] should be host');
+ assert_equals(e.composedPath()[3], doc.body, 'composedPath()[3] should be body');
+ assert_equals(e.composedPath()[4], doc.documentElement, 'composedPath()[4] should be html');
+ assert_equals(e.composedPath()[5], doc, 'composedPath()[5] should be document');
+ assert_equals(e.composedPath()[6], ctx.iframes[0].contentWindow, 'composedPath()[6] should be window');
+
+ t.done();
+ }));
+
+ var event = doc.createEvent('HTMLEvents');
+ event.initEvent('click', true, false);
+ child.dispatchEvent(event);
+}));
+</script>
+</body>
+</html>