<!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>