mirror of
https://github.com/pion/mediadevices.git
synced 2025-09-26 20:41:46 +08:00

Changelog: * Better support for non-webrtc use cases * Enable multiple readers * Enhance codec selectors * Update APIs to reflect on the new v3 webrtc design * Cleaner APIs
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package mediadevices
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestOnEnded(t *testing.T) {
|
|
errExpected := errors.New("an error")
|
|
|
|
t.Run("ErrorAfterRegister", func(t *testing.T) {
|
|
tr := &baseTrack{}
|
|
|
|
called := make(chan error, 1)
|
|
tr.OnEnded(func(error) {
|
|
called <- errExpected
|
|
})
|
|
select {
|
|
case <-called:
|
|
t.Error("OnEnded handler is unexpectedly called")
|
|
case <-time.After(10 * time.Millisecond):
|
|
}
|
|
|
|
tr.onError(errExpected)
|
|
|
|
select {
|
|
case err := <-called:
|
|
if err != errExpected {
|
|
t.Errorf("Expected to receive error: %v, got: %v", errExpected, err)
|
|
}
|
|
case <-time.After(10 * time.Millisecond):
|
|
t.Error("Timeout")
|
|
}
|
|
})
|
|
|
|
t.Run("ErrorBeforeRegister", func(t *testing.T) {
|
|
tr := &baseTrack{}
|
|
|
|
tr.onError(errExpected)
|
|
|
|
called := make(chan error, 1)
|
|
tr.OnEnded(func(err error) {
|
|
called <- errExpected
|
|
})
|
|
select {
|
|
case err := <-called:
|
|
if err != errExpected {
|
|
t.Errorf("Expected to receive error: %v, got: %v", errExpected, err)
|
|
}
|
|
case <-time.After(10 * time.Millisecond):
|
|
t.Error("Timeout")
|
|
}
|
|
})
|
|
}
|