| use tui::{ |
| backend::TestBackend, buffer::Buffer, layout::Rect, symbols, text::Spans, widgets::Tabs, |
| Terminal, |
| }; |
| |
| #[test] |
| fn widgets_tabs_should_not_panic_on_narrow_areas() { |
| let backend = TestBackend::new(1, 1); |
| let mut terminal = Terminal::new(backend).unwrap(); |
| terminal |
| .draw(|f| { |
| let tabs = Tabs::new(["Tab1", "Tab2"].iter().cloned().map(Spans::from).collect()); |
| f.render_widget( |
| tabs, |
| Rect { |
| x: 0, |
| y: 0, |
| width: 1, |
| height: 1, |
| }, |
| ); |
| }) |
| .unwrap(); |
| let expected = Buffer::with_lines(vec![" "]); |
| terminal.backend().assert_buffer(&expected); |
| } |
| |
| #[test] |
| fn widgets_tabs_should_truncate_the_last_item() { |
| let backend = TestBackend::new(10, 1); |
| let mut terminal = Terminal::new(backend).unwrap(); |
| terminal |
| .draw(|f| { |
| let tabs = Tabs::new(["Tab1", "Tab2"].iter().cloned().map(Spans::from).collect()); |
| f.render_widget( |
| tabs, |
| Rect { |
| x: 0, |
| y: 0, |
| width: 9, |
| height: 1, |
| }, |
| ); |
| }) |
| .unwrap(); |
| let expected = Buffer::with_lines(vec![format!(" Tab1 {} T ", symbols::line::VERTICAL)]); |
| terminal.backend().assert_buffer(&expected); |
| } |