use super::*;
#[test]
fn tokenizer_text_fallback() {
let source = "regular_text_123";
let mut tokenizer = AssTokenizer::new(source);
let text = tokenizer.next_token().unwrap().unwrap();
assert_eq!(text.token_type, crate::tokenizer::tokens::TokenType::Text);
}
#[test]
fn tokenizer_infinite_loop_error_path() {
let source = "test";
let mut tokenizer = AssTokenizer::new(source);
let result = tokenizer.next_token();
assert!(result.is_ok());
}
#[test]
fn tokenizer_span_creation_path() {
let source = "test";
let mut tokenizer = AssTokenizer::new(source);
let token = tokenizer.next_token().unwrap().unwrap();
assert_eq!(token.span, "test");
assert_eq!(token.line, 1);
assert_eq!(token.column, 1);
}
#[test]
fn tokenizer_end_of_input_handling() {
let source = "";
let mut tokenizer = AssTokenizer::new(source);
let result = tokenizer.next_token().unwrap();
assert!(result.is_none());
}
#[test]
fn tokenizer_all_error_propagation() {
let source = "valid_content";
let mut tokenizer = AssTokenizer::new(source);
let tokens = tokenizer.tokenize_all().unwrap();
assert!(!tokens.is_empty());
}
#[test]
fn tokenizer_carriage_return_handling() {
let source = "line1\rline2";
let mut tokenizer = AssTokenizer::new(source);
let _line1 = tokenizer.next_token().unwrap().unwrap();
let newline = tokenizer.next_token().unwrap().unwrap();
assert_eq!(
newline.token_type,
crate::tokenizer::tokens::TokenType::Newline
);
let _line2 = tokenizer.next_token().unwrap().unwrap();
assert_eq!(tokenizer.line(), 2);
}