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

Side by Side Diff: chrome/browser/ui/omnibox/omnibox_view_browsertest.cc

Issue 23494016: views: Move views specific portions out of omnibox_view_browsertest.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: inlines Created 7 years, 3 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stdio.h> 5 #include <stdio.h>
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #include "ui/base/clipboard/scoped_clipboard_writer.h" 43 #include "ui/base/clipboard/scoped_clipboard_writer.h"
44 #include "ui/base/events/event_constants.h" 44 #include "ui/base/events/event_constants.h"
45 #include "ui/base/keycodes/keyboard_codes.h" 45 #include "ui/base/keycodes/keyboard_codes.h"
46 #include "ui/gfx/point.h" 46 #include "ui/gfx/point.h"
47 47
48 #if defined(TOOLKIT_GTK) 48 #if defined(TOOLKIT_GTK)
49 #include <gdk/gdk.h> 49 #include <gdk/gdk.h>
50 #include <gtk/gtk.h> 50 #include <gtk/gtk.h>
51 #endif 51 #endif
52 52
53 #if defined(TOOLKIT_VIEWS)
54 #include "chrome/browser/ui/views/frame/browser_view.h"
55 #endif
56
57 using base::Time; 53 using base::Time;
58 using base::TimeDelta; 54 using base::TimeDelta;
59 55
60 namespace { 56 namespace {
61 57
62 const char kSearchKeyword[] = "foo"; 58 const char kSearchKeyword[] = "foo";
63 const char kSearchKeyword2[] = "footest.com"; 59 const char kSearchKeyword2[] = "footest.com";
64 const wchar_t kSearchKeywordKeys[] = { ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 }; 60 const wchar_t kSearchKeywordKeys[] = { ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 };
65 const char kSearchURL[] = "http://www.foo.com/search?q={searchTerms}"; 61 const char kSearchURL[] = "http://www.foo.com/search?q={searchTerms}";
66 const char kSearchShortName[] = "foo"; 62 const char kSearchShortName[] = "foo";
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 1245
1250 // Make sure inline autocomplete is triggerred. 1246 // Make sure inline autocomplete is triggerred.
1251 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); 1247 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1);
1252 1248
1253 // Press ctrl key. 1249 // Press ctrl key.
1254 omnibox_view->model()->OnControlKeyChanged(true); 1250 omnibox_view->model()->OnControlKeyChanged(true);
1255 1251
1256 // Inline autocomplete should still be there. 1252 // Inline autocomplete should still be there.
1257 EXPECT_EQ(old_text, omnibox_view->GetText()); 1253 EXPECT_EQ(old_text, omnibox_view->GetText());
1258 } 1254 }
1259
1260 #if defined(TOOLKIT_VIEWS)
1261 const BrowserView* GetBrowserView() const {
1262 return BrowserView::GetBrowserViewForBrowser(browser());
1263 }
1264
1265 // Move the mouse to the center of the browser window and left-click.
1266 void ClickBrowserWindowCenter() {
1267 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync(
1268 GetBrowserView()->GetBoundsInScreen().CenterPoint()));
1269 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(
1270 ui_controls::LEFT, ui_controls::DOWN));
1271 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(
1272 ui_controls::LEFT, ui_controls::UP));
1273 }
1274
1275 // Press and release the mouse in the omnibox at an offset from its origin.
1276 // If |release_offset| differs from |press_offset|, the mouse will be moved
1277 // between the press and release.
1278 void ClickOmnibox(ui_controls::MouseButton button,
1279 const gfx::Vector2d& press_offset,
1280 const gfx::Vector2d& release_offset) {
1281 const views::View* omnibox = GetBrowserView()->GetViewByID(VIEW_ID_OMNIBOX);
1282 gfx::Point omnibox_origin = omnibox->GetBoundsInScreen().origin();
1283 gfx::Point press_point = omnibox_origin + press_offset;
1284 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync(press_point));
1285 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(button, ui_controls::DOWN));
1286
1287 gfx::Point release_point = omnibox_origin + release_offset;
1288 if (release_point != press_point)
1289 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync(release_point));
1290 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(button, ui_controls::UP));
1291 }
1292 #endif // defined(TOOLKIT_VIEWS)
1293 }; 1255 };
1294 1256
1295 // Test if ctrl-* accelerators are workable in omnibox. 1257 // Test if ctrl-* accelerators are workable in omnibox.
1296 // See http://crbug.com/19193: omnibox blocks ctrl-* commands 1258 // See http://crbug.com/19193: omnibox blocks ctrl-* commands
1297 // 1259 //
1298 // Flaky on interactive tests (dbg), http://crbug.com/69433 1260 // Flaky on interactive tests (dbg), http://crbug.com/69433
1299 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, DISABLED_BrowserAccelerators) { 1261 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, DISABLED_BrowserAccelerators) {
1300 BrowserAcceleratorsTest(); 1262 BrowserAcceleratorsTest();
1301 } 1263 }
1302 1264
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
1615 EXPECT_FALSE(popup_model->IsOpen()); 1577 EXPECT_FALSE(popup_model->IsOpen());
1616 1578
1617 // Pasting amid text should yield the expected text and re-open the popup. 1579 // Pasting amid text should yield the expected text and re-open the popup.
1618 omnibox_view->SetWindowTextAndCaretPos(ASCIIToUTF16("abcd"), 2, false, false); 1580 omnibox_view->SetWindowTextAndCaretPos(ASCIIToUTF16("abcd"), 2, false, false);
1619 SetClipboardText(ASCIIToUTF16("123")); 1581 SetClipboardText(ASCIIToUTF16("123"));
1620 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, kCtrlOrCmdMask)); 1582 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, kCtrlOrCmdMask));
1621 EXPECT_EQ(ASCIIToUTF16("ab123cd"), omnibox_view->GetText()); 1583 EXPECT_EQ(ASCIIToUTF16("ab123cd"), omnibox_view->GetText());
1622 EXPECT_TRUE(popup_model->IsOpen()); 1584 EXPECT_TRUE(popup_model->IsOpen());
1623 } 1585 }
1624 1586
1625 #if defined(TOOLKIT_VIEWS)
1626 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, SelectAllOnClick) {
1627 OmniboxView* omnibox_view = NULL;
1628 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1629 omnibox_view->SetUserText(ASCIIToUTF16("http://www.google.com/"));
1630 const gfx::Vector2d click(40, 10);
1631
1632 // Take the focus away from the omnibox.
1633 ASSERT_NO_FATAL_FAILURE(ClickBrowserWindowCenter());
1634 EXPECT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1635 EXPECT_FALSE(omnibox_view->IsSelectAll());
1636
1637 // Clicking in the omnibox should take focus and select all text.
1638 ASSERT_NO_FATAL_FAILURE(ClickOmnibox(ui_controls::LEFT, click, click));
1639 EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1640 EXPECT_TRUE(omnibox_view->IsSelectAll());
1641
1642 // Clicking in another view should clear focus and the selection.
1643 ASSERT_NO_FATAL_FAILURE(ClickBrowserWindowCenter());
1644 EXPECT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1645 EXPECT_FALSE(omnibox_view->IsSelectAll());
1646
1647 // Clicking in the omnibox again should take focus and select all text again.
1648 ASSERT_NO_FATAL_FAILURE(ClickOmnibox(ui_controls::LEFT, click, click));
1649 EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1650 EXPECT_TRUE(omnibox_view->IsSelectAll());
1651
1652 // Clicking another omnibox spot should keep focus but clear the selection.
1653 omnibox_view->SelectAll(false);
1654 const gfx::Vector2d click_2(click.x() + 10, click.y());
1655 ASSERT_NO_FATAL_FAILURE(ClickOmnibox(ui_controls::LEFT, click_2, click_2));
1656 EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1657 EXPECT_FALSE(omnibox_view->IsSelectAll());
1658
1659 // Take the focus away and click in the omnibox again, but drag a bit before
1660 // releasing. We should focus the omnibox but not select all of its text.
1661 ASSERT_NO_FATAL_FAILURE(ClickBrowserWindowCenter());
1662 const gfx::Vector2d release(click.x() + 10, click.y());
1663 ASSERT_NO_FATAL_FAILURE(ClickOmnibox(ui_controls::LEFT, click, release));
1664 EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1665 EXPECT_FALSE(omnibox_view->IsSelectAll());
1666
1667 // Middle-clicking should not be handled by the omnibox.
1668 ASSERT_NO_FATAL_FAILURE(ClickBrowserWindowCenter());
1669 ASSERT_NO_FATAL_FAILURE(ClickOmnibox(ui_controls::MIDDLE, click, click));
1670 EXPECT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1671 EXPECT_FALSE(omnibox_view->IsSelectAll());
1672 }
1673 #endif // defined(TOOLKIT_VIEWS)
1674
1675 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, CopyURLToClipboard) { 1587 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, CopyURLToClipboard) {
1676 // Set permanent text thus making sure that omnibox treats 'google.com' 1588 // Set permanent text thus making sure that omnibox treats 'google.com'
1677 // as URL (not as ordinary user input). 1589 // as URL (not as ordinary user input).
1678 TestToolbarModel* test_toolbar_model = new TestToolbarModel; 1590 TestToolbarModel* test_toolbar_model = new TestToolbarModel;
1679 scoped_ptr<ToolbarModel> toolbar_model(test_toolbar_model); 1591 scoped_ptr<ToolbarModel> toolbar_model(test_toolbar_model);
1680 test_toolbar_model->set_text(ASCIIToUTF16("http://www.google.com/")); 1592 test_toolbar_model->set_text(ASCIIToUTF16("http://www.google.com/"));
1681 browser()->swap_toolbar_models(&toolbar_model); 1593 browser()->swap_toolbar_models(&toolbar_model);
1682 OmniboxView* omnibox_view = NULL; 1594 OmniboxView* omnibox_view = NULL;
1683 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1595 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1684 OmniboxEditModel* edit_model = omnibox_view->model(); 1596 OmniboxEditModel* edit_model = omnibox_view->model();
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1871 #if defined(OS_MACOSX) 1783 #if defined(OS_MACOSX)
1872 // Mac uses alt-left/right to select a word. 1784 // Mac uses alt-left/right to select a word.
1873 const int modifiers = ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN; 1785 const int modifiers = ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN;
1874 #else 1786 #else
1875 const int modifiers = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN; 1787 const int modifiers = ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN;
1876 #endif 1788 #endif
1877 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, modifiers)); 1789 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, modifiers));
1878 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, modifiers)); 1790 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_LEFT, modifiers));
1879 ASSERT_EQ(ASCIIToUTF16("www.bar.com/2"), omnibox_view->GetText()); 1791 ASSERT_EQ(ASCIIToUTF16("www.bar.com/2"), omnibox_view->GetText());
1880 } 1792 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/DEPS ('k') | chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698