From f1e7a5ce5f087cfba35ca6116a444c9c4eed7764 Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Mon, 30 Mar 2026 11:20:27 +0530 Subject: [PATCH] test: broaden android node advertisement matrix --- .../app/node/ConnectionManagerTest.kt | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/apps/android/app/src/test/java/ai/openclaw/app/node/ConnectionManagerTest.kt b/apps/android/app/src/test/java/ai/openclaw/app/node/ConnectionManagerTest.kt index 67802278d6d..0909c1584aa 100644 --- a/apps/android/app/src/test/java/ai/openclaw/app/node/ConnectionManagerTest.kt +++ b/apps/android/app/src/test/java/ai/openclaw/app/node/ConnectionManagerTest.kt @@ -178,6 +178,51 @@ class ConnectionManagerTest { assertFalse(options.caps.contains(OpenClawCapability.VoiceWake.rawValue)) } + @Test + fun buildNodeConnectOptions_omitsUnavailableCameraLocationAndCallLogSurfaces() { + val options = + newManager( + cameraEnabled = false, + locationMode = LocationMode.Off, + callLogAvailable = false, + ).buildNodeConnectOptions() + + assertFalse(options.commands.contains(OpenClawCameraCommand.List.rawValue)) + assertFalse(options.commands.contains(OpenClawCameraCommand.Snap.rawValue)) + assertFalse(options.commands.contains(OpenClawCameraCommand.Clip.rawValue)) + assertFalse(options.commands.contains(OpenClawLocationCommand.Get.rawValue)) + assertFalse(options.commands.contains(OpenClawCallLogCommand.Search.rawValue)) + assertFalse(options.caps.contains(OpenClawCapability.Camera.rawValue)) + assertFalse(options.caps.contains(OpenClawCapability.Location.rawValue)) + assertFalse(options.caps.contains(OpenClawCapability.CallLog.rawValue)) + } + + @Test + fun buildNodeConnectOptions_advertisesOnlyAvailableMotionCommand() { + val options = + newManager( + motionActivityAvailable = false, + motionPedometerAvailable = true, + ).buildNodeConnectOptions() + + assertFalse(options.commands.contains(OpenClawMotionCommand.Activity.rawValue)) + assertTrue(options.commands.contains(OpenClawMotionCommand.Pedometer.rawValue)) + assertTrue(options.caps.contains(OpenClawCapability.Motion.rawValue)) + } + + @Test + fun buildNodeConnectOptions_omitsMotionSurfaceWhenMotionApisUnavailable() { + val options = + newManager( + motionActivityAvailable = false, + motionPedometerAvailable = false, + ).buildNodeConnectOptions() + + assertFalse(options.commands.contains(OpenClawMotionCommand.Activity.rawValue)) + assertFalse(options.commands.contains(OpenClawMotionCommand.Pedometer.rawValue)) + assertFalse(options.caps.contains(OpenClawCapability.Motion.rawValue)) + } + private fun newManager( cameraEnabled: Boolean = false, locationMode: LocationMode = LocationMode.Off,