1 use anes::parser::{KeyModifiers, Mouse, MouseButton, Sequence};
2
3 use crate::test_sequences;
4
5 #[test]
button_down()6 fn button_down() {
7 test_sequences!(
8 b"\x1B[<0;20;10;M",
9 Sequence::Mouse(
10 Mouse::Down(MouseButton::Left, 20, 10),
11 KeyModifiers::empty()
12 ),
13 b"\x1B[<1;20;10;M",
14 Sequence::Mouse(
15 Mouse::Down(MouseButton::Middle, 20, 10),
16 KeyModifiers::empty()
17 ),
18 b"\x1B[<2;20;10;M",
19 Sequence::Mouse(
20 Mouse::Down(MouseButton::Right, 20, 10),
21 KeyModifiers::empty()
22 ),
23 );
24 }
25
26 #[test]
button_down_with_key_modifiers()27 fn button_down_with_key_modifiers() {
28 test_sequences!(
29 b"\x1B[<4;20;10;M",
30 Sequence::Mouse(Mouse::Down(MouseButton::Left, 20, 10), KeyModifiers::SHIFT),
31 b"\x1B[<5;20;10;M",
32 Sequence::Mouse(
33 Mouse::Down(MouseButton::Middle, 20, 10),
34 KeyModifiers::SHIFT
35 ),
36 b"\x1B[<6;20;10;M",
37 Sequence::Mouse(Mouse::Down(MouseButton::Right, 20, 10), KeyModifiers::SHIFT),
38 );
39 }
40
41 #[test]
button_up()42 fn button_up() {
43 test_sequences!(
44 b"\x1B[<0;20;10;m",
45 Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::empty()),
46 b"\x1B[<1;20;10;m",
47 Sequence::Mouse(
48 Mouse::Up(MouseButton::Middle, 20, 10),
49 KeyModifiers::empty()
50 ),
51 b"\x1B[<2;20;10;m",
52 Sequence::Mouse(Mouse::Up(MouseButton::Right, 20, 10), KeyModifiers::empty()),
53 );
54 }
55
56 #[test]
button_up_with_key_modifiers()57 fn button_up_with_key_modifiers() {
58 test_sequences!(
59 b"\x1B[<4;20;10;m",
60 Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::SHIFT),
61 b"\x1B[<5;20;10;m",
62 Sequence::Mouse(Mouse::Up(MouseButton::Middle, 20, 10), KeyModifiers::SHIFT),
63 b"\x1B[<6;20;10;m",
64 Sequence::Mouse(Mouse::Up(MouseButton::Right, 20, 10), KeyModifiers::SHIFT),
65 );
66 }
67
68 #[test]
scroll()69 fn scroll() {
70 test_sequences!(
71 b"\x1B[<64;20;10;m",
72 Sequence::Mouse(Mouse::ScrollUp(20, 10), KeyModifiers::empty()),
73 b"\x1B[<65;20;10;m",
74 Sequence::Mouse(Mouse::ScrollDown(20, 10), KeyModifiers::empty()),
75 );
76 }
77
78 #[test]
scroll_with_key_modifiers()79 fn scroll_with_key_modifiers() {
80 test_sequences!(
81 b"\x1B[<68;20;10;m",
82 Sequence::Mouse(Mouse::ScrollUp(20, 10), KeyModifiers::SHIFT),
83 b"\x1B[<69;20;10;m",
84 Sequence::Mouse(Mouse::ScrollDown(20, 10), KeyModifiers::SHIFT),
85 );
86 }
87
88 #[test]
drag()89 fn drag() {
90 test_sequences!(
91 b"\x1B[<32;20;10;M",
92 Sequence::Mouse(
93 Mouse::Drag(MouseButton::Left, 20, 10),
94 KeyModifiers::empty()
95 ),
96 b"\x1B[<33;20;10;M",
97 Sequence::Mouse(
98 Mouse::Drag(MouseButton::Middle, 20, 10),
99 KeyModifiers::empty()
100 ),
101 b"\x1B[<34;20;10;M",
102 Sequence::Mouse(
103 Mouse::Drag(MouseButton::Right, 20, 10),
104 KeyModifiers::empty()
105 ),
106 );
107 }
108
109 #[test]
drag_with_key_modifiers()110 fn drag_with_key_modifiers() {
111 test_sequences!(
112 b"\x1B[<36;20;10;M",
113 Sequence::Mouse(Mouse::Drag(MouseButton::Left, 20, 10), KeyModifiers::SHIFT),
114 b"\x1B[<37;20;10;M",
115 Sequence::Mouse(
116 Mouse::Drag(MouseButton::Middle, 20, 10),
117 KeyModifiers::SHIFT,
118 ),
119 b"\x1B[<38;20;10;M",
120 Sequence::Mouse(Mouse::Drag(MouseButton::Right, 20, 10), KeyModifiers::SHIFT),
121 );
122 }
123
124 #[test]
key_modifier_combinations()125 fn key_modifier_combinations() {
126 test_sequences!(
127 b"\x1B[<4;20;10;m",
128 Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::SHIFT),
129 b"\x1B[<8;20;10;m",
130 Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::ALT),
131 b"\x1B[<16;20;10;m",
132 Sequence::Mouse(Mouse::Up(MouseButton::Left, 20, 10), KeyModifiers::CONTROL),
133 b"\x1B[<12;20;10;m",
134 Sequence::Mouse(
135 Mouse::Up(MouseButton::Left, 20, 10),
136 KeyModifiers::SHIFT | KeyModifiers::ALT
137 ),
138 b"\x1B[<20;20;10;m",
139 Sequence::Mouse(
140 Mouse::Up(MouseButton::Left, 20, 10),
141 KeyModifiers::SHIFT | KeyModifiers::CONTROL
142 ),
143 b"\x1B[<24;20;10;m",
144 Sequence::Mouse(
145 Mouse::Up(MouseButton::Left, 20, 10),
146 KeyModifiers::ALT | KeyModifiers::CONTROL
147 ),
148 b"\x1B[<28;20;10;m",
149 Sequence::Mouse(
150 Mouse::Up(MouseButton::Left, 20, 10),
151 KeyModifiers::SHIFT | KeyModifiers::ALT | KeyModifiers::CONTROL
152 ),
153 );
154 }
155