MCPcopy Create free account
hub / github.com/TyberiusPrime/KeyToKey / test_longtab_plus_mod

Function test_longtab_plus_mod

src/handlers/longtap.rs:131–166  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

129
130 #[test]
131 fn test_longtab_plus_mod() {
132 let mut keyboard = Keyboard::new(KeyOutCatcher::new());
133 let timeout: u16 = 1000;
134 keyboard.add_handler(Box::new(LongTap::new(
135 UserKey::UK0,
136 KeyCode::A,
137 KeyCode::B,
138 timeout,
139 )));
140 keyboard.add_handler(Box::new(USBKeyboard::new()));
141
142 keyboard.add_keypress(UserKey::UK0, 0);
143 keyboard.handle_keys().unwrap();
144 check_output(&keyboard, &[&[]]);
145 keyboard.output.clear();
146
147 keyboard.add_keyrelease(UserKey::UK0, timeout - 1);
148 keyboard.handle_keys().unwrap();
149 dbg!(&keyboard.output.reports);
150 check_output(&keyboard, &[&[KeyCode::A]]);
151 keyboard.output.clear();
152
153 keyboard.add_keypress(KeyCode::LShift, 0);
154 keyboard.handle_keys().unwrap();
155 keyboard.output.clear();
156 keyboard.add_keypress(UserKey::UK0, 0);
157 keyboard.handle_keys().unwrap();
158 check_output(&keyboard, &[&[KeyCode::LShift]]);
159 keyboard.output.clear();
160
161 keyboard.add_keyrelease(UserKey::UK0, timeout);
162 keyboard.handle_keys().unwrap();
163 dbg!(&keyboard.output.reports);
164 check_output(&keyboard, &[&[KeyCode::B, KeyCode::LShift]]);
165 keyboard.output.clear();
166 }
167}

Callers

nothing calls this directly

Calls 6

check_outputFunction · 0.85
add_handlerMethod · 0.80
add_keypressMethod · 0.80
handle_keysMethod · 0.80
clearMethod · 0.80
add_keyreleaseMethod · 0.80

Tested by

no test coverage detected