//! Scrolling moves content and stops at its ends. mod common; use common::corners; use iris::harness::Harness; use iris::prelude::*; #[test] fn a_wheel_scrolls_the_content_and_stops_at_its_end() { let mut h = Harness::new((400, 200)); // Twice the window's height, so there is 200 to scroll. let top = rect(Color::RED).height(200).add(&mut h.rsc); let bottom = rect(Color::BLUE).height(200).add(&mut h.rsc); h.set_root((top, bottom).span(Dir::DOWN).scrollable()); h.move_to((200, 100)); // `Scroll` starts snapped to the end. assert_eq!(corners(&h, &top).1, -200.0); // The handler scales a wheel line by 50. h.scroll((0, 1)); h.frame(); assert_eq!(corners(&h, &top).1, -150.0); h.scroll((0, 10)); h.frame(); assert_eq!(corners(&h, &top).1, 0.0); }