Files
galaxy/app/src/keyboard_test.rs
T

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());
}