summaryrefslogtreecommitdiff
path: root/integration_tests
diff options
context:
space:
mode:
Diffstat (limited to 'integration_tests')
-rw-r--r--integration_tests/tests/test_html5lib.rs44
1 files changed, 31 insertions, 13 deletions
diff --git a/integration_tests/tests/test_html5lib.rs b/integration_tests/tests/test_html5lib.rs
index 3236f0f..23adec0 100644
--- a/integration_tests/tests/test_html5lib.rs
+++ b/integration_tests/tests/test_html5lib.rs
@@ -1,6 +1,8 @@
use std::{fs::File, io::BufReader, path::Path};
-use html5lib_tests::{parse_tests, InitialState, ParseError, ParseErrorInner, Test};
+use html5lib_tests::{
+ parse_tests, Error as TestError, InitialState, Output, Test, Token as TestToken,
+};
use html5tokenizer::{InternalState, Reader, Token, Tokenizer};
use pretty_assertions::assert_eq;
@@ -107,22 +109,38 @@ fn run_test_inner<R: Reader>(
tokenizer.set_last_start_tag(last_start_tag);
}
- let mut actual_tokens = Vec::new();
- let mut actual_errors = Vec::new();
+ let mut actual = Output {
+ errors: Vec::new(),
+ tokens: Vec::new(),
+ };
for token in tokenizer {
let token = token.unwrap();
- if let Token::Error { error, .. } = token {
- actual_errors.push(ParseError {
- code: ParseErrorInner(error),
- });
- } else {
- actual_tokens.push(token);
- }
+ match token {
+ Token::Error { error, .. } => actual.errors.push(TestError {
+ code: error.to_string(),
+ }),
+ Token::StartTag(tag) => actual.tokens.push(TestToken::StartTag {
+ name: tag.name,
+ attributes: tag
+ .attributes
+ .into_iter()
+ .map(|(name, map_val)| (name, map_val.value))
+ .collect(),
+ self_closing: tag.self_closing,
+ }),
+ Token::EndTag(tag) => actual.tokens.push(TestToken::EndTag { name: tag.name }),
+ Token::String(data) => actual.tokens.push(TestToken::Character(data)),
+ Token::Comment(data) => actual.tokens.push(TestToken::Comment(data)),
+ Token::Doctype(doctype) => actual.tokens.push(TestToken::Doctype {
+ name: Some(doctype.name).filter(|name| !name.is_empty()),
+ public_id: doctype.public_identifier,
+ system_id: doctype.system_identifier,
+ force_quirks: doctype.force_quirks,
+ }),
+ };
}
- assert_eq!(test.output.0, actual_tokens);
-
- assert_eq!(test.errors, actual_errors);
+ assert_eq!(test.output, actual);
}