#[cfg(test)]
mod tests {
use crossterm::event::{KeyModifiers, MouseButton, MouseEvent, MouseEventKind};
use crate::{assert_eq2,
col,
row,
Button,
ModifierKeysMask,
MouseInput,
MouseInputKind};
#[test]
fn test_convert_mouse_event_mouse_moved() {
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Moved,
column: 0,
row: 0,
modifiers: KeyModifiers::SHIFT,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(converted_mouse_input.kind, MouseInputKind::MouseMove);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
assert_eq2!(
converted_mouse_input.maybe_modifier_keys,
Some(ModifierKeysMask::new().with_shift())
);
}
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Moved,
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(converted_mouse_input.kind, MouseInputKind::MouseMove);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
}
#[test]
fn test_convert_mouse_event_mouse_scroll() {
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::ScrollDown,
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(converted_mouse_input.kind, MouseInputKind::ScrollDown);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::ScrollUp,
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(converted_mouse_input.kind, MouseInputKind::ScrollUp);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
}
#[test]
fn test_convert_mouse_event_mouse_click() {
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Down(MouseButton::Left),
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(
converted_mouse_input.kind,
MouseInputKind::MouseDown(Button::Left)
);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Down(MouseButton::Left),
column: 0,
row: 0,
modifiers: KeyModifiers::SHIFT,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(
converted_mouse_input.kind,
MouseInputKind::MouseDown(Button::Left)
);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
assert_eq2!(
converted_mouse_input.maybe_modifier_keys,
Some(ModifierKeysMask::new().with_shift())
);
}
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Up(MouseButton::Left),
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(
converted_mouse_input.kind,
MouseInputKind::MouseUp(Button::Left)
);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
}
#[test]
fn test_convert_mouse_event_mouse_drag() {
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Drag(MouseButton::Left),
column: 0,
row: 0,
modifiers: KeyModifiers::NONE,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(
converted_mouse_input.kind,
MouseInputKind::MouseDrag(Button::Left)
);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
}
{
let mouse_event: MouseEvent = MouseEvent {
kind: MouseEventKind::Drag(MouseButton::Left),
column: 0,
row: 0,
modifiers: KeyModifiers::SHIFT | KeyModifiers::ALT,
};
let converted_mouse_input: MouseInput = mouse_event.into();
assert_eq2!(
converted_mouse_input.kind,
MouseInputKind::MouseDrag(Button::Left)
);
assert_eq2!(converted_mouse_input.pos, col(0) + row(0));
assert_eq2!(
converted_mouse_input.maybe_modifier_keys,
Some(ModifierKeysMask::new().with_alt().with_shift())
);
}
}
}