Chromium Code Reviews| Index: chrome/test/data/webui/context_menu_handler_test.html |
| diff --git a/chrome/test/data/webui/context_menu_handler_test.html b/chrome/test/data/webui/context_menu_handler_test.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..50582402cb5cfc960804505c6d6f2705a067948d |
| --- /dev/null |
| +++ b/chrome/test/data/webui/context_menu_handler_test.html |
| @@ -0,0 +1,60 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<body> |
| +<script> |
| + |
| +function testShowAndHideEvents() { |
|
Dan Beam
2015/04/22 18:15:59
var originalDateNow = Date.now;
yawano
2015/04/27 05:25:32
Done.
|
| + // Initial value is 1 since 0 becomes false. |
| + var currentTime = 1; |
| + |
| + // Overrides Date.now to simulate time. |
| + Date.now = function() { return currentTime; }; |
| + |
| + var cmh = cr.ui.contextMenuHandler; |
| + |
| + // Create context menu. |
| + var menu = document.createElement('div'); |
| + cr.ui.decorate(menu, cr.ui.Menu); |
| + document.body.appendChild(menu); |
| + |
| + var menuItem = document.createElement('div'); |
| + menu.addMenuItem(menuItem); |
| + |
| + // Create target elements. |
| + var elem1 = document.createElement('div'); |
| + var elem2 = document.createElement('div'); |
| + |
| + cmh.setContextMenu(elem1, menu); |
| + cmh.setContextMenu(elem2, menu); |
| + |
| + var callbacks = []; |
|
Dan Beam
2015/04/22 18:15:59
nit: callbacks -> events
yawano
2015/04/27 05:25:32
Done.
|
| + cmh.addEventListener('show', function(e) { callbacks.push(e); }); |
| + cmh.addEventListener('hide', function(e) { callbacks.push(e); }); |
| + |
| + // Show context menu of elem1. |
| + elem1.dispatchEvent(new MouseEvent('contextmenu')); |
| + assertEquals(1, callbacks.length); |
| + assertEquals('show', callbacks[0].type); |
| + assertEquals(elem1, callbacks[0].element); |
| + assertEquals(menu, callbacks[0].menu); |
| + |
| + // Show context menu of elem2. |
| + document.dispatchEvent(new MouseEvent('mousedown')); |
| + |
| + // On Windows to prevent context menu show again by mouse right button up, |
| + // we need to wait at least 50ms from the last hide of context menu. |
| + currentTime += 51; // ms |
| + |
| + elem2.dispatchEvent(new MouseEvent('contextmenu')); |
| + assertEquals(3, callbacks.length); |
| + assertEquals('hide', callbacks[1].type); |
| + assertEquals(elem1, callbacks[1].element); |
| + assertEquals(menu, callbacks[1].menu); |
| + assertEquals('show', callbacks[2].type); |
| + assertEquals(elem2, callbacks[2].element); |
| + assertEquals(menu, callbacks[2].menu); |
|
Dan Beam
2015/04/22 18:15:59
Date.now = originalDateNow;
yawano
2015/04/27 05:25:32
Done.
|
| +} |
| + |
| +</script> |
| +</body> |
| +</html> |