| | |
| | | } |
| | | } |
| | | |
| | | func TestReleaseTailCaptureDelayDefaultsToZero(t *testing.T) { |
| | | func TestReleaseTailCaptureDelayCanBeDisabledByEngineCapability(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(plainTestEngine{}) |
| | | a.replaceEngine(tailCaptureTestEngine{delay: 0}) |
| | | |
| | | if got := a.releaseTailCaptureDelay(); got != 0 { |
| | | t.Fatalf("releaseTailCaptureDelay() = %v, want 0", got) |
| | | } |
| | | } |
| | | |
| | | func TestReleaseTailCaptureDelayDefaultsToProtectionWindow(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(plainTestEngine{}) |
| | | |
| | | if got := a.releaseTailCaptureDelay(); got != defaultReleaseTailDelay { |
| | | t.Fatalf("releaseTailCaptureDelay() = %v, want %v", got, defaultReleaseTailDelay) |
| | | } |
| | | } |
| | | |
| | | func TestReleaseTailCaptureDelayDisabledWithoutEngine(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(nil) |
| | | |
| | | if got := a.releaseTailCaptureDelay(); got != 0 { |
| | | t.Fatalf("releaseTailCaptureDelay() = %v, want 0 without engine", got) |
| | | } |
| | | } |
| | | |
| | | func TestHoldPreCaptureUsesEngineCapability(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(holdPreCaptureTestEngine{enabled: true}) |
| | | |
| | | if !a.holdPreCaptureEnabled.Load() { |
| | | t.Fatal("hold pre-capture should be enabled by engine capability") |
| | | } |
| | | } |
| | | |
| | | func TestHoldPreCaptureCanBeDisabledByEngineCapability(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(holdPreCaptureTestEngine{enabled: false}) |
| | | |
| | | if a.holdPreCaptureEnabled.Load() { |
| | | t.Fatal("hold pre-capture should respect engine capability false") |
| | | } |
| | | } |
| | | |
| | | func TestHoldPreCaptureDefaultsToTrueForReadyEngine(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(plainTestEngine{}) |
| | | |
| | | if !a.holdPreCaptureEnabled.Load() { |
| | | t.Fatal("hold pre-capture should default to true for ready engines") |
| | | } |
| | | } |
| | | |
| | | func TestHoldPreCaptureDisabledWithoutEngine(t *testing.T) { |
| | | a := &App{} |
| | | a.replaceEngine(nil) |
| | | |
| | | if a.holdPreCaptureEnabled.Load() { |
| | | t.Fatal("hold pre-capture should be disabled without an engine") |
| | | } |
| | | } |
| | | |
| | | func TestShouldStartHoldPreCaptureLocked(t *testing.T) { |
| | | a := &App{} |
| | | a.holdPreCaptureEnabled.Store(true) |
| | | |
| | | if !a.shouldStartHoldPreCaptureLocked() { |
| | | t.Fatal("expected hold pre-capture to start when enabled and idle") |
| | | } |
| | | |
| | | a.isRecording = true |
| | | if a.shouldStartHoldPreCaptureLocked() { |
| | | t.Fatal("should not pre-capture while already recording") |
| | | } |
| | | a.isRecording = false |
| | | |
| | | a.isStoppingRecording = true |
| | | if a.shouldStartHoldPreCaptureLocked() { |
| | | t.Fatal("should not pre-capture while stopping") |
| | | } |
| | | a.isStoppingRecording = false |
| | | |
| | | a.isFreetalking = true |
| | | if a.shouldStartHoldPreCaptureLocked() { |
| | | t.Fatal("should not pre-capture while tap recording is active") |
| | | } |
| | | a.isFreetalking = false |
| | | |
| | | a.lastStopTime = time.Now() |
| | | if a.shouldStartHoldPreCaptureLocked() { |
| | | t.Fatal("should not pre-capture during post-stop debounce") |
| | | } |
| | | } |
| | | |
| | |
| | | func (e tailCaptureTestEngine) ReleaseTailCaptureDelay() time.Duration { |
| | | return e.delay |
| | | } |
| | | |
| | | type holdPreCaptureTestEngine struct { |
| | | plainTestEngine |
| | | enabled bool |
| | | } |
| | | |
| | | func (e holdPreCaptureTestEngine) HoldPreCaptureEnabled() bool { |
| | | return e.enabled |
| | | } |