|
|
|
@ -82,6 +82,76 @@ fn widgets_paragraph_can_wrap_its_content() {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn widgets_paragraph_can_wrap_its_content_with_word_break() {
|
|
|
|
|
let test_case = |alignment, expected| {
|
|
|
|
|
let backend = TestBackend::new(20, 10);
|
|
|
|
|
let mut terminal = Terminal::new(backend).unwrap();
|
|
|
|
|
|
|
|
|
|
terminal
|
|
|
|
|
.draw(|f| {
|
|
|
|
|
let size = f.size();
|
|
|
|
|
let text = vec![Spans::from(SAMPLE_STRING)];
|
|
|
|
|
let paragraph = Paragraph::new(text)
|
|
|
|
|
.block(Block::default().borders(Borders::ALL))
|
|
|
|
|
.alignment(alignment)
|
|
|
|
|
.wrap(Wrap {
|
|
|
|
|
trim: true,
|
|
|
|
|
break_words: true,
|
|
|
|
|
});
|
|
|
|
|
f.render_widget(paragraph, size);
|
|
|
|
|
})
|
|
|
|
|
.unwrap();
|
|
|
|
|
terminal.backend().assert_buffer(&expected);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
test_case(
|
|
|
|
|
Alignment::Left,
|
|
|
|
|
Buffer::with_lines(vec![
|
|
|
|
|
"┌──────────────────┐",
|
|
|
|
|
"│The library is bas│",
|
|
|
|
|
"│ed on the principl│",
|
|
|
|
|
"│e of immediate ren│",
|
|
|
|
|
"│dering with interm│",
|
|
|
|
|
"│ediate buffers. Th│",
|
|
|
|
|
"│is means that at e│",
|
|
|
|
|
"│ach new frame you │",
|
|
|
|
|
"│should build all w│",
|
|
|
|
|
"└──────────────────┘",
|
|
|
|
|
]),
|
|
|
|
|
);
|
|
|
|
|
test_case(
|
|
|
|
|
Alignment::Right,
|
|
|
|
|
Buffer::with_lines(vec![
|
|
|
|
|
"┌──────────────────┐",
|
|
|
|
|
"│The library is bas│",
|
|
|
|
|
"│ed on the principl│",
|
|
|
|
|
"│e of immediate ren│",
|
|
|
|
|
"│dering with interm│",
|
|
|
|
|
"│ediate buffers. Th│",
|
|
|
|
|
"│is means that at e│",
|
|
|
|
|
"│ach new frame you │",
|
|
|
|
|
"│should build all w│",
|
|
|
|
|
"└──────────────────┘",
|
|
|
|
|
]),
|
|
|
|
|
);
|
|
|
|
|
test_case(
|
|
|
|
|
Alignment::Center,
|
|
|
|
|
Buffer::with_lines(vec![
|
|
|
|
|
"┌──────────────────┐",
|
|
|
|
|
"│The library is bas│",
|
|
|
|
|
"│ed on the principl│",
|
|
|
|
|
"│e of immediate ren│",
|
|
|
|
|
"│dering with interm│",
|
|
|
|
|
"│ediate buffers. Th│",
|
|
|
|
|
"│is means that at e│",
|
|
|
|
|
"│ach new frame you │",
|
|
|
|
|
"│should build all w│",
|
|
|
|
|
"└──────────────────┘",
|
|
|
|
|
]),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn widgets_paragraph_renders_double_width_graphemes() {
|
|
|
|
|
let backend = TestBackend::new(10, 10);
|
|
|
|
|