use crate::common::harness::EditorTestHarness;
use crossterm::event::{KeyCode, KeyModifiers};
fn send_text(harness: &mut EditorTestHarness, text: &str) {
for c in text.chars() {
harness
.send_key(KeyCode::Char(c), KeyModifiers::NONE)
.unwrap();
}
}
#[test]
fn test_settings_paste() {
let mut harness = EditorTestHarness::new(100, 40).unwrap();
send_text(&mut harness, "rust");
harness
.send_key(KeyCode::Char('a'), KeyModifiers::CONTROL)
.unwrap();
harness
.send_key(KeyCode::Char('c'), KeyModifiers::CONTROL)
.unwrap();
harness
.send_key(KeyCode::Char(','), KeyModifiers::CONTROL)
.unwrap();
harness.render().unwrap();
harness
.send_key(KeyCode::Char('/'), KeyModifiers::NONE)
.unwrap();
send_text(&mut harness, "languages");
harness
.send_key(KeyCode::Enter, KeyModifiers::NONE)
.unwrap(); harness.render().unwrap();
harness
.send_key(KeyCode::Enter, KeyModifiers::NONE)
.unwrap();
harness.render().unwrap();
harness.assert_screen_contains("Key");
harness.assert_screen_contains("bash");
harness.send_key(KeyCode::Down, KeyModifiers::NONE).unwrap(); harness.send_key(KeyCode::Down, KeyModifiers::NONE).unwrap(); harness.render().unwrap();
harness
.send_key(KeyCode::Enter, KeyModifiers::NONE)
.unwrap();
harness.render().unwrap();
for _ in 0..5 {
harness
.send_key(KeyCode::Backspace, KeyModifiers::NONE)
.unwrap();
}
harness
.send_key(KeyCode::Char('v'), KeyModifiers::CONTROL)
.unwrap();
harness.render().unwrap();
harness.assert_screen_contains("rust");
}