Some checks failed
gobuild / build (push) Failing after 7s
Add Volume() to Player interface and mpvPlayer implementation to expose current volume level. Poll volume periodically and render a vertical bar next to the metadata display during playback. Update UI state and tests to support the new volume indicator.
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
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
|
|
}
|