use crate::keyboard::{PersistedTrigger, UserDefinedKeybinding, REMOVED_KEYBINDING_SERIALIZATION}; use anyhow::{Ok, Result}; use vec1::vec1; use galaxyui::keymap::Keystroke; #[test] fn test_short_user_defined_keybinding_to_persisted_trigger() { let keystroke = Keystroke::parse("ctrl-p").unwrap(); let keybinding = UserDefinedKeybinding::Keystrokes(vec1![keystroke]); let persisted_trigger: PersistedTrigger = keybinding.into(); assert_eq!(persisted_trigger, PersistedTrigger("ctrl-p".to_string())); } #[test] fn test_long_user_defined_keybinding_to_persisted_trigger() { let keystroke = Keystroke::parse("ctrl-p").unwrap(); let other_keystroke = Keystroke::parse("1").unwrap(); let keybinding = UserDefinedKeybinding::Keystrokes(vec1![keystroke, other_keystroke]); let persisted_trigger: PersistedTrigger = keybinding.into(); assert_eq!(persisted_trigger, PersistedTrigger("ctrl-p 1".to_string())); } #[test] fn test_short_persisted_trigger_to_user_defined_keybinding() -> Result<()> { let persisted_trigger = PersistedTrigger("ctrl-x".to_string()); let keybinding = UserDefinedKeybinding::try_from(persisted_trigger)?; let correct_keybinding = UserDefinedKeybinding::Keystrokes(vec1![Keystroke::parse("ctrl-x").unwrap()]); assert_eq!(keybinding, correct_keybinding); Ok(()) } #[test] fn test_long_persisted_trigger_to_user_defined_keybinding() -> Result<()> { let persisted_trigger = PersistedTrigger("ctrl-x 8".to_string()); let keybinding = UserDefinedKeybinding::try_from(persisted_trigger)?; let correct_keybinding = UserDefinedKeybinding::Keystrokes(vec1![ Keystroke::parse("ctrl-x").unwrap(), Keystroke::parse("8").unwrap() ]); assert_eq!(keybinding, correct_keybinding); Ok(()) } #[test] fn test_persisted_trigger_to_removed_user_keybinding() -> Result<()> { let persisted_trigger = PersistedTrigger(REMOVED_KEYBINDING_SERIALIZATION.to_string()); let keybinding = UserDefinedKeybinding::try_from(persisted_trigger)?; assert_eq!(keybinding, UserDefinedKeybinding::Removed); Ok(()) } #[test] fn test_removed_user_keybinding_to_persisted_trigger() { let keybinding = UserDefinedKeybinding::Removed; let persisted_trigger: PersistedTrigger = keybinding.into(); assert_eq!( persisted_trigger, PersistedTrigger(REMOVED_KEYBINDING_SERIALIZATION.to_string()) ); } #[test] fn test_unparsable_persisted_trigger() { let persisted_trigger = PersistedTrigger("".to_string()); let keybinding = UserDefinedKeybinding::try_from(persisted_trigger); assert!(keybinding.is_err()); }