blob: 5d3d8840a24346308bbfdde34874c8118e5ba849 [file] [log] [blame]
<!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>