| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p>This test case ensures that nameNodeListCache should be invalidate when name attribute changes.</p> |
| <div id="console"></div> |
| <script> |
| var element1; |
| var element2; |
| |
| function createElement(type, properties) |
| { |
| var element = document.createElement(type); |
| |
| for (var i in properties) |
| if (properties.hasOwnProperty(i)) |
| element.setAttribute(i,properties[i]); |
| |
| document.body.appendChild(element); |
| return element; |
| } |
| |
| function createTwoElements(tagName) |
| { |
| element1 = createElement(tagName, {name: 'fullname'}); |
| element2 = createElement(tagName, {name: 'fullname'}); |
| } |
| |
| function runTest(tagName) |
| { |
| shouldBe("createTwoElements('" + tagName + "'); document.getElementsByName('fullname').length", "2"); |
| shouldBe("document.querySelector('" + tagName + "').setAttribute('name', 'changed-name'); document.getElementsByName('fullname').length", "1"); |
| document.body.removeChild(element1); |
| document.body.removeChild(element2); |
| debug(''); |
| } |
| |
| runTest('a'); |
| runTest('applet'); |
| runTest('embed'); |
| runTest('section'); |
| runTest('frame'); |
| runTest('form'); |
| runTest('iframe'); |
| runTest('img'); |
| runTest('map'); |
| runTest('meta'); |
| runTest('object'); |
| runTest('param'); |
| |
| var successfullyParsed = true; |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |