|
|
|
// use helix_tui::{
|
|
|
|
// backend::TestBackend,
|
|
|
|
// buffer::Buffer,
|
|
|
|
// layout::Rect,
|
|
|
|
// style::{Color, Style},
|
|
|
|
// text::Span,
|
|
|
|
// widgets::{Block, Borders},
|
|
|
|
// Terminal,
|
|
|
|
// };
|
|
|
|
|
|
|
|
// #[test]
|
|
|
|
// fn widgets_block_renders() {
|
|
|
|
// let backend = TestBackend::new(10, 10);
|
|
|
|
// let mut terminal = Terminal::new(backend).unwrap();
|
|
|
|
// terminal
|
|
|
|
// .draw(|f| {
|
|
|
|
// let block = Block::default()
|
|
|
|
// .title(Span::styled("Title", Style::default().fg(Color::LightBlue)))
|
|
|
|
// .borders(Borders::ALL);
|
|
|
|
// f.render_widget(
|
|
|
|
// block,
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 8,
|
|
|
|
// height: 8,
|
|
|
|
// },
|
|
|
|
// );
|
|
|
|
// })
|
|
|
|
// .unwrap();
|
|
|
|
// let mut expected = Buffer::with_lines(vec![
|
|
|
|
// "┌Title─┐ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "│ │ ",
|
|
|
|
// "└──────┘ ",
|
|
|
|
// " ",
|
|
|
|
// " ",
|
|
|
|
// ]);
|
|
|
|
// for x in 1..=5 {
|
|
|
|
// expected.get_mut(x, 0).set_fg(Color::LightBlue);
|
|
|
|
// }
|
|
|
|
// terminal.backend().assert_buffer(&expected);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// #[test]
|
|
|
|
// fn widgets_block_renders_on_small_areas() {
|
|
|
|
// let test_case = |block, area: Rect, expected| {
|
|
|
|
// let backend = TestBackend::new(area.width, area.height);
|
|
|
|
// let mut terminal = Terminal::new(backend).unwrap();
|
|
|
|
// terminal
|
|
|
|
// .draw(|f| {
|
|
|
|
// f.render_widget(block, area);
|
|
|
|
// })
|
|
|
|
// .unwrap();
|
|
|
|
// terminal.backend().assert_buffer(&expected);
|
|
|
|
// };
|
|
|
|
|
|
|
|
// let one_cell_test_cases = [
|
|
|
|
// (Borders::NONE, "T"),
|
|
|
|
// (Borders::LEFT, "│"),
|
|
|
|
// (Borders::TOP, "T"),
|
|
|
|
// (Borders::RIGHT, "│"),
|
|
|
|
// (Borders::BOTTOM, "T"),
|
|
|
|
// (Borders::ALL, "┌"),
|
|
|
|
// ];
|
|
|
|
// for (borders, symbol) in one_cell_test_cases.iter().cloned() {
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(borders),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 0,
|
|
|
|
// height: 0,
|
|
|
|
// },
|
|
|
|
// Buffer::empty(Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 0,
|
|
|
|
// height: 0,
|
|
|
|
// }),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(borders),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 1,
|
|
|
|
// height: 0,
|
|
|
|
// },
|
|
|
|
// Buffer::empty(Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 1,
|
|
|
|
// height: 0,
|
|
|
|
// }),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(borders),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 0,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::empty(Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 0,
|
|
|
|
// height: 1,
|
|
|
|
// }),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(borders),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 1,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec![symbol]),
|
|
|
|
// );
|
|
|
|
// }
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(Borders::LEFT),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 4,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["│Tes"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(Borders::RIGHT),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 4,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["Tes│"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(Borders::RIGHT),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 4,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["Tes│"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default()
|
|
|
|
// .title("Test")
|
|
|
|
// .borders(Borders::LEFT | Borders::RIGHT),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 4,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["│Te│"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(Borders::TOP),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 4,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["Test"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default().title("Test").borders(Borders::TOP),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 5,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["Test─"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default()
|
|
|
|
// .title("Test")
|
|
|
|
// .borders(Borders::LEFT | Borders::TOP),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 5,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["┌Test"]),
|
|
|
|
// );
|
|
|
|
// test_case(
|
|
|
|
// Block::default()
|
|
|
|
// .title("Test")
|
|
|
|
// .borders(Borders::LEFT | Borders::TOP),
|
|
|
|
// Rect {
|
|
|
|
// x: 0,
|
|
|
|
// y: 0,
|
|
|
|
// width: 6,
|
|
|
|
// height: 1,
|
|
|
|
// },
|
|
|
|
// Buffer::with_lines(vec!["┌Test─"]),
|
|
|
|
// );
|
|
|
|
// }
|