Expose iPhone playback controls
This commit is contained in:
@@ -41,6 +41,19 @@ final class PlaybackQueueTests: XCTestCase {
|
||||
XCTAssertEqual(queue.currentTrackID, "c")
|
||||
}
|
||||
|
||||
func testEnablingShuffleKeepsCurrentTrackSelectedAndAtQueueFront() {
|
||||
var queue = PlaybackQueue(trackIDs: ["a", "b", "c", "d"])
|
||||
queue.selectTrack("c")
|
||||
|
||||
queue.setShuffleEnabled(true)
|
||||
|
||||
XCTAssertTrue(queue.isShuffleEnabled)
|
||||
XCTAssertEqual(queue.currentTrackID, "c")
|
||||
XCTAssertEqual(queue.queuedTrackIDs.first, "c")
|
||||
XCTAssertEqual(Set(queue.queuedTrackIDs), Set(["a", "b", "c", "d"]))
|
||||
XCTAssertEqual(Set(queue.queuedTrackIDs).count, 4)
|
||||
}
|
||||
|
||||
func testRepeatAllWrapsAroundQueueBoundaries() {
|
||||
var queue = PlaybackQueue(trackIDs: ["a", "b", "c"])
|
||||
queue.selectTrack("c")
|
||||
@@ -63,6 +76,21 @@ final class PlaybackQueueTests: XCTestCase {
|
||||
XCTAssertEqual(queue.moveToPreviousTrack(), "b")
|
||||
}
|
||||
|
||||
func testCycleRepeatModeUsesOffOneAllOrder() {
|
||||
var queue = PlaybackQueue(trackIDs: ["a", "b"])
|
||||
|
||||
XCTAssertEqual(queue.repeatMode, .off)
|
||||
|
||||
queue.cycleRepeatMode()
|
||||
XCTAssertEqual(queue.repeatMode, .one)
|
||||
|
||||
queue.cycleRepeatMode()
|
||||
XCTAssertEqual(queue.repeatMode, .all)
|
||||
|
||||
queue.cycleRepeatMode()
|
||||
XCTAssertEqual(queue.repeatMode, .off)
|
||||
}
|
||||
|
||||
func testReplacingTrackIDsDropsRemovedTracksFromQueue() {
|
||||
var queue = PlaybackQueue(
|
||||
trackIDs: ["a", "b", "c"],
|
||||
|
||||
Reference in New Issue
Block a user