Update the license headers throughout the repository to reference Google LLC rather than Google Inc, for the required license headers. PR Close #37205
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google LLC 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
 | |
|  */
 | |
| 
 | |
| import {ifEnvSupports} from '../test-util';
 | |
| declare const window: any;
 | |
| 
 | |
| describe('requestAnimationFrame', function() {
 | |
|   const functions =
 | |
|       ['requestAnimationFrame', 'webkitRequestAnimationFrame', 'mozRequestAnimationFrame'];
 | |
| 
 | |
|   functions.forEach(function(fnName) {
 | |
|     describe(fnName, ifEnvSupports(fnName, function() {
 | |
|                const originalTimeout: number = (<any>jasmine).DEFAULT_TIMEOUT_INTERVAL;
 | |
|                beforeEach(() => {
 | |
|                  (<any>jasmine).DEFAULT_TIMEOUT_INTERVAL = 10000;
 | |
|                });
 | |
| 
 | |
|                afterEach(() => {
 | |
|                  (<any>jasmine).DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
 | |
|                });
 | |
|                const rAF = window[fnName];
 | |
| 
 | |
|                it('should be tolerant of invalid arguments', function() {
 | |
|                  // rAF throws an error on invalid arguments, so expect that.
 | |
|                  expect(function() {
 | |
|                    rAF(null);
 | |
|                  }).toThrow();
 | |
|                });
 | |
| 
 | |
|                it('should bind to same zone when called recursively', function(done) {
 | |
|                  Zone.current.fork({name: 'TestZone'}).run(() => {
 | |
|                    let frames = 0;
 | |
|                    let previousTimeStamp = 0;
 | |
| 
 | |
|                    function frameCallback(timestamp: number) {
 | |
|                      expect(timestamp).toMatch(/^[\d.]+$/);
 | |
|                      // expect previous <= current
 | |
|                      expect(previousTimeStamp).not.toBeGreaterThan(timestamp);
 | |
|                      previousTimeStamp = timestamp;
 | |
| 
 | |
|                      if (frames++ > 15) {
 | |
|                        (<any>jasmine).DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
 | |
|                        return done();
 | |
|                      }
 | |
|                      rAF(frameCallback);
 | |
|                    }
 | |
| 
 | |
|                    rAF(frameCallback);
 | |
|                  });
 | |
|                });
 | |
|              }));
 | |
|   });
 | |
| });
 |