properly handles unknown ansi escapes by adding them as plain text
This commit is contained in:
@@ -1,9 +1,20 @@
|
||||
use super::*;
|
||||
|
||||
macro_rules! test_parser {
|
||||
($func:expr, $string:expr) => ($func($string));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_escapes() {
|
||||
let parse = "4;31;1;5m";
|
||||
let temp = parse_escape(parse);
|
||||
|
||||
assert!(!temp.is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_graphics_mode() {
|
||||
let parse = "4;31;42m";
|
||||
let temp = graphics_mode(parse);
|
||||
let temp = test_parser!(graphics_mode, "4;31;42m");
|
||||
|
||||
assert!(temp.is_ok());
|
||||
assert_eq!(AnsiSequence::SetGraphicsMode(
|
||||
@@ -12,8 +23,7 @@ fn test_graphics_mode() {
|
||||
temp.unwrap().1
|
||||
);
|
||||
|
||||
let parse = "4m";
|
||||
let temp = graphics_mode(parse);
|
||||
let temp = test_parser!(graphics_mode, "4m");
|
||||
|
||||
assert!(temp.is_ok());
|
||||
assert_eq!(AnsiSequence::SetGraphicsMode(vec![4]),
|
||||
@@ -23,9 +33,7 @@ fn test_graphics_mode() {
|
||||
|
||||
#[test]
|
||||
fn test_set_mode() {
|
||||
let parse = "=7h";
|
||||
let temp = set_mode(parse);
|
||||
|
||||
let temp = test_parser!(set_mode, "=7h");
|
||||
assert_eq!(AnsiSequence::SetMode(7), temp.unwrap().1);
|
||||
}
|
||||
|
||||
@@ -46,3 +54,13 @@ fn test_parser_iterator() {
|
||||
|
||||
assert_eq!(strings.len(), 6);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parser_iterator_failure() {
|
||||
let parse_str = "\x1b[=25l\x1b[=7l\x1b[0m\x1b[36;1;15;2m\x1b[1m-`";
|
||||
let strings: Vec<Output> = ParserIterator::new(parse_str)
|
||||
.collect();
|
||||
|
||||
println!("{:#?}", strings);
|
||||
assert_eq!(strings.len(), 6);
|
||||
}
|
||||
|
Reference in New Issue
Block a user