Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Side by Side Diff: chrome/browser/browser_keyevents_browsertest.cc

Issue 400012: Refactor the keyboard events handling code related to RenderViewHostDelegate:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/browser.cc ('k') | chrome/browser/browser_window.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/keyboard_codes.h" 8 #include "base/keyboard_codes.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 #if defined(OS_LINUX) 529 #if defined(OS_LINUX)
530 // On Linux, alt-0..9 are assigned as tab selection accelerators, so they can 530 // On Linux, alt-0..9 are assigned as tab selection accelerators, so they can
531 // not be used as accesskeys. 531 // not be used as accesskeys.
532 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"")); 532 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L""));
533 #elif defined(OS_WIN) 533 #elif defined(OS_WIN)
534 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"1")); 534 EXPECT_NO_FATAL_FAILURE(CheckFocusedElement(tab_index, L"1"));
535 #endif 535 #endif
536 } 536 }
537 537
538 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, ReservedAccelerators) { 538 IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, ReservedAccelerators) {
539 static const KeyEventTestData kTestCtrlT = {
540 base::VKEY_T, true, false, false,
541 false, false, false, false, 1,
542 { "D 17 0 true false false" }
543 };
544
545 HTTPTestServer* server = StartHTTPServer(); 539 HTTPTestServer* server = StartHTTPServer();
546 540
547 GURL url = server->TestServerPageW(kTestingPage); 541 GURL url = server->TestServerPageW(kTestingPage);
548 ui_test_utils::NavigateToURL(browser(), url); 542 ui_test_utils::NavigateToURL(browser(), url);
549 543
550 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); 544 ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER));
551 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 545 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
552 546
553 int tab_index = browser()->selected_index(); 547 #if defined(OS_WIN)
548 static const KeyEventTestData kTestCtrlT = {
549 base::VKEY_T, true, false, false,
550 true, false, false, false, 1,
551 { "D 17 0 true false false" }
552 };
553
554 ASSERT_EQ(1, browser()->tab_count()); 554 ASSERT_EQ(1, browser()->tab_count());
555 // Press Ctrl+T, which will open a new tab. 555 // Press Ctrl+T, which will open a new tab.
556 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(tab_index, kTestCtrlT)); 556 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT));
557 EXPECT_EQ(2, browser()->tab_count()); 557 EXPECT_EQ(2, browser()->tab_count());
558 browser()->SelectNumberedTab(tab_index); 558 browser()->SelectNumberedTab(0);
559 ASSERT_EQ(tab_index, browser()->selected_index()); 559 ASSERT_EQ(0, browser()->selected_index());
560 560
561 int result_length; 561 int result_length;
562 ASSERT_NO_FATAL_FAILURE(GetResultLength(tab_index, &result_length)); 562 ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length));
563 EXPECT_EQ(1, result_length); 563 EXPECT_EQ(1, result_length);
564 564
565 // Reserved accelerators can't be suppressed. 565 // Reserved accelerators can't be suppressed.
566 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(tab_index, true)); 566 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
567 // Press Ctrl+W, which will close the tab. 567 // Press Ctrl+W, which will close the tab.
568 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_W, true, false, false)); 568 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_W, true, false, false));
569 EXPECT_EQ(1, browser()->tab_count()); 569 EXPECT_EQ(1, browser()->tab_count());
570
571 #elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
572 // Ctrl-[a-z] are not treated as reserved accelerators on Linux.
573 static const KeyEventTestData kTestCtrlT = {
574 base::VKEY_T, true, false, false,
575 false, false, false, false, 2,
576 { "D 17 0 true false false",
577 "D 84 0 true false false" }
578 };
579
580 static const KeyEventTestData kTestCtrlPageDown = {
581 base::VKEY_NEXT, true, false, false,
582 true, false, false, false, 1,
583 { "D 17 0 true false false" }
584 };
585
586 static const KeyEventTestData kTestCtrlTab = {
587 base::VKEY_TAB, true, false, false,
588 true, false, false, false, 1,
589 { "D 17 0 true false false" }
590 };
591
592 static const KeyEventTestData kTestCtrlTBlocked = {
593 base::VKEY_T, true, false, false,
594 true, false, false, false, 4,
595 { "D 17 0 true false false",
596 "D 84 0 true false false",
597 "U 84 0 true false false",
598 "U 17 0 true false false" }
599 };
600
601 static const KeyEventTestData kTestCtrlWBlocked = {
602 base::VKEY_W, true, false, false,
603 true, false, false, false, 4,
604 { "D 17 0 true false false",
605 "D 87 0 true false false",
606 "U 87 0 true false false",
607 "U 17 0 true false false" }
608 };
609
610 ASSERT_EQ(1, browser()->tab_count());
611
612 // Ctrl+T should be blockable.
613 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTBlocked));
614 ASSERT_EQ(1, browser()->tab_count());
615
616 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT));
617 ASSERT_EQ(2, browser()->tab_count());
618 ASSERT_EQ(1, browser()->selected_index());
619 browser()->SelectNumberedTab(0);
620 ASSERT_EQ(0, browser()->selected_index());
621
622 // Ctrl+PageDown and Ctrl+Tab switches to the next tab.
623 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlPageDown));
624 ASSERT_EQ(1, browser()->selected_index());
625
626 browser()->SelectNumberedTab(0);
627 ASSERT_EQ(0, browser()->selected_index());
628 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTab));
629 ASSERT_EQ(1, browser()->selected_index());
630
631 // Ctrl+W should be blockable.
632 browser()->SelectNumberedTab(0);
633 ASSERT_EQ(0, browser()->selected_index());
634 EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked));
635 ASSERT_EQ(2, browser()->tab_count());
636
637 // Ctrl+F4 to close the tab.
638 ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true));
639 ASSERT_NO_FATAL_FAILURE(SendKey(base::VKEY_F4, true, false, false));
640 ASSERT_EQ(1, browser()->tab_count());
641 #endif
570 } 642 }
OLDNEW
« no previous file with comments | « chrome/browser/browser.cc ('k') | chrome/browser/browser_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698