2 <script src=
"../../resources/js-test.js"></script>
4 <input id=
"test-input">
8 description('Tests the lookup in inline event handlers');
10 function dispatchClick(element
)
12 var clickEvent
= document
.createEvent('MouseEvent');
13 clickEvent
.initMouseEvent('click', true, false, window
, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
14 element
.dispatchEvent(clickEvent
);
18 var testForm
= document
.getElementById('test-form');
19 var testInput
= document
.getElementById('test-input');
21 document
.a
= 'document-a';
22 testForm
.a
= 'test-form-a';
23 testInput
.a
= 'test-input-a';
25 document
.b
= 'document-b';
26 testForm
.b
= 'test-form-b';
28 document
.c
= 'document-c';
30 testInput
.setAttribute('onclick', 'result = a');
31 dispatchClick(testInput
);
32 shouldBeEqualToString('result', 'test-input-a');
34 testInput
.setAttribute('onclick', 'result = b');
35 dispatchClick(testInput
);
36 shouldBeEqualToString('result', 'test-form-b');
38 testInput
.setAttribute('onclick', 'result = c');
39 dispatchClick(testInput
);
40 shouldBeEqualToString('result', 'document-c');
43 var div
= document
.createElement('div');
46 div
.setAttribute('onclick', 'result = a');
48 shouldBeEqualToString('result', 'div-a');
50 div
.form
= {b
: 'fake-b'};
51 div
.setAttribute('onclick', 'result = b');
53 shouldBeEqualToString('result', 'document-b');
55 div
.ownerDocument
= {c
: 'fake-c'};
56 div
.setAttribute('onclick', 'result = c');
58 shouldBeEqualToString('result', 'document-c');
60 div
.setAttribute('onclick', 'result = this');
62 shouldBe('result', 'div');
65 div
.setAttribute('onclick', 'result = event');
67 shouldNotBe('result', '"FAIL"');