Index: LayoutTests/imported/web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse.html b/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0f34b09627e429f05bc19aabb2db4706e6f9f38f |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-option-element/option-text-recurse.html |
@@ -0,0 +1,77 @@ |
+<!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"); |
+</script> |