Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!doctype html> | |
| 2 <script src="../../../resources/js-test.js"></script> | |
| 3 <script src="resources/shadow-dom.js"></script> | |
| 4 <body></body> | |
| 5 <script> | |
| 6 function prepareTree() { | |
| 7 document.body.appendChild( | |
| 8 createDOM('div', {id: 'host_open'}, | |
| 9 createShadowRoot({mode: 'open'}, | |
|
hayato
2015/08/25 01:34:20
Could you add an id attribute to Shadow Roots so t
kochi
2015/08/25 02:18:30
Done.
| |
| 10 createDOM('div', {id: 'inner_open'}, | |
| 11 createShadowRoot({mode: 'open'}, | |
| 12 createDOM('span', {id: 'target_open', tabindex: '0'}, | |
| 13 document.createTextNode('open'))))))); | |
| 14 | |
| 15 document.body.appendChild( | |
| 16 createDOM('div', {id: 'host_closed'}, | |
| 17 createShadowRoot({mode: 'closed'}, | |
| 18 createDOM('div', {id: 'inner_closed'}, | |
| 19 createShadowRoot({mode: 'open'}, | |
| 20 createDOM('span', {id: 'target_closed', tabindex: '0'}, | |
| 21 document.createTextNode('closed'))))))); | |
| 22 } | |
| 23 | |
| 24 function clickHandler(e) { | |
| 25 eventPath = e.path; | |
| 26 } | |
| 27 | |
| 28 debug('Event.path should include only unclosed elements.'); | |
|
hayato
2015/08/25 01:34:20
s/elements/nodes/
kochi
2015/08/25 02:18:30
Done.
| |
| 29 | |
| 30 prepareTree(); | |
| 31 | |
| 32 var targetOpen = getNodeInTreeOfTrees('host_open/inner_open/target_open'); | |
| 33 var targetClosed = getNodeInTreeOfTrees('host_closed/inner_closed/target_closed' ); | |
| 34 | |
| 35 targetOpen.addEventListener('click', clickHandler, false); | |
| 36 targetClosed.addEventListener('click', clickHandler, false); | |
| 37 | |
| 38 debug("\nDispaching a click event on #target_open, listening on #target_open."); | |
| 39 var eventPath = null; | |
| 40 targetOpen.click(); | |
| 41 // <span>, #shadow, <div>, #shadow, <div>, <body>, <html>, #document, window | |
| 42 shouldBe('eventPath.length', '9'); | |
| 43 debug("\nevent.path for #target_open:"); | |
| 44 debug(dumpNodeList(eventPath)); | |
| 45 | |
| 46 debug("\nDispaching a click event on #target_closed, listening on #target_closed ."); | |
| 47 eventPath = null; | |
| 48 targetClosed.click(); | |
| 49 // Same as open shadow root, as listener is in the closed shadow root. | |
| 50 // <span>, #shadow, <div>, #shadow, <div>, <body>, <html>, #document, window | |
| 51 shouldBe('eventPath.length', '9'); | |
| 52 debug("\nevent.path for #target_closed:"); | |
| 53 debug(dumpNodeList(eventPath)); | |
| 54 | |
| 55 | |
| 56 targetOpen.removeEventListener('click', clickHandler, false); | |
| 57 targetClosed.removeEventListener('click', clickHandler, false); | |
| 58 document.body.addEventListener('click', clickHandler, false); | |
| 59 | |
| 60 debug("\nDispaching a click event on #target_open, listening on document.body.") ; | |
| 61 var eventPath = null; | |
| 62 targetOpen.click(); | |
| 63 // <span>, #shadow, <div>, #shadow, <div>, <body>, <html>, #document, window | |
| 64 shouldBe('eventPath.length', '9'); | |
| 65 debug("\nevent.path for #target_open:"); | |
| 66 debug(dumpNodeList(eventPath)); | |
| 67 | |
| 68 debug("\nDispaching a click event on #target_closed, listening on document.body. "); | |
| 69 eventPath = null; | |
| 70 targetClosed.click(); | |
| 71 // For this test, <span> and closed shadow root are excluded from the open shado w case, | |
| 72 // thus 9 - 4 = 5. | |
| 73 // <div>, <body>, <html>, #document, window | |
| 74 shouldBe('eventPath.length', '5'); | |
| 75 debug("\nevent.path for #target_closed:"); | |
| 76 debug(dumpNodeList(eventPath)); | |
| 77 </script> | |
| OLD | NEW |