OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <body> | 3 <body> |
4 <script> | 4 <script> |
5 | 5 |
6 function testHandleMouseOver() { | 6 function testHandleMouseOver() { |
7 var menu = new cr.ui.Menu; | 7 var menu = new cr.ui.Menu; |
8 | 8 |
9 var called = false; | 9 var called = false; |
10 menu.findMenuItem_ = function() { | 10 menu.findMenuItem_ = function() { |
11 called = true; | 11 called = true; |
12 return cr.ui.Menu.prototype.findMenuItem_.apply(this, arguments); | 12 return cr.ui.Menu.prototype.findMenuItem_.apply(this, arguments); |
13 }; | 13 }; |
14 | 14 |
15 var over = new MouseEvent('mouseover', {bubbles: true, target: cr.doc.body}); | 15 var over = new MouseEvent('mouseover', {bubbles: true, target: cr.doc.body}); |
16 assertFalse(called); | 16 assertFalse(called); |
17 menu.dispatchEvent(over); | 17 menu.dispatchEvent(over); |
18 assertTrue(called); | 18 assertTrue(called); |
19 } | 19 } |
20 | 20 |
| 21 function testHandleMouseUp() { |
| 22 var realNow = Date.now; |
| 23 Date.now = function() { return 10; }; |
| 24 |
| 25 var menu = new cr.ui.Menu; |
| 26 menu.show({x: 5, y: 5}); |
| 27 |
| 28 function mouseUpAt(x, y) { |
| 29 return menu.dispatchEvent(new MouseEvent('mouseup', { |
| 30 bubbles: true, |
| 31 cancelable: true, |
| 32 target: menu, |
| 33 screenX: x, |
| 34 screenY: y, |
| 35 })); |
| 36 } |
| 37 |
| 38 // Stop mouseups at the same time and position. |
| 39 assertFalse(mouseUpAt(5, 5)); |
| 40 |
| 41 // Allow mouseups with different positions but the same time. |
| 42 assertTrue(mouseUpAt(50, 50)); |
| 43 |
| 44 // Alow mouseups with the same position but different times. |
| 45 Date.now = function() { return 1000; }; |
| 46 assertTrue(mouseUpAt(5, 5)); |
| 47 |
| 48 Date.now = realNow; |
| 49 } |
| 50 |
21 </script> | 51 </script> |
22 </body> | 52 </body> |
23 </html> | 53 </html> |
OLD | NEW |