40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * @license
 | 
						|
 * Copyright Google Inc. All Rights Reserved.
 | 
						|
 *
 | 
						|
 * 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[] = [];
 | 
						|
      zone.run(() => {
 | 
						|
        target.addEventListener('click', () => {
 | 
						|
          logs.push(Zone.current.name);
 | 
						|
        });
 | 
						|
      });
 | 
						|
      const event = document.createEvent('MouseEvent');
 | 
						|
      event.initEvent('click', true, true);
 | 
						|
      target.dispatchEvent(event);
 | 
						|
      expect(logs).toEqual(['zone']);
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |