<!DOCTYPE html>
<body>
<!-- based on WebKit test: https://trac.webkit.org/changeset/160182 -->
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script>
function stripSpaces(str) {
return str.replace(/[\s\n]/gm, '');
}
</script>
<form>
<template id="templateWithFormInsideForm">
<form>
<input>
</form>
</template>
</form>
<script>
test(function() {
var templateWithFormInsideForm = document.getElementById('templateWithFormInsideForm');
assert_equals(stripSpaces(templateWithFormInsideForm.innerHTML), '<form><input></form>');
var formInsideTemplate = templateWithFormInsideForm.content.firstElementChild;
assert_equals(formInsideTemplate.localName, 'form');
var inputInsideTemplate = templateWithFormInsideForm.content.querySelector('input');
assert_equals(inputInsideTemplate.form, formInsideTemplate);
assert_equals(formInsideTemplate.firstElementChild, inputInsideTemplate);
}, 'Form control elements inside templates should not be associated with forms outside the template.');
</script>
<template id="templateWithNestedForms">
<form>
<form></form>
</form>
</template>
<script>
test(function() {
var templateWithNestedForms = document.getElementById('templateWithNestedForms');
assert_equals(stripSpaces(templateWithNestedForms.innerHTML), '<form><form></form></form>');
}, '(Nested) form elements inside templates should be parsed correctly.');
</script>