From 4dd84c601bceff24ac27a1f7aaae758a19e87a5d Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 28 Oct 2026 21:45:05 +0100 Subject: [PATCH] Cover null foreground service results in call and overlay startup --- .../kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt | 7 +++++++ .../kotlin/com/utun/chat/data/RadioOverlayLifecycleTest.kt | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt b/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt index d17eb39c..a5a4bd64 100644 --- a/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt +++ b/tools/chatgui-android/call-service-tests/src/test/kotlin/com/utun/chat/data/CallServiceLifecycleTest.kt @@ -356,4 +356,11 @@ class CallServiceLifecycleTest { service.onDestroy() assertEquals(id, state?.callId); assertEquals(CallPhase.ENDED, state?.phase) } + + @Test fun aMissingServiceComponentCannotLeaveTheControllerWaitingForOnCreate() { + context.acceptServiceStart = false + request() + assertEquals(CallPhase.ENDED, state?.phase); assertEquals(7, state?.reason) + diagnostic("service request") + } } diff --git a/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioOverlayLifecycleTest.kt b/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioOverlayLifecycleTest.kt index 6b55dc77..cf7db1c6 100644 --- a/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioOverlayLifecycleTest.kt +++ b/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioOverlayLifecycleTest.kt @@ -310,4 +310,11 @@ class RadioOverlayLifecycleTest { touch(MotionEvent.ACTION_UP, time = 900, down = 500) main.advanceBy(251); drain(); assertFalse(radio.isTalking()) } + + @Test fun aMissingServiceComponentDoesNotLatchTheOverlayStartingFlag() { + context.acceptServiceStart = false; RadioOverlayService.setActivityVisible(true) + assertFalse(static("starting").getBoolean(null)); diagnostic("Service start failed") + context.acceptServiceStart = true; RadioOverlayService.sync(context) + assertEquals(2, context.serviceStarts.size) + } }