use slt::{Style, TestBackend};
#[test]
fn multiple_raw_draws_in_one_frame_do_not_clobber() {
let mut tb = TestBackend::new(40, 10);
tb.render(|ui| {
ui.col(|ui| {
ui.container().w(10).h(1).draw(|buf, rect| {
buf.set_string(rect.x, rect.y, "first", Style::new());
});
ui.container().w(10).h(1).draw(|buf, rect| {
buf.set_string(rect.x, rect.y, "second", Style::new());
});
ui.container().w(10).h(1).draw(|buf, rect| {
buf.set_string(rect.x, rect.y, "third", Style::new());
});
});
});
tb.assert_contains("first");
tb.assert_contains("second");
tb.assert_contains("third");
}
#[test]
fn raw_draw_state_clean_across_frames() {
let mut tb = TestBackend::new(40, 5);
tb.render(|ui| {
ui.container().w(5).h(1).draw(|buf, rect| {
buf.set_string(rect.x, rect.y, "aaaaa", Style::new());
});
});
tb.assert_contains("aaaaa");
tb.render(|ui| {
ui.container().w(5).h(1).draw(|buf, rect| {
buf.set_string(rect.x, rect.y, "bbbbb", Style::new());
});
});
tb.assert_contains("bbbbb");
tb.render(|ui| {
ui.text("plain");
});
tb.assert_contains("plain");
}
#[test]
fn frame_with_no_raw_draws_has_empty_clip_stack() {
let mut tb = TestBackend::new(20, 5);
tb.render(|ui| {
ui.text("hello");
});
assert_eq!(tb.line(0), "hello");
}