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].
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
13 <title>Shadow DOM Test: A_05_05_01</title>
14 <link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
15 <link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#event-dispatch">
16 <meta name="assert" content="Event Dispatch: At the time of event dispatch:The Event target and currentTarget attributes must return the relative target for the node on which event listeners are invoked">
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">
25 var A_05_05_01_T01 = async_test('A_05_05_01_T01');
27 A_05_05_01_T01.step(unit(function (ctx) {
29 var d = newRenderedHTMLDocument(ctx);
33 roots = createTestMediaPlayer(d);
35 //expected result of what relative target should be see
36 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
38 //For #volume-slider-thumb relative target #volume-slider-thumb
39 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').addEventListener('click',
40 A_05_05_01_T01.step_func(function(event) {
42 assert_equals(event.target.getAttribute('id'), 'volume-slider-thumb',
43 'Point 1: Wrong target');
44 assert_equals(event.currentTarget.getAttribute('id'), 'volume-slider-thumb',
45 'Point 1: Wrong currentTarget');
48 var event = d.createEvent('HTMLEvents');
49 event.initEvent ('click', true, false);
50 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
52 assert_true(invoked, 'Event listener was not invoked');
54 A_05_05_01_T01.done();
58 var A_05_05_01_T02 = async_test('A_05_05_01_T02');
60 A_05_05_01_T02.step(unit(function (ctx) {
62 var d = newRenderedHTMLDocument(ctx);
66 roots = createTestMediaPlayer(d);
68 //expected result of what relative target should be see
69 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
71 //For #volume-shadow-root relative target #volume-slider-thumb
72 roots.volumeShadowRoot.addEventListener('click',
73 A_05_05_01_T02.step_func(function(event) {
75 assert_equals(event.target.getAttribute('id'), 'volume-slider-thumb',
77 assert_true(event.currentTarget == roots.volumeShadowRoot,
78 'Wrong currentTarget');
81 var event = d.createEvent('HTMLEvents');
82 event.initEvent ('click', true, false);
83 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
85 assert_true(invoked, 'Event listener was not invoked');
87 A_05_05_01_T02.done();
91 var A_05_05_01_T03 = async_test('A_05_05_01_T03');
93 A_05_05_01_T03.step(unit(function (ctx) {
95 var d = newRenderedHTMLDocument(ctx);
99 roots = createTestMediaPlayer(d);
101 //expected result of what relative target should be see
102 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
104 //For #volume-slider relative target #volume-slider
105 roots.playerShadowRoot.querySelector('#volume-slider').addEventListener('click',
106 A_05_05_01_T03.step_func(function(event) {
108 assert_equals(event.target.getAttribute('id'), 'volume-slider',
110 assert_true(event.currentTarget.getAttribute('id'), 'volume-slider',
111 'Wrong currentTarget');
114 var event = d.createEvent('HTMLEvents');
115 event.initEvent ('click', true, false);
116 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
118 assert_true(invoked, 'Event listener was not invoked');
120 A_05_05_01_T03.done();
125 var A_05_05_01_T04 = async_test('A_05_05_01_T04');
127 A_05_05_01_T04.step(unit(function (ctx) {
129 var d = newRenderedHTMLDocument(ctx);
133 roots = createTestMediaPlayer(d);
135 //expected result of what relative target should be see
136 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
138 //For #volume-slider-container relative target #volume-slider
139 roots.playerShadowRoot.querySelector('#volume-slider-container').addEventListener('click',
140 A_05_05_01_T04.step_func(function(event) {
142 assert_equals(event.target.getAttribute('id'), 'volume-slider',
144 assert_true(event.currentTarget.getAttribute('id'), 'volume-slider',
145 'Wrong currentTarget');
148 var event = d.createEvent('HTMLEvents');
149 event.initEvent ('click', true, false);
150 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
152 assert_true(invoked, 'Event listener was not invoked');
154 A_05_05_01_T04.done();
158 var A_05_05_01_T05 = async_test('A_05_05_01_T05');
160 A_05_05_01_T05.step(unit(function (ctx) {
162 var d = newRenderedHTMLDocument(ctx);
166 roots = createTestMediaPlayer(d);
168 //expected result of what relative target should be see
169 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
171 //For #controls relative target #volume-slider
172 roots.playerShadowRoot.querySelector('#controls').addEventListener('click',
173 A_05_05_01_T05.step_func(function(event) {
175 assert_equals(event.target.getAttribute('id'), 'volume-slider',
177 assert_true(event.currentTarget.getAttribute('id'), 'volume-slider',
178 'Wrong currentTarget');
181 var event = d.createEvent('HTMLEvents');
182 event.initEvent ('click', true, false);
183 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
185 assert_true(invoked, 'Event listener was not invoked');
187 A_05_05_01_T05.done();
191 var A_05_05_01_T06 = async_test('A_05_05_01_T06');
193 A_05_05_01_T06.step(unit(function (ctx) {
195 var d = newRenderedHTMLDocument(ctx);
199 roots = createTestMediaPlayer(d);
201 //expected result of what relative target should be see
202 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
204 //For #player-shadow-root relative target #volume-slider
205 roots.playerShadowRoot.addEventListener('click',
206 A_05_05_01_T06.step_func(function(event) {
208 assert_equals(event.target.getAttribute('id'), 'volume-slider',
210 assert_true(event.currentTarget.getAttribute('id'), 'volume-slider',
211 'Wrong currentTarget');
214 var event = d.createEvent('HTMLEvents');
215 event.initEvent ('click', true, false);
216 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
218 assert_true(invoked, 'Event listener was not invoked');
220 A_05_05_01_T06.done();
225 var A_05_05_01_T07 = async_test('A_05_05_01_T07');
227 A_05_05_01_T07.step(unit(function (ctx) {
229 var d = newRenderedHTMLDocument(ctx);
233 roots = createTestMediaPlayer(d);
235 //expected result of what relative target should be see
236 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example
238 //For #player relative target #player
239 d.querySelector('#player').addEventListener('click',
240 A_05_05_01_T07.step_func(function(event) {
242 assert_equals(event.target.getAttribute('id'), 'player',
244 assert_true(event.currentTarget.getAttribute('id'), 'player',
245 'Wrong currentTarget');
248 var event = d.createEvent('HTMLEvents');
249 event.initEvent ('click', true, false);
250 roots.volumeShadowRoot.querySelector('#volume-slider-thumb').dispatchEvent(event);
252 assert_true(invoked, 'Event listener was not invoked');
254 A_05_05_01_T07.done();