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 }