Index: chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc |
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc b/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc |
index 1e796857aa3d675e6664e70bbd93cb7e0cc65640..f452757552ed799960fb5d7dba08a987a4474c06 100644 |
--- a/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc |
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc |
@@ -944,6 +944,52 @@ class AutocompleteEditViewTest : public InProcessBrowserTest, |
ASSERT_TRUE(edit_view->IsSelectAll()); |
} |
+ void TabMoveCursorToEndTest() { |
+ AutocompleteEditView* edit_view = NULL; |
+ ASSERT_NO_FATAL_FAILURE(GetAutocompleteEditView(&edit_view)); |
+ |
+ edit_view->SetUserText(ASCIIToUTF16("Hello world")); |
+ |
+ // Move cursor to the beginning. |
+ ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, false, false, false)); |
+ |
+ string16::size_type start, end; |
+ edit_view->GetSelectionBounds(&start, &end); |
+ EXPECT_EQ(0U, start); |
+ EXPECT_EQ(0U, end); |
+ |
+ // Pressing tab should move cursor to the end. |
+ ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); |
+ |
+ edit_view->GetSelectionBounds(&start, &end); |
+ EXPECT_EQ(edit_view->GetText().size(), start); |
+ EXPECT_EQ(edit_view->GetText().size(), end); |
+ |
+ // The location bar should still have focus. |
+ ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
+ |
+ // Select all text. |
+ edit_view->SelectAll(true); |
+ EXPECT_TRUE(edit_view->IsSelectAll()); |
+ edit_view->GetSelectionBounds(&start, &end); |
+ EXPECT_EQ(0U, start); |
+ EXPECT_EQ(edit_view->GetText().size(), end); |
+ |
+ // Pressing tab should move cursor to the end. |
+ ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); |
+ |
+ edit_view->GetSelectionBounds(&start, &end); |
+ EXPECT_EQ(edit_view->GetText().size(), start); |
+ EXPECT_EQ(edit_view->GetText().size(), end); |
+ |
+ // The location bar should still have focus. |
+ ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
+ |
+ // Pressing tab when cursor is at the end should change focus. |
+ ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_TAB, false, false, false)); |
+ |
+ ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
+ } |
}; |
// Test if ctrl-* accelerators are workable in omnibox. |
@@ -1005,6 +1051,10 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, DeleteItem) { |
DeleteItemTest(); |
} |
+IN_PROC_BROWSER_TEST_F(AutocompleteEditViewTest, TabMoveCursorToEnd) { |
+ TabMoveCursorToEndTest(); |
+} |
+ |
#if defined(OS_LINUX) |
// TODO(oshima): enable these tests for views-implmentation when |
// these featuers are supported. |
@@ -1190,4 +1240,11 @@ IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, DeleteItem) { |
DeleteItemTest(); |
} |
+// TODO(suzhe): This test is broken because of broken ViewID support when |
+// enabling AutocompleteEditViewViews. |
+IN_PROC_BROWSER_TEST_F(AutocompleteEditViewViewsTest, |
+ DISABLED_TabMoveCursorToEnd) { |
+ TabMoveCursorToEndTest(); |
+} |
+ |
#endif |