| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src='../resources/testharness.js'></script> | 2 <script src='../resources/testharness.js'></script> |
| 3 <script src='../resources/testharnessreport.js'></script> | 3 <script src='../resources/testharnessreport.js'></script> |
| 4 <script src='resources/shadow-dom.js'></script> | 4 <script src='resources/shadow-dom.js'></script> |
| 5 <div id='d1'> | 5 <div id='d1'> |
| 6 <template data-mode='open' data-expose-as='d1_shadow'> | 6 <template data-mode='open' data-expose-as='d1_shadow'> |
| 7 <div id='d1-d1'> | 7 <div id='d1-d1'> |
| 8 <template data-mode='open' data-expose-as='d1_d1_shadow'> | 8 <template data-mode='open' data-expose-as='d1_d1_shadow'> |
| 9 <slot name='d1-d1-s1'></slot> | 9 <slot name='d1-d1-s1'></slot> |
| 10 </template> | 10 </template> |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); | 31 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); |
| 32 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2]); | 32 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2]); |
| 33 | 33 |
| 34 d1_s1.addEventListener('slotchange', (e) => { | 34 d1_s1.addEventListener('slotchange', (e) => { |
| 35 test.step(() => { | 35 test.step(() => { |
| 36 count_for_d1_s1++; | 36 count_for_d1_s1++; |
| 37 if (count_for_d1_s1 == 1) { | 37 if (count_for_d1_s1 == 1) { |
| 38 assert_equals(e.target, d1_s1); | 38 assert_equals(e.target, d1_s1); |
| 39 assert_array_equals(d1_s1.assignedNodes(), [d2, d3]); | 39 assert_array_equals(d1_s1.assignedNodes(), [d2, d3]); |
| 40 assert_array_equals(d1_s1.assignedNodes({'flatten': true}), [d2, d3]); | 40 assert_array_equals(d1_s1.assignedNodes({'flatten': true}), [d2, d3]); |
| 41 assert_array_equals(e.scoped, true); | |
| 42 } else if (count_for_d1_s1 == 2) { | 41 } else if (count_for_d1_s1 == 2) { |
| 43 assert_equals(e.target, d1_s1); | 42 assert_equals(e.target, d1_s1); |
| 44 assert_array_equals(d1_s1.assignedNodes(), [d2]); | 43 assert_array_equals(d1_s1.assignedNodes(), [d2]); |
| 45 assert_array_equals(d1_s1.assignedNodes({'flatten': true}), [d2]); | 44 assert_array_equals(d1_s1.assignedNodes({'flatten': true}), [d2]); |
| 46 assert_array_equals(e.scoped, true); | |
| 47 test.done(); | 45 test.done(); |
| 48 } | 46 } |
| 49 }); | 47 }); |
| 50 }); | 48 }); |
| 51 | 49 |
| 52 d1_d1_s1.addEventListener('slotchange', (e) => { | 50 d1_d1_s1.addEventListener('slotchange', (e) => { |
| 53 test.step(() => { | 51 test.step(() => { |
| 54 count_for_d1_d1_s1++; | 52 count_for_d1_d1_s1++; |
| 55 if (count_for_d1_d1_s1 == 1) { | 53 if (count_for_d1_d1_s1 == 1) { |
| 56 assert_equals(e.target, d1_d1_s1); | 54 assert_equals(e.target, d1_d1_s1); |
| 57 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); | 55 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); |
| 58 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2, d3])
; | 56 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2, d3])
; |
| 59 assert_array_equals(e.scoped, true); | |
| 60 } else if (count_for_d1_d1_s1 == 2){ | 57 } else if (count_for_d1_d1_s1 == 2){ |
| 61 assert_equals(e.target, d1_d1_s1); | 58 assert_equals(e.target, d1_d1_s1); |
| 62 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); | 59 assert_array_equals(d1_d1_s1.assignedNodes(), [d1_s1]); |
| 63 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2]); | 60 assert_array_equals(d1_d1_s1.assignedNodes({'flatten': true}), [d2]); |
| 64 assert_array_equals(e.scoped, true); | |
| 65 test.done(); | 61 test.done(); |
| 66 } | 62 } |
| 67 }); | 63 }); |
| 68 }); | 64 }); |
| 69 | 65 |
| 70 const d3 = document.createElement('div'); | 66 const d3 = document.createElement('div'); |
| 71 d3.setAttribute('id', 'd3'); | 67 d3.setAttribute('id', 'd3'); |
| 72 d3.setAttribute('slot', 'd1-s1'); | 68 d3.setAttribute('slot', 'd1-s1'); |
| 73 d1.appendChild(d3); | 69 d1.appendChild(d3); |
| 74 // Different microtask. | 70 // Different microtask. |
| 75 setTimeout(function(){ | 71 setTimeout(function(){ |
| 76 d3.remove(); | 72 d3.remove(); |
| 77 }, 0); | 73 }, 0); |
| 78 | 74 |
| 79 }, "slotchange event should be dispatched for a slot at most once per microtask.
"); | 75 }, "slotchange event should be dispatched for a slot at most once per microtask.
"); |
| 80 </script> | 76 </script> |
| OLD | NEW |