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;
|
|
}
|
|
}
|