34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {Injectable} from '@angular/core';
 | 
						|
import {Animation} from '../src/animate/animation';
 | 
						|
import {CssAnimationOptions} from '../src/animate/css_animation_options';
 | 
						|
import {BrowserDetails} from '../src/animate/browser_details';
 | 
						|
import {AnimationBuilder} from '../src/animate/animation_builder';
 | 
						|
import {CssAnimationBuilder} from '../src/animate/css_animation_builder';
 | 
						|
 | 
						|
@Injectable()
 | 
						|
export class MockAnimationBuilder extends AnimationBuilder {
 | 
						|
  constructor() { super(null); }
 | 
						|
  css(): CssAnimationBuilder { return new MockCssAnimationBuilder(); }
 | 
						|
}
 | 
						|
 | 
						|
class MockCssAnimationBuilder extends CssAnimationBuilder {
 | 
						|
  constructor() { super(null); }
 | 
						|
  start(element: HTMLElement): Animation { return new MockAnimation(element, this.data); }
 | 
						|
}
 | 
						|
 | 
						|
class MockBrowserAbstraction extends BrowserDetails {
 | 
						|
  doesElapsedTimeIncludesDelay(): void { this.elapsedTimeIncludesDelay = false; }
 | 
						|
}
 | 
						|
 | 
						|
class MockAnimation extends Animation {
 | 
						|
  private _callback: Function;
 | 
						|
  constructor(element: HTMLElement, data: CssAnimationOptions) {
 | 
						|
    super(element, data, new MockBrowserAbstraction());
 | 
						|
  }
 | 
						|
  wait(callback: Function) { this._callback = callback; }
 | 
						|
  flush() {
 | 
						|
    this._callback(0);
 | 
						|
    this._callback = null;
 | 
						|
  }
 | 
						|
}
 |