comparison src/DML/VendorAssetsBundle/Resources/assets/jasmine/2.1.3/spec/PlayerSpec.js @ 0:493bcb69166c

added public content
author Daniel Wolff
date Tue, 09 Feb 2016 20:54:02 +0100
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:493bcb69166c
1 describe("Player", function() {
2 var player;
3 var song;
4
5 beforeEach(function() {
6 player = new Player();
7 song = new Song();
8 });
9
10 it("should be able to play a Song", function() {
11 player.play(song);
12 expect(player.currentlyPlayingSong).toEqual(song);
13
14 //demonstrates use of custom matcher
15 expect(player).toBePlaying(song);
16 });
17
18 describe("when song has been paused", function() {
19 beforeEach(function() {
20 player.play(song);
21 player.pause();
22 });
23
24 it("should indicate that the song is currently paused", function() {
25 expect(player.isPlaying).toBeFalsy();
26
27 // demonstrates use of 'not' with a custom matcher
28 expect(player).not.toBePlaying(song);
29 });
30
31 it("should be possible to resume", function() {
32 player.resume();
33 expect(player.isPlaying).toBeTruthy();
34 expect(player.currentlyPlayingSong).toEqual(song);
35 });
36 });
37
38 // demonstrates use of spies to intercept and test method calls
39 it("tells the current song if the user has made it a favorite", function() {
40 spyOn(song, 'persistFavoriteStatus');
41
42 player.play(song);
43 player.makeFavorite();
44
45 expect(song.persistFavoriteStatus).toHaveBeenCalledWith(true);
46 });
47
48 //demonstrates use of expected exceptions
49 describe("#resume", function() {
50 it("should throw an exception if song is already playing", function() {
51 player.play(song);
52
53 expect(function() {
54 player.resume();
55 }).toThrowError("song is already playing");
56 });
57 });
58 });