Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <title></title> | |
| 3 <script src="../../../resources/testharness.js"></script> | |
| 4 <script src="../../../resources/testharnessreport.js"></script> | |
| 5 <div id="container"></div> | |
| 6 <script> | |
| 7 var global = this; | |
| 8 var container = document.getElementById('container'); | |
| 9 | |
| 10 test(function() { | |
|
haraken
2015/08/11 07:00:52
Shall we add TODO(yukishiino) and mention that the
Yuki
2015/08/12 04:51:49
Done.
| |
| 11 var originalAlert = window.alert; | |
| 12 var iframe = document.createElement('iframe'); | |
| 13 iframe.name = 'alert'; | |
| 14 container.appendChild(iframe); | |
| 15 assert_equals(window.alert, originalAlert, "window.alert shouldn't be shadow ed by named properties."); | |
| 16 }, "Named access test. Window's members should have priority over named propert ies."); | |
| 17 | |
| 18 test(function() { | |
| 19 // Window's prototype chain must be | |
| 20 // window --> Window.prototype --> "WindowProperties" --> EventTarget.protot ype | |
| 21 assert_equals(window.__proto__, Window.prototype); | |
| 22 assert_class_string(window.__proto__.__proto__, 'WindowProperties'); | |
| 23 assert_equals(window.__proto__.__proto__.__proto__, EventTarget.prototype); | |
| 24 }, "WindowProperties object should exist."); | |
| 25 | |
| 26 test(function() { | |
| 27 var anchor = document.createElement('a'); | |
| 28 anchor.id = 'myAnchor'; | |
| 29 container.appendChild(anchor); | |
| 30 assert_equals(window.myAnchor, anchor, "Named access should work when Window Properties is available."); | |
| 31 // Remove the WindowProperties object from the prototype chain. This means, | |
| 32 // 'window' no longer supports named access. | |
| 33 Window.prototype.__proto__ = EventTarget.prototype; | |
| 34 assert_equals(window.myAnchor, undefined, "Named access shouldn't work when WindowProperties is not available."); | |
| 35 }, "WindowProperties object should provide named access."); | |
| 36 | |
| 37 test(function() { | |
| 38 assert_true(window.hasOwnProperty('onclick'), "Window's event handlers shoul d be own properties."); | |
| 39 assert_true(window.hasOwnProperty('alert'), "Window's methods should be own properties."); | |
| 40 }, "Window's members should be own members."); | |
| 41 | |
| 42 // This test needs to run in the global scope. | |
| 43 assert_equals(window.onclick, null, "window.onclick is not yet set."); | |
| 44 var wasMyOnClickCalled = false; | |
| 45 var myOnClick = function() { wasMyOnClickCalled = true; }; | |
| 46 var onclick = myOnClick; | |
| 47 assert_equals(window.onclick, myOnClick, "var declaration should be ignored, and window.onclick should be updated."); | |
| 48 window.dispatchEvent(new Event('click')); | |
| 49 assert_true(wasMyOnClickCalled, "myOnClick should have been called."); | |
| 50 </script> | |
| 51 </html> | |
| OLD | NEW |