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

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

Issue 6246001: Move app/key* to ui/base/keycodes/* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 months 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 306
307 browser()->SelectTabContentsAt(0, true); 307 browser()->SelectTabContentsAt(0, true);
308 // Try the above, but with ctrl+tab. Since tab normally changes focus, 308 // Try the above, but with ctrl+tab. Since tab normally changes focus,
309 // this has regressed in the past. Loop through several times to be sure. 309 // this has regressed in the past. Loop through several times to be sure.
310 for (int j = 0; j < 15; j++) { 310 for (int j = 0; j < 15; j++) {
311 ViewID vid = kFocusPage[i][j % 5] ? VIEW_ID_TAB_CONTAINER_FOCUS_VIEW : 311 ViewID vid = kFocusPage[i][j % 5] ? VIEW_ID_TAB_CONTAINER_FOCUS_VIEW :
312 VIEW_ID_LOCATION_BAR; 312 VIEW_ID_LOCATION_BAR;
313 ASSERT_TRUE(IsViewFocused(vid)); 313 ASSERT_TRUE(IsViewFocused(vid));
314 314
315 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 315 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
316 browser(), app::VKEY_TAB, true, false, false, false)); 316 browser(), ui::VKEY_TAB, true, false, false, false));
317 } 317 }
318 318
319 // As above, but with ctrl+shift+tab. 319 // As above, but with ctrl+shift+tab.
320 browser()->SelectTabContentsAt(4, true); 320 browser()->SelectTabContentsAt(4, true);
321 for (int j = 14; j >= 0; --j) { 321 for (int j = 14; j >= 0; --j) {
322 ViewID vid = kFocusPage[i][j % 5] ? VIEW_ID_TAB_CONTAINER_FOCUS_VIEW : 322 ViewID vid = kFocusPage[i][j % 5] ? VIEW_ID_TAB_CONTAINER_FOCUS_VIEW :
323 VIEW_ID_LOCATION_BAR; 323 VIEW_ID_LOCATION_BAR;
324 ASSERT_TRUE(IsViewFocused(vid)); 324 ASSERT_TRUE(IsViewFocused(vid));
325 325
326 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 326 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
327 browser(), app::VKEY_TAB, true, true, false, false)); 327 browser(), ui::VKEY_TAB, true, true, false, false));
328 } 328 }
329 } 329 }
330 } 330 }
331 331
332 // Tabs remember focus with find-in-page box. 332 // Tabs remember focus with find-in-page box.
333 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, MAYBE_TabsRememberFocusFindInPage) { 333 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, MAYBE_TabsRememberFocusFindInPage) {
334 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 334 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
335 ASSERT_TRUE(test_server()->Start()); 335 ASSERT_TRUE(test_server()->Start());
336 336
337 // First we navigate to our test page. 337 // First we navigate to our test page.
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 ASSERT_STREQ(kExpElementIDs[j], actual.c_str()); 478 ASSERT_STREQ(kExpElementIDs[j], actual.c_str());
479 479
480 if (j < arraysize(kExpElementIDs) - 1) { 480 if (j < arraysize(kExpElementIDs) - 1) {
481 // If the next element is the kTextElementID, we expect to be 481 // If the next element is the kTextElementID, we expect to be
482 // notified we have switched to an editable node. 482 // notified we have switched to an editable node.
483 bool is_editable_node = 483 bool is_editable_node =
484 (strcmp(kTextElementID, kExpElementIDs[j + 1]) == 0); 484 (strcmp(kTextElementID, kExpElementIDs[j + 1]) == 0);
485 Details<bool> details(&is_editable_node); 485 Details<bool> details(&is_editable_node);
486 486
487 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWaitWithDetails( 487 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWaitWithDetails(
488 browser(), app::VKEY_TAB, false, false, false, false, 488 browser(), ui::VKEY_TAB, false, false, false, false,
489 NotificationType::FOCUS_CHANGED_IN_PAGE, 489 NotificationType::FOCUS_CHANGED_IN_PAGE,
490 NotificationSource(Source<RenderViewHost>( 490 NotificationSource(Source<RenderViewHost>(
491 browser()->GetSelectedTabContents()->render_view_host())), 491 browser()->GetSelectedTabContents()->render_view_host())),
492 details)); 492 details));
493 } else { 493 } else {
494 // On the last tab key press, the focus returns to the browser. 494 // On the last tab key press, the focus returns to the browser.
495 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 495 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
496 browser(), app::VKEY_TAB, false, false, false, false, 496 browser(), ui::VKEY_TAB, false, false, false, false,
497 NotificationType::FOCUS_RETURNED_TO_BROWSER, 497 NotificationType::FOCUS_RETURNED_TO_BROWSER,
498 NotificationSource(Source<Browser>(browser())))); 498 NotificationSource(Source<Browser>(browser()))));
499 } 499 }
500 } 500 }
501 501
502 // At this point the renderer has sent us a message asking to advance the 502 // At this point the renderer has sent us a message asking to advance the
503 // focus (as the end of the focus loop was reached in the renderer). 503 // focus (as the end of the focus loop was reached in the renderer).
504 // We need to run the message loop to process it. 504 // We need to run the message loop to process it.
505 ui_test_utils::RunAllPendingInMessageLoop(); 505 ui_test_utils::RunAllPendingInMessageLoop();
506 } 506 }
(...skipping 10 matching lines...) Expand all
517 const char* next_element = 517 const char* next_element =
518 kExpElementIDs[arraysize(kExpElementIDs) - 1 - j]; 518 kExpElementIDs[arraysize(kExpElementIDs) - 1 - j];
519 519
520 if (j < arraysize(kExpElementIDs) - 1) { 520 if (j < arraysize(kExpElementIDs) - 1) {
521 // If the next element is the kTextElementID, we expect to be 521 // If the next element is the kTextElementID, we expect to be
522 // notified we have switched to an editable node. 522 // notified we have switched to an editable node.
523 bool is_editable_node = (strcmp(kTextElementID, next_element) == 0); 523 bool is_editable_node = (strcmp(kTextElementID, next_element) == 0);
524 Details<bool> details(&is_editable_node); 524 Details<bool> details(&is_editable_node);
525 525
526 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWaitWithDetails( 526 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWaitWithDetails(
527 browser(), app::VKEY_TAB, false, true, false, false, 527 browser(), ui::VKEY_TAB, false, true, false, false,
528 NotificationType::FOCUS_CHANGED_IN_PAGE, 528 NotificationType::FOCUS_CHANGED_IN_PAGE,
529 NotificationSource(Source<RenderViewHost>( 529 NotificationSource(Source<RenderViewHost>(
530 browser()->GetSelectedTabContents()->render_view_host())), 530 browser()->GetSelectedTabContents()->render_view_host())),
531 details)); 531 details));
532 } else { 532 } else {
533 // On the last tab key press, the focus returns to the browser. 533 // On the last tab key press, the focus returns to the browser.
534 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 534 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
535 browser(), app::VKEY_TAB, false, true, false, false, 535 browser(), ui::VKEY_TAB, false, true, false, false,
536 NotificationType::FOCUS_RETURNED_TO_BROWSER, 536 NotificationType::FOCUS_RETURNED_TO_BROWSER,
537 NotificationSource(Source<Browser>(browser())))); 537 NotificationSource(Source<Browser>(browser()))));
538 } 538 }
539 539
540 // Let's make sure the focus is on the expected element in the page. 540 // Let's make sure the focus is on the expected element in the page.
541 std::string actual; 541 std::string actual;
542 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 542 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
543 browser()->GetSelectedTabContents()->render_view_host(), 543 browser()->GetSelectedTabContents()->render_view_host(),
544 L"", 544 L"",
545 L"window.domAutomationController.send(getFocusedElement());", 545 L"window.domAutomationController.send(getFocusedElement());",
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 notification_type = NotificationType::FOCUS_CHANGED_IN_PAGE; 608 notification_type = NotificationType::FOCUS_CHANGED_IN_PAGE;
609 notification_source = Source<RenderViewHost>( 609 notification_source = Source<RenderViewHost>(
610 interstitial_page->render_view_host()); 610 interstitial_page->render_view_host());
611 } else { 611 } else {
612 // On the last tab key press, the focus returns to the browser. 612 // On the last tab key press, the focus returns to the browser.
613 notification_type = NotificationType::FOCUS_RETURNED_TO_BROWSER; 613 notification_type = NotificationType::FOCUS_RETURNED_TO_BROWSER;
614 notification_source = Source<Browser>(browser()); 614 notification_source = Source<Browser>(browser());
615 } 615 }
616 616
617 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 617 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
618 browser(), app::VKEY_TAB, false, false, false, false, 618 browser(), ui::VKEY_TAB, false, false, false, false,
619 notification_type, notification_source)); 619 notification_type, notification_source));
620 } 620 }
621 621
622 // At this point the renderer has sent us a message asking to advance the 622 // At this point the renderer has sent us a message asking to advance the
623 // focus (as the end of the focus loop was reached in the renderer). 623 // focus (as the end of the focus loop was reached in the renderer).
624 // We need to run the message loop to process it. 624 // We need to run the message loop to process it.
625 ui_test_utils::RunAllPendingInMessageLoop(); 625 ui_test_utils::RunAllPendingInMessageLoop();
626 } 626 }
627 627
628 // Now let's try reverse focus traversal. 628 // Now let's try reverse focus traversal.
(...skipping 10 matching lines...) Expand all
639 notification_type = NotificationType::FOCUS_CHANGED_IN_PAGE; 639 notification_type = NotificationType::FOCUS_CHANGED_IN_PAGE;
640 notification_source = Source<RenderViewHost>( 640 notification_source = Source<RenderViewHost>(
641 interstitial_page->render_view_host()); 641 interstitial_page->render_view_host());
642 } else { 642 } else {
643 // On the last tab key press, the focus returns to the browser. 643 // On the last tab key press, the focus returns to the browser.
644 notification_type = NotificationType::FOCUS_RETURNED_TO_BROWSER; 644 notification_type = NotificationType::FOCUS_RETURNED_TO_BROWSER;
645 notification_source = Source<Browser>(browser()); 645 notification_source = Source<Browser>(browser());
646 } 646 }
647 647
648 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait( 648 ASSERT_TRUE(ui_test_utils::SendKeyPressAndWait(
649 browser(), app::VKEY_TAB, false, true, false, false, 649 browser(), ui::VKEY_TAB, false, true, false, false,
650 notification_type, notification_source)); 650 notification_type, notification_source));
651 651
652 // Let's make sure the focus is on the expected element in the page. 652 // Let's make sure the focus is on the expected element in the page.
653 std::string actual; 653 std::string actual;
654 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( 654 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
655 interstitial_page->render_view_host(), L"", 655 interstitial_page->render_view_host(), L"",
656 L"window.domAutomationController.send(getFocusedElement());", 656 L"window.domAutomationController.send(getFocusedElement());",
657 &actual)); 657 &actual));
658 ASSERT_STREQ(kExpElementIDs[6 - j], actual.c_str()); 658 ASSERT_STREQ(kExpElementIDs[6 - j], actual.c_str());
659 } 659 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 708
709 // Open some page (any page that doesn't steal focus). 709 // Open some page (any page that doesn't steal focus).
710 GURL url = test_server()->GetURL(kTypicalPage); 710 GURL url = test_server()->GetURL(kTypicalPage);
711 ui_test_utils::NavigateToURL(browser(), url); 711 ui_test_utils::NavigateToURL(browser(), url);
712 712
713 EXPECT_TRUE(ChromeInForeground()); 713 EXPECT_TRUE(ChromeInForeground());
714 714
715 #if defined(OS_MACOSX) 715 #if defined(OS_MACOSX)
716 // Press Cmd+F, which will make the Find box open and request focus. 716 // Press Cmd+F, which will make the Find box open and request focus.
717 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 717 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
718 browser(), app::VKEY_F, false, false, false, true)); 718 browser(), ui::VKEY_F, false, false, false, true));
719 #else 719 #else
720 // Press Ctrl+F, which will make the Find box open and request focus. 720 // Press Ctrl+F, which will make the Find box open and request focus.
721 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 721 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
722 browser(), app::VKEY_F, true, false, false, false)); 722 browser(), ui::VKEY_F, true, false, false, false));
723 #endif 723 #endif
724 724
725 // Ideally, we wouldn't sleep here and instead would intercept the 725 // Ideally, we wouldn't sleep here and instead would intercept the
726 // RenderViewHostDelegate::HandleKeyboardEvent() callback. To do that, we 726 // RenderViewHostDelegate::HandleKeyboardEvent() callback. To do that, we
727 // could create a RenderViewHostDelegate wrapper and hook-it up by either: 727 // could create a RenderViewHostDelegate wrapper and hook-it up by either:
728 // - creating a factory used to create the delegate 728 // - creating a factory used to create the delegate
729 // - making the test a private and overwriting the delegate member directly. 729 // - making the test a private and overwriting the delegate member directly.
730 MessageLoop::current()->PostDelayedTask( 730 MessageLoop::current()->PostDelayedTask(
731 FROM_HERE, new MessageLoop::QuitTask(), kActionDelayMs); 731 FROM_HERE, new MessageLoop::QuitTask(), kActionDelayMs);
732 ui_test_utils::RunMessageLoop(); 732 ui_test_utils::RunMessageLoop();
733 733
734 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); 734 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
735 735
736 browser()->FocusLocationBar(); 736 browser()->FocusLocationBar();
737 ASSERT_TRUE(IsViewFocused(VIEW_ID_LOCATION_BAR)); 737 ASSERT_TRUE(IsViewFocused(VIEW_ID_LOCATION_BAR));
738 738
739 // Now press Ctrl+F again and focus should move to the Find box. 739 // Now press Ctrl+F again and focus should move to the Find box.
740 #if defined(OS_MACOSX) 740 #if defined(OS_MACOSX)
741 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 741 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
742 browser(), app::VKEY_F, false, false, false, true)); 742 browser(), ui::VKEY_F, false, false, false, true));
743 #else 743 #else
744 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 744 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
745 browser(), app::VKEY_F, true, false, false, false)); 745 browser(), ui::VKEY_F, true, false, false, false));
746 #endif 746 #endif
747 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); 747 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
748 748
749 // Set focus to the page. 749 // Set focus to the page.
750 ClickOnView(VIEW_ID_TAB_CONTAINER); 750 ClickOnView(VIEW_ID_TAB_CONTAINER);
751 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 751 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
752 752
753 // Now press Ctrl+F again and focus should move to the Find box. 753 // Now press Ctrl+F again and focus should move to the Find box.
754 #if defined(OS_MACOSX) 754 #if defined(OS_MACOSX)
755 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 755 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
756 browser(), app::VKEY_F, false, false, false, true)); 756 browser(), ui::VKEY_F, false, false, false, true));
757 #else 757 #else
758 ASSERT_TRUE(ui_test_utils::SendKeyPressSync( 758 ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
759 browser(), app::VKEY_F, true, false, false, false)); 759 browser(), ui::VKEY_F, true, false, false, false));
760 #endif 760 #endif
761 761
762 // See remark above on why we wait. 762 // See remark above on why we wait.
763 MessageLoop::current()->PostDelayedTask( 763 MessageLoop::current()->PostDelayedTask(
764 FROM_HERE, new MessageLoop::QuitTask(), kActionDelayMs); 764 FROM_HERE, new MessageLoop::QuitTask(), kActionDelayMs);
765 ui_test_utils::RunMessageLoop(); 765 ui_test_utils::RunMessageLoop();
766 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); 766 ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
767 } 767 }
768 768
769 // Makes sure the focus is in the right location when opening the different 769 // Makes sure the focus is in the right location when opening the different
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 ui_test_utils::CrashTab(browser()->GetSelectedTabContents()); 834 ui_test_utils::CrashTab(browser()->GetSelectedTabContents());
835 browser()->Reload(CURRENT_TAB); 835 browser()->Reload(CURRENT_TAB);
836 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); 836 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser()));
837 837
838 // Focus should now be on the tab contents. 838 // Focus should now be on the tab contents.
839 browser()->ShowDownloadsTab(); 839 browser()->ShowDownloadsTab();
840 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); 840 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW));
841 } 841 }
842 842
843 } // namespace 843 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/automation/ui_controls_win.cc ('k') | chrome/browser/browser_keyevents_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698