blob: 47293d69eaa71d071286435786baa84bcb801c26 [file] [log] [blame]
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
),
);
}