Complete desktop parity and security audit (#42)

This commit is contained in:
2026-08-10 20:38:28 +02:00
parent 4a54bf7b6a
commit 40b15a9713
5 changed files with 340 additions and 36 deletions

View File

@@ -160,3 +160,35 @@ fn accelerator(action: UiAction) -> Option<Accelerator> {
};
Some(Accelerator::new(Some(modifiers), code))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn native_menu_uses_standard_macos_accelerators() {
for (action, modifiers, code) in [
(UiAction::Settings, Modifiers::SUPER, Code::Comma),
(UiAction::NewEntry, Modifiers::SUPER, Code::KeyN),
(UiAction::OpenFolder, Modifiers::SUPER, Code::KeyO),
(UiAction::Save, Modifiers::SUPER, Code::KeyS),
(UiAction::CloseWindow, Modifiers::SUPER, Code::KeyW),
(UiAction::Quit, Modifiers::SUPER, Code::KeyQ),
(UiAction::Find, Modifiers::SUPER, Code::KeyF),
(
UiAction::SearchContents,
Modifiers::SUPER | Modifiers::SHIFT,
Code::KeyF,
),
(UiAction::CommandPalette, Modifiers::SUPER, Code::KeyK),
(UiAction::Refresh, Modifiers::SUPER, Code::KeyR),
(UiAction::Lock, Modifiers::SUPER, Code::KeyL),
(UiAction::Help, Modifiers::empty(), Code::F1),
] {
let accelerator = accelerator(action).expect("registered native accelerator");
assert_eq!(accelerator.modifiers(), modifiers, "{action:?}");
assert_eq!(accelerator.key(), code, "{action:?}");
}
assert!(accelerator(UiAction::GeneratePassword).is_none());
}
}