80 lines
2.6 KiB
Rust
80 lines
2.6 KiB
Rust
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());
|
|
}
|