ladybird/Tests/LibWeb/Text/input/wpt-import/xhr/template-element.html
Tim Ledbetter 80ccb12a12 LibWeb: Don't crash when appending to an XML document template element
When the XML parser appends child nodes to a template element, it must
actually append the template element's contents. This special behavior
caused us to return to the wrong parent element after adding child
nodes to a template element, leading to a crash.
2025-07-14 09:15:41 +02:00

36 lines
1.3 KiB
HTML

<!doctype html>
<title>XMLHttpRequest: template element parsing</title>
<script src=../resources/testharness.js></script>
<script src=../resources/testharnessreport.js></script>
<div id=log></div>
<script>
async_test(t => {
const client = new XMLHttpRequest
client.open("GET", "data:text/xml,<template xmlns='http://www.w3.org/1999/xhtml'><test/></template>")
client.send()
client.onload = t.step_func_done(() => {
assert_equals(client.responseXML.documentElement.childElementCount, 0)
assert_equals(client.responseXML.documentElement.content.firstChild.localName, "test")
})
})
async_test(t => {
const client = new XMLHttpRequest
client.open("GET", "data:text/xml,<template><test/></template>")
client.send()
client.onload = t.step_func_done(() => {
assert_equals(client.responseXML.documentElement.childElementCount, 1)
assert_equals(client.responseXML.documentElement.firstChild.localName, "test")
})
})
async_test(t => {
const client = new XMLHttpRequest
client.open("GET", "data:text/xml,<template xmlns='http://www.w3.org/2000/svg'><test/></template>")
client.send()
client.onload = t.step_func_done(() => {
assert_equals(client.responseXML.documentElement.childElementCount, 1)
assert_equals(client.responseXML.documentElement.firstChild.localName, "test")
})
})
</script>