use super::*;
use crate::{
display::DisplayColor,
test_helpers::assertions::assert_rendered_output::{
_assert_rendered_output,
render_view_line,
AssertRenderOptions,
ExactPattern,
LinePattern,
},
view::LineSegmentOptions,
};
fn assert_rendered(render_slice: &RenderSlice, expected: &[&str]) {
let mut output = vec![];
if render_slice.show_title() {
if render_slice.show_help() {
output.push(String::from("{TITLE}{HELP}"));
}
else {
output.push(String::from("{TITLE}"));
}
}
let lines = render_slice.get_lines();
if lines.is_empty() {
output.push(String::from("{EMPTY}"));
}
else {
let leading_line_count = render_slice.get_leading_lines_count();
let trailing_line_count = render_slice.get_trailing_lines_count();
let lines_count = lines.len() - leading_line_count - trailing_line_count;
let leading_lines = lines.iter().take(leading_line_count);
let body_lines = lines.iter().skip(leading_line_count).take(lines_count);
let trailing_lines = lines.iter().skip(leading_line_count + lines_count);
if leading_line_count > 0 {
output.push(String::from("{LEADING}"));
for line in leading_lines {
output.push(render_view_line(line, Some(AssertRenderOptions::INCLUDE_STYLE)));
}
}
if lines_count > 0 {
output.push(String::from("{BODY}"));
for line in body_lines {
output.push(render_view_line(line, Some(AssertRenderOptions::INCLUDE_STYLE)));
}
}
if trailing_line_count > 0 {
output.push(String::from("{TRAILING}"));
for line in trailing_lines {
output.push(render_view_line(line, Some(AssertRenderOptions::INCLUDE_STYLE)));
}
}
}
_assert_rendered_output(
AssertRenderOptions::INCLUDE_STYLE,
&output,
&expected
.iter()
.map(|s| {
let pattern: Box<dyn LinePattern>