use std::io as path_std_io;
use super::{escape_field, stream_output, write_output};
#[test]
fn hostile_field_stays_on_one_ansi_control_safe_line() {
assert_eq!(
escape_field("line\ncarriage\r\u{1b}[31m"),
"line\\ncarriage\\r\\u{1b}[31m"
);
}
#[test]
fn streamed_broken_pipe_is_success() {
stream_output(&mut std::io::sink(), |_| {
Err(path_std_io::Error::new(
path_std_io::ErrorKind::BrokenPipe,
"closed pipeline",
))
})
.expect("streamed broken pipe is successful");
}
#[test]
fn broken_pipe_is_success() {
struct BrokenPipe;
impl std::io::Write for BrokenPipe {
fn write(&mut self, _buffer: &[u8]) -> std::io::Result<usize> {
Err(path_std_io::Error::new(
path_std_io::ErrorKind::BrokenPipe,
"closed pipeline",
))
}
fn flush(&mut self) -> std::io::Result<()> {
Ok(())
}
}
write_output(&mut BrokenPipe, "session\n").expect("broken pipe is successful");
}