use crate::model::muxbox::MuxBox;
use crate::thread_manager::Message;
#[test]
fn test_home_key_scrolls_to_beginning_horizontally() {
let mut muxbox = MuxBox {
id: "test_muxbox".to_string(),
horizontal_scroll: Some(50.0), vertical_scroll: Some(25.0), selected: Some(true),
..Default::default()
};
muxbox.horizontal_scroll = Some(0.0);
assert_eq!(muxbox.horizontal_scroll, Some(0.0));
assert_eq!(muxbox.vertical_scroll, Some(25.0)); }
#[test]
fn test_end_key_scrolls_to_end_horizontally() {
let mut muxbox = MuxBox {
id: "test_muxbox".to_string(),
horizontal_scroll: Some(25.0), vertical_scroll: Some(75.0), selected: Some(true),
..Default::default()
};
muxbox.horizontal_scroll = Some(100.0);
assert_eq!(muxbox.horizontal_scroll, Some(100.0));
assert_eq!(muxbox.vertical_scroll, Some(75.0)); }
#[test]
fn test_ctrl_home_scrolls_to_top_vertically() {
let mut muxbox = MuxBox {
id: "test_muxbox".to_string(),
horizontal_scroll: Some(60.0), vertical_scroll: Some(80.0), selected: Some(true),
..Default::default()
};
muxbox.vertical_scroll = Some(0.0);
assert_eq!(muxbox.horizontal_scroll, Some(60.0)); assert_eq!(muxbox.vertical_scroll, Some(0.0));
}
#[test]
fn test_ctrl_end_scrolls_to_bottom_vertically() {
let mut muxbox = MuxBox {
id: "test_muxbox".to_string(),
horizontal_scroll: Some(30.0), vertical_scroll: Some(10.0), selected: Some(true),
..Default::default()
};
muxbox.vertical_scroll = Some(100.0);
assert_eq!(muxbox.horizontal_scroll, Some(30.0)); assert_eq!(muxbox.vertical_scroll, Some(100.0));
}
#[test]
fn test_home_end_navigation_messages() {
let home_msg = Message::ScrollMuxBoxToBeginning();
let end_msg = Message::ScrollMuxBoxToEnd();
let ctrl_home_msg = Message::ScrollMuxBoxToTop();
let ctrl_end_msg = Message::ScrollMuxBoxToBottom();
assert_eq!(home_msg, Message::ScrollMuxBoxToBeginning());
assert_eq!(end_msg, Message::ScrollMuxBoxToEnd());
assert_eq!(ctrl_home_msg, Message::ScrollMuxBoxToTop());
assert_eq!(ctrl_end_msg, Message::ScrollMuxBoxToBottom());
assert_ne!(home_msg, end_msg);
assert_ne!(ctrl_home_msg, ctrl_end_msg);
assert_ne!(home_msg, ctrl_home_msg);
}
#[test]
fn test_scroll_transitions() {
let mut muxbox = MuxBox {
id: "test_muxbox".to_string(),
horizontal_scroll: Some(45.0), vertical_scroll: Some(75.0), selected: Some(true),
..Default::default()
};
muxbox.horizontal_scroll = Some(0.0);
assert_eq!(muxbox.horizontal_scroll, Some(0.0));
assert_eq!(muxbox.vertical_scroll, Some(75.0));
muxbox.horizontal_scroll = Some(100.0);
assert_eq!(muxbox.horizontal_scroll, Some(100.0));
assert_eq!(muxbox.vertical_scroll, Some(75.0));
muxbox.vertical_scroll = Some(0.0);
assert_eq!(muxbox.horizontal_scroll, Some(100.0)); assert_eq!(muxbox.vertical_scroll, Some(0.0));
muxbox.vertical_scroll = Some(100.0);
assert_eq!(muxbox.horizontal_scroll, Some(100.0)); assert_eq!(muxbox.vertical_scroll, Some(100.0));
}