| <!DOCTYPE html> |
| <script src="../js/resources/js-test-pre.js"></script> |
| <script> |
| description("Check behavior of name attribute for various form elements"); |
| var elementNames = ["button", "fieldset", "form", "input", "keygen", "object", "output", "select", "textarea"]; |
| for (var i = 0; i < elementNames.length; ++i) { |
| var element = document.createElement(elementNames[i]); |
| debug('Test cases for ' + elementNames[i]); |
| debug('Initial value:'); |
| shouldBeEqualToString('element.name', ''); |
| shouldBeNull('element.getAttribute("name")'); |
| |
| debug('Setting a value via the IDL attribute:'); |
| shouldBeEqualToString('element.name = "foo"; element.name', 'foo'); |
| shouldBeEqualToString('element.getAttribute("name")', 'foo'); |
| |
| debug('Setting a value via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("name", " bar\\n"); element.name', ' bar\n'); |
| shouldBeEqualToString('element.getAttribute("name")', ' bar\n'); |
| |
| debug('Setting null via the IDL attribute:'); |
| shouldBeEqualToString('element.name = null; element.name', ''); |
| shouldBeNull('element.getAttribute("name")'); |
| |
| debug('Setting null via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("name", null); element.name', 'null'); |
| shouldBeEqualToString('element.getAttribute("name")', 'null'); |
| |
| debug('Setting undefined via the IDL attribute:'); |
| shouldBeEqualToString('element.name = undefined; element.name', 'undefined'); |
| shouldBeEqualToString('element.getAttribute("name")', 'undefined'); |
| |
| debug('Setting undefined via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("name", undefined); element.name', 'undefined'); |
| shouldBeEqualToString('element.getAttribute("name")', 'undefined'); |
| |
| debug('Setting non-string via the IDL attribute:'); |
| shouldBeEqualToString('element.name = 123; element.name', '123'); |
| shouldBeEqualToString('element.getAttribute("name")', '123'); |
| |
| debug('Setting non-string via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("name", 456); element.name', '456'); |
| shouldBeEqualToString('element.getAttribute("name")', '456'); |
| |
| debug('\n'); |
| } |
| </script> |
| <script src="../js/resources/js-test-post.js"></script> |