fix: avoid unbounded HTTP throttling and make buffer readout opt-in
This commit is contained in:
@@ -22,8 +22,20 @@ struct SystemPlaybackChecks {
|
||||
let suite = "terebi.system-playback-check.\(UUID().uuidString)"
|
||||
let defaults = UserDefaults(suiteName: suite)!
|
||||
defer { defaults.removePersistentDomain(forName: suite) }
|
||||
let initialModel = PlayerModel(defaults: defaults)
|
||||
require(!initialModel.showsBufferInfo, "buffer readout defaults off before playback")
|
||||
initialModel.setShowsBufferInfo(true)
|
||||
require(initialModel.showsBufferInfo && initialModel.controlsVisible,
|
||||
"buffer readout can be enabled before playback and reveals controls")
|
||||
initialModel.shutdown()
|
||||
let restoredModel = PlayerModel(defaults: defaults)
|
||||
require(restoredModel.showsBufferInfo, "enabled buffer readout survives model recreation")
|
||||
restoredModel.setShowsBufferInfo(false)
|
||||
require(!restoredModel.showsBufferInfo, "buffer readout can be explicitly disabled")
|
||||
restoredModel.shutdown()
|
||||
let model = PlayerModel(defaults: defaults)
|
||||
defer { model.shutdown() }
|
||||
require(!model.showsBufferInfo, "explicitly disabled buffer readout survives model recreation")
|
||||
model.setVolume(0)
|
||||
let directory = URL(fileURLWithPath: CommandLine.arguments[1], isDirectory: true)
|
||||
let center = MPNowPlayingInfoCenter.default()
|
||||
@@ -73,6 +85,11 @@ struct SystemPlaybackChecks {
|
||||
retainedSnapshot.buffered_end = min(retainedSnapshot.duration, retainedSnapshot.position + 1)
|
||||
model.applyState(retainedSnapshot)
|
||||
require(model.bufferedRange != nil, "loaded selection exposes retained media")
|
||||
let retainedRange = model.bufferedRange
|
||||
model.setShowsBufferInfo(true)
|
||||
require(model.bufferedRange == retainedRange, "enabling buffer readout preserves retained media")
|
||||
model.setShowsBufferInfo(false)
|
||||
require(model.bufferedRange == retainedRange, "disabling buffer readout preserves retained media")
|
||||
model.closeFile()
|
||||
require(model.bufferedRange == nil, "accepted close immediately hides a stale retained-media snapshot")
|
||||
require(center.nowPlayingInfo == nil && center.playbackState == .stopped,
|
||||
|
||||
Reference in New Issue
Block a user