| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Cloning of input elements</title> |
| <link rel="help" href="https://dom.spec.whatwg.org/#dom-node-clonenode"> |
| <link rel="help" href="https://dom.spec.whatwg.org/#concept-node-clone"> |
| <link rel="help" href="https://dom.spec.whatwg.org/#concept-node-clone-ext"> |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/forms.html#the-input-element:concept-node-clone-ext"> |
| <link rel="author" title="Matthew Phillips" href="mailto:matthew@matthewphillips.info"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <script type=module> |
| import inputTypes from "./input-types.js"; |
| |
| test(function() { |
| var input = document.createElement("input"); |
| input.value = "foo bar"; |
| |
| var copy = input.cloneNode(); |
| assert_equals(copy.value, "foo bar"); |
| }, "input element's value should be cloned"); |
| |
| test(function() { |
| var input = document.createElement("input"); |
| input.value = "foo bar"; |
| |
| var copy = input.cloneNode(); |
| copy.setAttribute("value", "something else"); |
| |
| assert_equals(copy.value, "foo bar"); |
| }, "input element's dirty value flag should be cloned, so setAttribute doesn't affect the cloned input's value"); |
| |
| for (const inputType of inputTypes) { |
| test(function() { |
| var input = document.createElement("input"); |
| input.setAttribute("type", inputType); |
| input.checked = true; |
| |
| var copy = input.cloneNode(); |
| assert_equals(copy.checked, true); |
| }, `input[type=${inputType}] element's checkedness should be cloned`); |
| |
| test(function() { |
| var input = document.createElement("input"); |
| input.setAttribute("type", inputType); |
| input.checked = false; |
| |
| var copy = input.cloneNode(); |
| copy.setAttribute("checked", "checked"); |
| |
| assert_equals(copy.checked, false); |
| }, `input[type=${inputType}] element's dirty checkedness should be cloned, so setAttribute doesn't affect the cloned input's checkedness`); |
| } |
| </script> |