fix(animations): implement getPosition in browser animation builder (… · angular/angular@5a765f0

1+

/**

2+

* @license

3+

* Copyright Google LLC All Rights Reserved.

4+

*

5+

* Use of this source code is governed by an MIT-style license that can be

6+

* found in the LICENSE file at https://angular.io/license

7+

*/

8+

import {fakeAsync} from '@angular/core/testing';

9+

import {NoopAnimationPlayer} from '../src/animations';

10+

import {AnimationGroupPlayer} from '../src/players/animation_group_player';

11+12+13+

describe('AnimationGroupPlayer', () => {

14+

it('should getPosition of an empty group', fakeAsync(() => {

15+

const players: NoopAnimationPlayer[] = [];

16+

const groupPlayer = new AnimationGroupPlayer(players);

17+

expect(groupPlayer.getPosition()).toBe(0);

18+

}));

19+20+

it('should getPosition of a single player in a group', fakeAsync(() => {

21+

const player = new NoopAnimationPlayer(5, 5);

22+

player.setPosition(0.2);

23+

const players = [player];

24+

const groupPlayer = new AnimationGroupPlayer(players);

25+

expect(groupPlayer.getPosition()).toBe(0.2);

26+

}));

27+28+

it('should getPosition based on the longest player in the group', fakeAsync(() => {

29+

const longestPlayer = new NoopAnimationPlayer(5, 5);

30+

longestPlayer.setPosition(0.2);

31+

const players = [

32+

new NoopAnimationPlayer(1, 4),

33+

new NoopAnimationPlayer(4, 1),

34+

new NoopAnimationPlayer(7, 0),

35+

longestPlayer,

36+

new NoopAnimationPlayer(1, 1),

37+

];

38+

const groupPlayer = new AnimationGroupPlayer(players);

39+

expect(groupPlayer.getPosition()).toBe(0.2);

40+

}));

41+

});