Files
SwiftAudioEx/Example/Tests/AVPlayerObserverTests.swift
T
Jørgen Henrichsen 8b1e57b3c0 Added a Source file for test audio.
Contains the test audio file path, used in all tests.
2018-08-05 10:32:30 +02:00

70 lines
2.1 KiB
Swift

import Quick
import Nimble
import AVFoundation
@testable import SwiftAudio
class AVPlayerObserverTests: QuickSpec, AVPlayerObserverDelegate {
var status: AVPlayerStatus?
var timeControlStatus: AVPlayerTimeControlStatus?
override func spec() {
describe("A player observer") {
var player: AVPlayer!
var observer: AVPlayerObserver!
beforeEach {
player = AVPlayer()
observer = AVPlayerObserver(player: player)
observer.delegate = self
}
context("when observing has started", {
beforeEach {
observer.startObserving()
}
it("should be observing", closure: {
expect(observer.isObserving).toEventually(beTrue())
})
context("when player has started", {
beforeEach {
player.replaceCurrentItem(with: AVPlayerItem(url: URL(fileURLWithPath: Source.path)))
player.play()
}
it("it should update the delegate", closure: {
expect(self.status).toEventuallyNot(beNil())
expect(self.timeControlStatus).toEventuallyNot(beNil())
})
})
context("when observing again", {
beforeEach {
observer.startObserving()
}
it("should be observing", closure: {
expect(observer.isObserving).toEventually(beTrue())
})
})
})
}
}
func player(statusDidChange status: AVPlayerStatus) {
self.status = status
}
func player(didChangeTimeControlStatus status: AVPlayerTimeControlStatus) {
self.timeControlStatus = status
}
}