| <!DOCTYPE html> |
| <script src="../../resources/js-test-pre.js"></script> |
| <form id="test-form"> |
| <input id="test-input"> |
| </form> |
| <script> |
| |
| description('Tests the lookup in inline event handlers'); |
| |
| function dispatchClick(element) |
| { |
| var clickEvent = document.createEvent('MouseEvent'); |
| clickEvent.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); |
| element.dispatchEvent(clickEvent); |
| } |
| |
| var result; |
| var testForm = document.getElementById('test-form'); |
| var testInput = document.getElementById('test-input'); |
| |
| document.a = 'document-a'; |
| testForm.a = 'test-form-a'; |
| testInput.a = 'test-input-a'; |
| |
| document.b = 'document-b'; |
| testForm.b = 'test-form-b'; |
| |
| document.c = 'document-c'; |
| |
| testInput.setAttribute('onclick', 'result = a'); |
| dispatchClick(testInput); |
| shouldBeEqualToString('result', 'test-input-a'); |
| |
| testInput.setAttribute('onclick', 'result = b'); |
| dispatchClick(testInput); |
| shouldBeEqualToString('result', 'test-form-b'); |
| |
| testInput.setAttribute('onclick', 'result = c'); |
| dispatchClick(testInput); |
| shouldBeEqualToString('result', 'document-c'); |
| |
| |
| var div = document.createElement('div'); |
| |
| div.a = 'div-a'; |
| div.setAttribute('onclick', 'result = a'); |
| dispatchClick(div); |
| shouldBeEqualToString('result', 'div-a'); |
| |
| div.form = {b: 'fake-b'}; |
| div.setAttribute('onclick', 'result = b'); |
| dispatchClick(div); |
| shouldBeEqualToString('result', 'document-b'); |
| |
| div.ownerDocument = {c: 'fake-c'}; |
| div.setAttribute('onclick', 'result = c'); |
| dispatchClick(div); |
| shouldBeEqualToString('result', 'document-c'); |
| |
| div.setAttribute('onclick', 'result = this'); |
| dispatchClick(div); |
| shouldBe('result', 'div'); |
| |
| div.event = 'FAIL'; |
| div.setAttribute('onclick', 'result = event'); |
| dispatchClick(div); |
| shouldNotBe('result', '"FAIL"'); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |