diff --git a/moli-renderer-v8/src/script_vm/tests/dom_elements/detached.rs b/moli-renderer-v8/src/script_vm/tests/dom_elements/detached.rs
index 95c657cb44..3ebd4536b5 100644
--- a/moli-renderer-v8/src/script_vm/tests/dom_elements/detached.rs
+++ b/moli-renderer-v8/src/script_vm/tests/dom_elements/detached.rs
@@ -310,6 +310,43 @@ fn domparser_html_preserves_quirks_mode_and_parses_with_scripting_disabled() {
);
}
+#[test]
+fn domparser_xml_preserves_requested_content_type_for_success_and_error_documents() {
+ let mut vm = new_storage_test_vm("https://domparser-xml-content-type.test/");
+
+ let result = vm
+ .eval(
+ r#"
+(() => {
+ const parser = new DOMParser();
+ return JSON.stringify([
+ "text/xml",
+ "application/xml",
+ "application/xhtml+xml",
+ "image/svg+xml"
+ ].map(contentType => {
+ const valid = parser.parseFromString("", contentType);
+ const invalid = parser.parseFromString(
+ '1',
+ contentType
+ );
+ return [
+ valid.contentType,
+ invalid.contentType,
+ invalid.documentElement.localName
+ ];
+ }));
+})()
+"#,
+ )
+ .expect("DOMParser XML content type probe should evaluate");
+
+ assert_eq!(
+ result,
+ r#"[["text/xml","text/xml","html"],["application/xml","application/xml","html"],["application/xhtml+xml","application/xhtml+xml","html"],["image/svg+xml","image/svg+xml","html"]]"#
+ );
+}
+
#[test]
fn detached_query_brand_checks_accept_standard_prototype_methods() {
let mut vm = new_storage_test_vm("https://detached-query-brand-check.test/");