test-003.html (1875B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Shadow DOM Test: A_05_03_03</title> 5 <link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> 6 <link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#retargeting-focus-events"> 7 <meta name="assert" content="Retargeting focus events:The focus event must be treated in the same way as events with a relatedTarget, where the corresponding node that is losing focus as a result of target gaining focus or the node that is gaining focus"> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="../../../../html/resources/common.js"></script> 11 <script src="../../../resources/shadow-dom-utils.js"></script> 12 </head> 13 <body> 14 <div id="log"></div> 15 <script> 16 //test focus event 17 var A_05_03_03_T01 = async_test('A_05_03_03_T01'); 18 19 20 A_05_03_03_T01.step(unit(function (ctx) { 21 22 var d = newRenderedHTMLDocument(ctx); 23 24 var invoked = false; 25 26 var roots = createTestMediaPlayer(d); 27 28 d.querySelector('#outside-control').focus(); 29 30 //expected result of what relative target should be see 31 //see at http://www.w3.org/TR/shadow-dom/#event-retargeting-example 32 33 //For #volume-slider relative target is #volume-slider 34 roots.playerShadowRoot.querySelector('.volume-slider').addEventListener('focus', 35 A_05_03_03_T01.step_func(function(event) { 36 invoked = true; 37 assert_equals(event.target.getAttribute('id'), 'volume-slider', 38 'Wrong target'); 39 }), false); 40 41 roots.playerShadowRoot.querySelector('.volume-slider').focus(); 42 43 assert_true(invoked, 'Event listener was not invoked'); 44 45 A_05_03_03_T01.done(); 46 })); 47 48 49 //TODO (sgrekhov) add test for the case when related target differs from the 50 //node on which event listener is invoked 51 </script> 52 </body> 53 </html>