97 lines
2.2 KiB
Rust
97 lines
2.2 KiB
Rust
use tui_orchestrator::input::{Key, KeyCode, KeyModifiers};
|
|
|
|
#[test]
|
|
fn test_key_char() {
|
|
let key = Key::char('a');
|
|
assert_eq!(key.code, KeyCode::Char('a'));
|
|
assert!(key.modifiers.is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_ctrl() {
|
|
let key = Key::ctrl('s');
|
|
assert_eq!(key.code, KeyCode::Char('s'));
|
|
assert!(key.modifiers.control);
|
|
assert!(!key.modifiers.alt);
|
|
assert!(!key.modifiers.shift);
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_new() {
|
|
let key = Key::new(KeyCode::Enter, KeyModifiers::new().with_alt());
|
|
assert_eq!(key.code, KeyCode::Enter);
|
|
assert!(key.modifiers.alt);
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_from_keycode() {
|
|
let key = Key::from(KeyCode::Esc);
|
|
assert_eq!(key.code, KeyCode::Esc);
|
|
assert!(key.modifiers.is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_display_char() {
|
|
let key = Key::char('x');
|
|
let display = key.display_string();
|
|
assert!(display.contains('x'));
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_display_ctrl() {
|
|
let key = Key::ctrl('c');
|
|
let display = key.display_string();
|
|
assert!(display.contains("Ctrl+"));
|
|
assert!(display.contains('c'));
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_display_all_modifiers() {
|
|
let key = Key::new(
|
|
KeyCode::Char('a'),
|
|
KeyModifiers::new().with_control().with_alt().with_shift(),
|
|
);
|
|
let display = key.display_string();
|
|
assert!(display.contains("Ctrl+"));
|
|
assert!(display.contains("Alt+"));
|
|
assert!(display.contains("Shift+"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_display_special() {
|
|
let key = Key::new(KeyCode::F(5), KeyModifiers::new());
|
|
let display = key.display_string();
|
|
assert!(display.contains("F5"));
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_modifiers_new() {
|
|
let mods = KeyModifiers::new();
|
|
assert!(!mods.control);
|
|
assert!(!mods.alt);
|
|
assert!(!mods.shift);
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_modifiers_builders() {
|
|
let mods = KeyModifiers::new().with_control().with_shift();
|
|
assert!(mods.control);
|
|
assert!(!mods.alt);
|
|
assert!(mods.shift);
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_modifiers_is_empty() {
|
|
assert!(KeyModifiers::new().is_empty());
|
|
assert!(!KeyModifiers::new().with_control().is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn test_key_equality() {
|
|
let k1 = Key::char('a');
|
|
let k2 = Key::char('a');
|
|
let k3 = Key::ctrl('a');
|
|
assert_eq!(k1, k2);
|
|
assert_ne!(k1, k3);
|
|
}
|