| use anes::parser::{KeyModifiers, Mouse, MouseButton, Sequence}; |
| |
| use crate::test_sequences; |
| |
| #[test] |
| fn button_down() { |
| test_sequences!( |
| b"\x1B[<0;20;10;M", |
| Sequence::Mouse( |
| Mouse::Down(MouseButton::Left, 20, 10), |
| KeyModifiers::empty() |
| ), |
| b"\x1B[<1;20;10;M", |
| Sequence::Mouse( |
| Mouse::Down(MouseButton::Middle, 20, 10), |
| KeyModifiers::empty() |
| ), |
| b"\x1B[<2;20;10;M", |
| Sequence::Mouse( |
| Mouse::Down(MouseButton::Right, 20, 10), |
| KeyModifiers::empty() |
| ), |
| ); |
| } |
| |
| #[test] |
| fn button_down_with_key_modifiers() { |
| test_sequences!( |
| b"\x1B[<4;20;10;M", |
| Sequence::Mouse(Mouse::Down(MouseButton::Left, 20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<5;20;10;M", |
| Sequence::Mouse( |
| Mouse::Down(MouseButton::Middle, 20, 10), |
| KeyModifiers::SHIFT |
| ), |
| b"\x1B[<6;20;10;M", |
| Sequence::Mouse(Mouse::Down(MouseButton::Right, 20, 10), KeyModifiers::SHIFT), |
| ); |
| } |
| |
| #[test] |
| fn button_up() { |
| test_sequences!( |
| b"\x1B[<0;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::empty()), |
| b"\x1B[<1;20;10;m", |
| Sequence::Mouse( |
| Mouse::Up(MouseButton::Middle, 20, 10), |
| KeyModifiers::empty() |
| ), |
| b"\x1B[<2;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Right, 20, 10), KeyModifiers::empty()), |
| ); |
| } |
| |
| #[test] |
| fn button_up_with_key_modifiers() { |
| test_sequences!( |
| b"\x1B[<4;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<5;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Middle, 20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<6;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Right, 20, 10), KeyModifiers::SHIFT), |
| ); |
| } |
| |
| #[test] |
| fn scroll() { |
| test_sequences!( |
| b"\x1B[<64;20;10;m", |
| Sequence::Mouse(Mouse::ScrollUp(20, 10), KeyModifiers::empty()), |
| b"\x1B[<65;20;10;m", |
| Sequence::Mouse(Mouse::ScrollDown(20, 10), KeyModifiers::empty()), |
| ); |
| } |
| |
| #[test] |
| fn scroll_with_key_modifiers() { |
| test_sequences!( |
| b"\x1B[<68;20;10;m", |
| Sequence::Mouse(Mouse::ScrollUp(20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<69;20;10;m", |
| Sequence::Mouse(Mouse::ScrollDown(20, 10), KeyModifiers::SHIFT), |
| ); |
| } |
| |
| #[test] |
| fn drag() { |
| test_sequences!( |
| b"\x1B[<32;20;10;M", |
| Sequence::Mouse( |
| Mouse::Drag(MouseButton::Left, 20, 10), |
| KeyModifiers::empty() |
| ), |
| b"\x1B[<33;20;10;M", |
| Sequence::Mouse( |
| Mouse::Drag(MouseButton::Middle, 20, 10), |
| KeyModifiers::empty() |
| ), |
| b"\x1B[<34;20;10;M", |
| Sequence::Mouse( |
| Mouse::Drag(MouseButton::Right, 20, 10), |
| KeyModifiers::empty() |
| ), |
| ); |
| } |
| |
| #[test] |
| fn drag_with_key_modifiers() { |
| test_sequences!( |
| b"\x1B[<36;20;10;M", |
| Sequence::Mouse(Mouse::Drag(MouseButton::Left, 20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<37;20;10;M", |
| Sequence::Mouse( |
| Mouse::Drag(MouseButton::Middle, 20, 10), |
| KeyModifiers::SHIFT, |
| ), |
| b"\x1B[<38;20;10;M", |
| Sequence::Mouse(Mouse::Drag(MouseButton::Right, 20, 10), KeyModifiers::SHIFT), |
| ); |
| } |
| |
| #[test] |
| fn key_modifier_combinations() { |
| test_sequences!( |
| b"\x1B[<4;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::SHIFT), |
| b"\x1B[<8;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::ALT), |
| b"\x1B[<16;20;10;m", |
| Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::CONTROL), |
| b"\x1B[<12;20;10;m", |
| Sequence::Mouse( |
| Mouse::Up(MouseButton::Left, 20, 10), |
| KeyModifiers::SHIFT | KeyModifiers::ALT |
| ), |
| b"\x1B[<20;20;10;m", |
| Sequence::Mouse( |
| Mouse::Up(MouseButton::Left, 20, 10), |
| KeyModifiers::SHIFT | KeyModifiers::CONTROL |
| ), |
| b"\x1B[<24;20;10;m", |
| Sequence::Mouse( |
| Mouse::Up(MouseButton::Left, 20, 10), |
| KeyModifiers::ALT | KeyModifiers::CONTROL |
| ), |
| b"\x1B[<28;20;10;m", |
| Sequence::Mouse( |
| Mouse::Up(MouseButton::Left, 20, 10), |
| KeyModifiers::SHIFT | KeyModifiers::ALT | KeyModifiers::CONTROL |
| ), |
| ); |
| } |