Index: chrome/test/data/webui/history_browsertest.js |
diff --git a/chrome/test/data/webui/history_browsertest.js b/chrome/test/data/webui/history_browsertest.js |
index bcaf7810f773256a65db22ff76f6c71b37b510b0..aa5e9977e1e845b62374a59eec85a3d3a11b080a 100644 |
--- a/chrome/test/data/webui/history_browsertest.js |
+++ b/chrome/test/data/webui/history_browsertest.js |
@@ -909,6 +909,59 @@ TEST_F('HistoryWebUIRealBackendTest', 'showConfirmDialogAndRemove', function() { |
assertFalse($('alertOverlay').classList.contains('showing')); |
}); |
+TEST_F('HistoryWebUIRealBackendTest', 'menuButtonActivatesOneRow', function() { |
+ var entries = document.querySelectorAll('.entry'); |
+ assertEquals(3, entries.length); |
+ assertTrue(entries[0].classList.contains('active')); |
+ assertTrue($('action-menu').hidden); |
+ |
+ // Show the menu via mousedown on the menu button. |
+ var menuButton = entries[2].querySelector('.menu-button'); |
+ menuButton.dispatchEvent(new MouseEvent('mousedown')); |
+ expectFalse($('action-menu').hidden); |
+ |
+ // Check that the 'active' item hasn't changed. |
+ expectTrue(entries[0].classList.contains('active')); |
+ expectFalse(entries[2].classList.contains('active')); |
+ |
+ testDone(); |
+}); |
+ |
+TEST_F('HistoryWebUIRealBackendTest', 'shiftClickActivatesOneRow', function() { |
+ var entries = document.querySelectorAll('.entry'); |
+ assertEquals(3, entries.length); |
+ assertTrue(entries[0].classList.contains('active')); |
+ |
+ entries[0].visit.checkBox.focus(); |
+ assertEquals(entries[0].visit.checkBox, document.activeElement); |
+ |
+ entries[0].visit.checkBox.click(); |
+ assertTrue(entries[0].visit.checkBox.checked); |
+ |
+ var entryBox = entries[2].querySelector('.entry-box'); |
+ entryBox.dispatchEvent(new MouseEvent('click', {shiftKey: true})); |
+ assertTrue(entries[1].visit.checkBox.checked); |
+ |
+ // Focus shouldn't have changed, but the checkbox should toggle. |
+ expectEquals(entries[0].visit.checkBox, document.activeElement); |
+ |
+ expectTrue(entries[0].classList.contains('active')); |
+ expectFalse(entries[2].classList.contains('active')); |
+ |
+ var shiftDown = new MouseEvent('mousedown', {shiftKey: true, bubbles: true}); |
+ entries[2].visit.checkBox.dispatchEvent(shiftDown); |
+ expectEquals(entries[2].visit.checkBox, document.activeElement); |
+ |
+ // 'focusin' events aren't dispatched while tests are run in batch (e.g. |
+ // --test-launcher-jobs=2). Simulate this. TODO(dbeam): fix instead. |
Dan Beam
2014/11/04 05:07:10
if you have anybody that might know why this is, l
arv (Not doing code reviews)
2014/11/04 15:01:03
No idea.
|
+ cr.dispatchSimpleEvent(document.activeElement, 'focusin', true, true); |
+ |
+ expectFalse(entries[0].classList.contains('active')); |
+ expectTrue(entries[2].classList.contains('active')); |
+ |
+ testDone(); |
+}); |
+ |
/** |
* Fixture for History WebUI testing when deletions are prohibited. |
* @extends {HistoryWebUIRealBackendTest} |