tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 863f33c85c06ac304e5c7c5aeaf87bfffe3d60a0
parent 9d7e1b70bdba058df8a4a834bac693a02870f0f9
Author: Anne van Kesteren <annevk@annevk.nl>
Date:   Tue, 21 Oct 2025 10:16:15 +0000

Bug 1994294 [wpt PR 55424] - Enhanced <select>: add more coverage for selectedOptions, a=testonly

Automatic update from web-platform-tests
Enhanced <select>: add more coverage for selectedOptions

--

wpt-commits: 056eb1dda0254cc363b4dc5616e1d2407b333096
wpt-pr: 55424

Diffstat:
Atesting/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions-nesting.window.js | 89+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions-nesting.window.js b/testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions-nesting.window.js @@ -0,0 +1,89 @@ + +for (const optionParentElementName of ["option", "hr", "select"]) { + test(() => { + const select = document.createElement("select"); + const selectedOptions = select.selectedOptions; + select.innerHTML = "<option>1"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild); + assert_equals(select.value, "1"); + + const optionParent = select.appendChild(document.createElement(optionParentElementName)); + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild); + assert_equals(select.value, "1"); + + const option = optionParent.appendChild(document.createElement("option")); + option.setAttribute("selected", ""); + option.textContent = "2"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild); + assert_equals(select.value, "1"); + }, `<select> containing <${optionParentElementName}><option selected>`); +} + +for (const optionParentElementName of ["option", "hr", "select", "optgroup"]) { + test(() => { + const select = document.createElement("select"); + const selectedOptions = select.selectedOptions; + select.innerHTML = "<optgroup><option>1"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild); + assert_equals(select.value, "1"); + + const optionParent = select.firstChild.appendChild(document.createElement(optionParentElementName)); + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild); + assert_equals(select.value, "1"); + + const option = optionParent.appendChild(document.createElement("option")); + option.setAttribute("selected", ""); + option.textContent = "2"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild); + assert_equals(select.value, "1"); + + }, `<select><optgroup> containing <${optionParentElementName}><option selected>`); +} + +for (const optionParentElementName of ["option", "hr", "select", "optgroup"]) { + test(() => { + const select = document.createElement("select"); + select.multiple = true; + const selectedOptions = select.selectedOptions; + select.innerHTML = "<div><optgroup><div><option selected>1"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild.firstChild.firstChild); + assert_equals(select.value, "1"); + + const optionParent = select.firstChild.firstChild.firstChild.appendChild(document.createElement(optionParentElementName)); + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild.firstChild.firstChild); + assert_equals(select.value, "1"); + + const option = optionParent.appendChild(document.createElement("option")); + option.setAttribute("selected", ""); + option.textContent = "2"; + + assert_equals(selectedOptions.length, 1); + assert_equals(selectedOptions[0], select.firstChild.firstChild.firstChild.firstChild); + assert_equals(select.value, "1"); + + const secondOption = select.appendChild(document.createElement("option")); + secondOption.setAttribute("selected", ""); + secondOption.textContent = "3"; + + assert_equals(selectedOptions.length, 2); + assert_equals(selectedOptions[0], select.firstChild.firstChild.firstChild.firstChild); + assert_equals(selectedOptions[1], secondOption); + assert_equals(select.value, "1"); + }, `<select><div><optgroup><div> containing <${optionParentElementName}><option selected>`); +}