git.lucas.co / cce-system-interface
system settings
git clone https://git.lucas.co/cce-system-interface.git

commitc1f1d91f2e816052c7f8f1388c23ce62f488d52b
parent4a614ea741
authorLucas Galante <[email protected]>
date2026-06-18 02:20
Add unit test to verify context menu null pointer safety

 src/pages/interface.rs | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/pages/interface.rs b/src/pages/interface.rs
index 7564304..f95dfde 100644
--- a/src/pages/interface.rs
+++ b/src/pages/interface.rs
@@ -3297,6 +3297,18 @@ mod tests {
         assert!(!cce_ui::widget::context_menu::is_visible());
     }
 
+    #[test]
+    fn test_context_menu_null_target_safety() {
+        let mut ctx = cce_ui::context::UiContext::new();
+        // Hide context menu initially
+        ctx.hide_context_menu();
+        assert!(!ctx.is_context_menu_visible());
+
+        // This should return early and not panic/crash on a null target
+        ctx.handle_right_click(std::ptr::null_mut::<cce_ui::widget::Spinbox>() as *mut (dyn Element + 'static), 10.0, 10.0);
+        assert!(!ctx.is_context_menu_visible());
+    }
+
 
     #[test]
     fn test_parse_color_from_key() {