diff --git a/src/lexer.rs b/src/lexer.rs index 3092f05..825ea48 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -147,8 +147,9 @@ impl Lexer { #[cfg(test)] pub(crate) mod tests { + use crate::header::Color; use crate::lexer::Lexer; - use crate::tokens::ControlWord::{Ansi, Bold, FontNumber, FontSize, FontTable, Italic, Par, Pard, Rtf, Underline, Unknown}; + use crate::tokens::ControlWord::{Ansi, Bold, FontNumber, ColorNumber, FontSize, FontTable, Italic, Par, Pard, Rtf, Underline, Unknown}; use crate::tokens::Property::*; use crate::tokens::Token::*; @@ -202,7 +203,7 @@ if (a == b) \{\ vec![ ControlSymbol((FontNumber, Value(0))), ControlSymbol((FontSize, Value(24))), - ControlSymbol((Unknown("\\cf"), Value(0))), + ControlSymbol((ColorNumber, Value(0))), PlainText("test de code "), CRLF, PlainText("if (a == b) "), @@ -266,7 +267,7 @@ if (a == b) \{\ OpeningBracket, ControlSymbol((Unknown("\\partightenfactor"), Value(0))), ControlSymbol((FontSize, Value(24))), - ControlSymbol((Unknown("\\cf"), Value(0))), + ControlSymbol((ColorNumber, Value(0))), PlainText("Font size 12,"), ControlSymbol((FontNumber, Value(0))), ControlSymbol((Bold, None)), diff --git a/src/parser.rs b/src/parser.rs index d1396e2..97662d3 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -507,6 +507,9 @@ pub mod tests { } ) ]), + color_table: ColorTable::from([ + (1, Color { red: 255, green: 255, blue: 255 }), + ]), ..RtfHeader::default() } ); @@ -614,7 +617,10 @@ pub mod tests { let rtf = r"{\rtf1{\fonttbl {\f0 Times;}}\f0\b\fs36\u\cf2\plain Plain text}"; let tokens = Lexer::scan(rtf).unwrap(); let document = Parser::new(tokens).parse().unwrap(); - assert_eq!(document.body[0].painter, Painter::default()); + let mut painter = Painter::default(); + painter.bold = true; + painter.font_size = 36; + assert_eq!(document.body[0].painter, painter); } #[test]