Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <body> | |
| 4 <script> | |
| 5 | |
| 6 function testShowAndHideEvents(callback) { | |
| 7 var cmh = cr.ui.contextMenuHandler; | |
| 8 | |
| 9 // Create context menu. | |
| 10 var menu = document.createElement('div'); | |
| 11 cr.ui.decorate(menu, cr.ui.Menu); | |
| 12 document.body.appendChild(menu); | |
| 13 | |
| 14 var menuItem = document.createElement('div'); | |
| 15 menu.addMenuItem(menuItem); | |
| 16 | |
| 17 // Create target elements. | |
| 18 var elem1 = document.createElement('div'); | |
| 19 var elem2 = document.createElement('div'); | |
| 20 | |
| 21 cmh.setContextMenu(elem1, menu); | |
| 22 cmh.setContextMenu(elem2, menu); | |
| 23 | |
| 24 var callbacks = []; | |
| 25 cmh.addEventListener('show', function(e) { callbacks.push(e); }); | |
| 26 cmh.addEventListener('hide', function(e) { callbacks.push(e); }); | |
| 27 | |
| 28 // Show context menu of elem1. | |
| 29 elem1.dispatchEvent(new MouseEvent('contextmenu')); | |
| 30 assertEquals(1, callbacks.length); | |
| 31 assertEquals('show', callbacks[0].type); | |
| 32 assertEquals(elem1, callbacks[0].element); | |
| 33 assertEquals(menu, callbacks[0].menu); | |
| 34 | |
| 35 // Show context menu of elem2. | |
| 36 document.dispatchEvent(new MouseEvent('mousedown')); | |
| 37 | |
| 38 // On Windows to prevent context menu show again by mouse right button up, | |
| 39 // we need to wait at least 50ms from the last hide of context menu. | |
| 40 var wait = cr.isWindows ? 100 : 0; | |
| 41 | |
| 42 setTimeout(function() { | |
|
Dan Beam
2014/10/29 01:17:17
this is almost never a good idea. please make thi
| |
| 43 elem2.dispatchEvent(new MouseEvent('contextmenu')); | |
| 44 assertEquals(3, callbacks.length); | |
| 45 assertEquals('hide', callbacks[1].type); | |
| 46 assertEquals(elem1, callbacks[1].element); | |
| 47 assertEquals(menu, callbacks[1].menu); | |
| 48 assertEquals('show', callbacks[2].type); | |
| 49 assertEquals(elem2, callbacks[2].element); | |
| 50 assertEquals(menu, callbacks[2].menu); | |
| 51 | |
| 52 callback(false); | |
| 53 }, wait); | |
| 54 } | |
| 55 | |
| 56 </script> | |
| 57 </body> | |
| 58 </html> | |
| OLD | NEW |