| <!DOCTYPE html><!-- webkit-test-runner [ KeygenElementEnabled=true ] --> |
| <html> |
| <body> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script> |
| var element; |
| |
| function testDOMStringReflection(elementName, contentAttributeName, idlAttributeName) { |
| idlAttributeName = idlAttributeName || contentAttributeName; |
| element = document.createElement(elementName); |
| debug('Reflected DOMString attribute test for ' + elementName + '/@' + contentAttributeName); |
| debug('Initial value:'); |
| shouldBeEqualToString('element.' + idlAttributeName, ''); |
| shouldBeNull('element.getAttribute("' + contentAttributeName + '")'); |
| |
| debug('Setting a value via the IDL attribute:'); |
| shouldBeEqualToString('element.' + idlAttributeName + ' = "foo"; element.' + idlAttributeName, 'foo'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', 'foo'); |
| |
| debug('Setting a value via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("' + contentAttributeName + '", " bar\\n"); element.' + idlAttributeName, ' bar\n'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', ' bar\n'); |
| |
| debug('Setting null via the IDL attribute:'); |
| shouldBeEqualToString('element.' + idlAttributeName + ' = null; element.' + idlAttributeName, 'null'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', 'null'); |
| |
| debug('Setting null via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("' + contentAttributeName + '", null); element.' + idlAttributeName, 'null'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', 'null'); |
| |
| debug('Setting undefined via the IDL attribute:'); |
| shouldBeEqualToString('element.' + idlAttributeName + ' = undefined; element.' + idlAttributeName, 'undefined'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', 'undefined'); |
| |
| debug('Setting undefined via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("' + contentAttributeName + '", undefined); element.' + idlAttributeName, 'undefined'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', 'undefined'); |
| |
| debug('Setting non-string via the IDL attribute:'); |
| shouldBeEqualToString('element.' + idlAttributeName + ' = 123; element.' + idlAttributeName, '123'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', '123'); |
| |
| debug('Setting non-string via the content attribute:'); |
| shouldBeEqualToString('element.setAttribute("' + contentAttributeName + '", 456); element.' + idlAttributeName, '456'); |
| shouldBeEqualToString('element.getAttribute("' + contentAttributeName + '")', '456'); |
| |
| debug('\n'); |
| } |
| |
| testDOMStringReflection('button', 'name'); |
| testDOMStringReflection('fieldset', 'name'); |
| testDOMStringReflection('form', 'name'); |
| testDOMStringReflection('input', 'name'); |
| testDOMStringReflection('input', 'step'); |
| testDOMStringReflection('keygen', 'name'); |
| testDOMStringReflection('object', 'name'); |
| testDOMStringReflection('output', 'name'); |
| testDOMStringReflection('select', 'name'); |
| testDOMStringReflection('textarea', 'name'); |
| |
| // Add more DOMString attributes! |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |