| 
									
										
										
										
											2019-07-21 19:44:13 +09:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |  * Copyright Google LLC All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2019-07-21 19:44:13 +09:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('shadydom', () => { | 
					
						
							|  |  |  |   const div = document.createElement('div'); | 
					
						
							|  |  |  |   const text = document.createTextNode('text'); | 
					
						
							|  |  |  |   const span = document.createElement('span'); | 
					
						
							|  |  |  |   const fragment = document.createDocumentFragment(); | 
					
						
							|  |  |  |   document.body.appendChild(div); | 
					
						
							|  |  |  |   document.body.appendChild(text); | 
					
						
							|  |  |  |   document.body.appendChild(span); | 
					
						
							|  |  |  |   document.body.appendChild(fragment); | 
					
						
							|  |  |  |   const targets = [ | 
					
						
							|  |  |  |     {name: 'window', target: window}, {name: 'div', target: div}, {name: 'text', target: text}, | 
					
						
							|  |  |  |     {name: 'span', target: span}, {name: 'document', target: document}, | 
					
						
							|  |  |  |     {name: 'fragment', target: fragment} | 
					
						
							|  |  |  |   ]; | 
					
						
							|  |  |  |   targets.forEach((t: any) => { | 
					
						
							|  |  |  |     it(`test for prototype ${t.name}`, () => { | 
					
						
							|  |  |  |       const target = t.target; | 
					
						
							|  |  |  |       const zone = Zone.current.fork({name: 'zone'}); | 
					
						
							|  |  |  |       const logs: string[] = []; | 
					
						
							| 
									
										
										
										
											2020-04-13 16:40:21 -07:00
										 |  |  |       zone.run(() => { | 
					
						
							|  |  |  |         target.addEventListener('click', () => { | 
					
						
							|  |  |  |           logs.push(Zone.current.name); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2019-07-21 19:44:13 +09:00
										 |  |  |       const event = document.createEvent('MouseEvent'); | 
					
						
							|  |  |  |       event.initEvent('click', true, true); | 
					
						
							|  |  |  |       target.dispatchEvent(event); | 
					
						
							|  |  |  |       expect(logs).toEqual(['zone']); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |