gostations/internal/player/player_test.go

47 lines
1.1 KiB
Go
Raw Normal View History

package player
import (
"testing"
)
func TestIsInstalled(t *testing.T) {
// These should almost always exist in a reasonable env
if !IsInstalled("sh") && !IsInstalled("bash") && !IsInstalled("ls") {
t.Log("warning: no common shell util found; IsInstalled may be too strict in this env")
}
if IsInstalled("definitely-not-a-real-command-xyz123") {
t.Error("nonexistent command reported as installed")
}
}
func TestLegacyPlayer_BadCommand(t *testing.T) {
p := NewLegacy("definitely-not-a-real-command-xyz123")
err := p.Play("http://example.com")
if err != nil {
// Current legacy impl swallows and prints; we accept nil or err
t.Logf("play bad cmd returned err (ok): %v", err)
}
_ = p.Stop()
}
func TestMpvInterfaceAndControls(t *testing.T) {
p := NewMpv("echo") // won't really play, but exercises creation + interface
_ = p.Play("http://example.com/stream")
_ = p.Pause()
_ = p.Resume()
_ = p.Mute()
_ = p.Unmute()
_ = p.Next()
_ = p.Prev()
_ = p.VolumeUp()
_ = p.VolumeDown()
_ = p.Volume()
if p.Metadata() != "" {
t.Log("mpv metadata (may be empty for echo stub)")
}
_ = p.Stop()
// must satisfy Player fully
var _ Player = p
}