From 9dd2ac1c95c949066e341837650c3211769342c3 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 4 Sep 2023 09:15:30 +0200 Subject: refactor: make parser helper fn generic over reader --- tests/test_spans.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'tests') diff --git a/tests/test_spans.rs b/tests/test_spans.rs index 0b0e156..4de0714 100644 --- a/tests/test_spans.rs +++ b/tests/test_spans.rs @@ -6,12 +6,19 @@ use codespan_reporting::{ files::SimpleFiles, term::{self, termcolor::Buffer}, }; -use html5tokenizer::{offset::PosTrackingReader, NaiveParser, Token}; +use html5tokenizer::{ + offset::PosTrackingReader, + reader::{IntoReader, Reader}, + NaiveParser, Token, +}; use insta::assert_snapshot; use similar_asserts::assert_eq; -fn parser(html: &'static str) -> impl Iterator> { - NaiveParser::new(PosTrackingReader::new(html)).flatten() +fn parser(reader: impl IntoReader<'static, Reader = R>) -> impl Iterator> +where + R: Reader, +{ + NaiveParser::new(PosTrackingReader::new(reader)).flatten() } /// Just a convenient type alias for labeler closures calling `tokens.next()` @@ -250,7 +257,7 @@ fn comment_data_span() { "###); for (idx, case) in cases.iter().enumerate() { - let Token::Comment(comment) = parser(case) + let Token::Comment(comment) = parser(*case) .filter(|t| !matches!(t, Token::Error { .. })) .next() .unwrap() @@ -535,12 +542,8 @@ fn assert_char_encoding_independence + Clone>( html: &'static str, labeler: impl Fn(TokenIter) -> Vec<(Range, S)>, ) { - let utf8_tokens = NaiveParser::new(PosTrackingReader::new(html)).flatten(); - let string_reader = html5tokenizer::reader::IntoReader::into_reader(html); - let utf16_tokens = - NaiveParser::new(PosTrackingReader::new(Utf16Reader(string_reader))).flatten(); - let utf8_labels = labeler(Box::new(utf8_tokens)); - let utf16_labels = labeler(Box::new(utf16_tokens)); + let utf8_labels = labeler(Box::new(parser(html))); + let utf16_labels = labeler(Box::new(parser(Utf16Reader(html.into_reader())))); for (idx, (span, _)) in utf16_labels.into_iter().enumerate() { let expected_utf16_span = Range { -- cgit v1.2.3