| <!doctype html> |
| <meta charset=utf-8> |
| <title>HTMLOptionElement.text</title> |
| <link rel=author title=Ms2ger href="mailto:Ms2ger@gmail.com"> |
| <link rel=help href="https://html.spec.whatwg.org/multipage/#dom-option-text"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id=log></div> |
| <script> |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createElement("font")) |
| .appendChild(document.createTextNode(" font ")); |
| assert_equals(option.text, "font"); |
| }, "option.text should recurse"); |
| |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode(" before ")); |
| option.appendChild(document.createElement("script")) |
| .appendChild(document.createTextNode(" script ")); |
| option.appendChild(document.createTextNode(" after ")); |
| assert_equals(option.text, "before after"); |
| }, "option.text should not recurse into HTML script elements"); |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode(" before ")); |
| option.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "script")) |
| .appendChild(document.createTextNode(" script ")); |
| option.appendChild(document.createTextNode(" after ")); |
| assert_equals(option.text, "before after"); |
| }, "option.text should not recurse into SVG script elements"); |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode(" before ")); |
| option.appendChild(document.createElementNS("http://www.w3.org/1998/Math/MathML", "script")) |
| .appendChild(document.createTextNode(" script ")); |
| option.appendChild(document.createTextNode(" after ")); |
| assert_equals(option.text, "before script after"); |
| }, "option.text should recurse into MathML script elements"); |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode(" before ")); |
| option.appendChild(document.createElementNS(null, "script")) |
| .appendChild(document.createTextNode(" script ")); |
| option.appendChild(document.createTextNode(" after ")); |
| assert_equals(option.text, "before script after"); |
| }, "option.text should recurse into null script elements"); |
| test(function() { |
| var option = document.createElement("option"); |
| var span = option.appendChild(document.createElement("span")); |
| span.appendChild(document.createTextNode(" Some ")); |
| span.appendChild(document.createElement("script")) |
| .appendChild(document.createTextNode(" script ")); |
| option.appendChild(document.createTextNode(" Text ")); |
| assert_equals(option.text, "Some Text"); |
| }, "option.text should work if a child of the option ends with a script"); |
| |
| test(function() { |
| var script = document.createElement("script"); |
| var option = script.appendChild(document.createElement("option")); |
| option.appendChild(document.createTextNode("text")); |
| assert_equals(option.text, "text"); |
| }, "option.text should work if the option is in an HTML script element"); |
| test(function() { |
| var script = document.createElementNS("http://www.w3.org/2000/svg", "script"); |
| var option = script.appendChild(document.createElement("option")); |
| option.appendChild(document.createTextNode("text")); |
| assert_equals(option.text, "text"); |
| }, "option.text should work if the option is in an SVG script element"); |
| test(function() { |
| var script = document.createElementNS("http://www.w3.org/1998/Math/MathML", "script"); |
| var option = script.appendChild(document.createElement("option")); |
| option.appendChild(document.createTextNode("text")); |
| assert_equals(option.text, "text"); |
| }, "option.text should work if the option is in a MathML script element"); |
| |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode("te")); |
| option.appendChild(document.createComment("comment")); |
| option.appendChild(document.createTextNode("xt")); |
| assert_equals(option.text, "text"); |
| }, "option.text should ignore comment children"); |
| test(function() { |
| var option = document.createElement("option"); |
| option.appendChild(document.createTextNode("te")); |
| option.appendChild(document.createProcessingInstruction("target", "data")); |
| option.appendChild(document.createTextNode("xt")); |
| assert_equals(option.text, "text"); |
| }, "option.text should ignore PI children"); |
| </script> |