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

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

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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/strings/string16.h" 7 #include "base/strings/string16.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 27 matching lines...) Expand all
38 #include "chrome/test/base/ui_test_utils.h" 38 #include "chrome/test/base/ui_test_utils.h"
39 #include "content/public/browser/notification_service.h" 39 #include "content/public/browser/notification_service.h"
40 #include "content/public/browser/web_contents.h" 40 #include "content/public/browser/web_contents.h"
41 #include "net/dns/mock_host_resolver.h" 41 #include "net/dns/mock_host_resolver.h"
42 #include "ui/base/clipboard/clipboard.h" 42 #include "ui/base/clipboard/clipboard.h"
43 #include "ui/base/clipboard/scoped_clipboard_writer.h" 43 #include "ui/base/clipboard/scoped_clipboard_writer.h"
44 #include "ui/events/event_constants.h" 44 #include "ui/events/event_constants.h"
45 #include "ui/events/keycodes/keyboard_codes.h" 45 #include "ui/events/keycodes/keyboard_codes.h"
46 #include "ui/gfx/point.h" 46 #include "ui/gfx/point.h"
47 47
48 #if defined(TOOLKIT_GTK)
49 #include <gdk/gdk.h>
50 #include <gtk/gtk.h>
51 #endif
52
53 using base::ASCIIToUTF16; 48 using base::ASCIIToUTF16;
54 using base::UTF16ToUTF8; 49 using base::UTF16ToUTF8;
55 using base::Time; 50 using base::Time;
56 using base::TimeDelta; 51 using base::TimeDelta;
57 52
58 namespace { 53 namespace {
59 54
60 const char kSearchKeyword[] = "foo"; 55 const char kSearchKeyword[] = "foo";
61 const char kSearchKeyword2[] = "footest.com"; 56 const char kSearchKeyword2[] = "footest.com";
62 const wchar_t kSearchKeywordKeys[] = { ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 }; 57 const wchar_t kSearchKeywordKeys[] = { ui::VKEY_F, ui::VKEY_O, ui::VKEY_O, 0 };
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 103
109 // To trigger inline autocomplete. 104 // To trigger inline autocomplete.
110 {"http://www.def.com", "Page def", 10000, 10000, true }, 105 {"http://www.def.com", "Page def", 10000, 10000, true },
111 106
112 // Used in particular for the desired TLD test. This makes it test 107 // Used in particular for the desired TLD test. This makes it test
113 // the interesting case when there's an intranet host with the same 108 // the interesting case when there's an intranet host with the same
114 // name as the .com. 109 // name as the .com.
115 {"http://bar/", "Bar", 1, 0, false }, 110 {"http://bar/", "Bar", 1, 0, false },
116 }; 111 };
117 112
118 #if defined(TOOLKIT_GTK)
119 // Returns the text stored in the PRIMARY clipboard.
120 std::string GetPrimarySelectionText() {
121 GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
122 DCHECK(clipboard);
123
124 gchar* selection_text = gtk_clipboard_wait_for_text(clipboard);
125 std::string result(selection_text ? selection_text : "");
126 g_free(selection_text);
127 return result;
128 }
129 #endif
130
131 // Stores the given text to clipboard. 113 // Stores the given text to clipboard.
132 void SetClipboardText(const base::string16& text) { 114 void SetClipboardText(const base::string16& text) {
133 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); 115 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
134 ui::ScopedClipboardWriter writer(clipboard, ui::CLIPBOARD_TYPE_COPY_PASTE); 116 ui::ScopedClipboardWriter writer(clipboard, ui::CLIPBOARD_TYPE_COPY_PASTE);
135 writer.WriteText(text); 117 writer.WriteText(text);
136 } 118 }
137 119
138 #if defined(OS_MACOSX) 120 #if defined(OS_MACOSX)
139 const int kCtrlOrCmdMask = ui::EF_COMMAND_DOWN; 121 const int kCtrlOrCmdMask = ui::EF_COMMAND_DOWN;
140 #else 122 #else
(...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 // Make sure inline autocomplete is triggerred. 1359 // Make sure inline autocomplete is triggerred.
1378 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1); 1360 EXPECT_GT(old_text.length(), arraysize(kInlineAutocompleteText) - 1);
1379 1361
1380 // Press ctrl key. 1362 // Press ctrl key.
1381 omnibox_view->model()->OnControlKeyChanged(true); 1363 omnibox_view->model()->OnControlKeyChanged(true);
1382 1364
1383 // Inline autocomplete should still be there. 1365 // Inline autocomplete should still be there.
1384 EXPECT_EQ(old_text, omnibox_view->GetText()); 1366 EXPECT_EQ(old_text, omnibox_view->GetText());
1385 } 1367 }
1386 1368
1387 #if defined(TOOLKIT_GTK) || defined(TOOLKIT_VIEWS) 1369 #if defined(TOOLKIT_VIEWS)
1388 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, UndoRedo) { 1370 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, UndoRedo) {
1389 ui_test_utils::NavigateToURL(browser(), GURL(content::kAboutBlankURL)); 1371 ui_test_utils::NavigateToURL(browser(), GURL(content::kAboutBlankURL));
1390 chrome::FocusLocationBar(browser()); 1372 chrome::FocusLocationBar(browser());
1391 1373
1392 OmniboxView* omnibox_view = NULL; 1374 OmniboxView* omnibox_view = NULL;
1393 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1375 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1394 1376
1395 base::string16 old_text = omnibox_view->GetText(); 1377 base::string16 old_text = omnibox_view->GetText();
1396 EXPECT_EQ(base::UTF8ToUTF16(content::kAboutBlankURL), old_text); 1378 EXPECT_EQ(base::UTF8ToUTF16(content::kAboutBlankURL), old_text);
1397 EXPECT_TRUE(omnibox_view->IsSelectAll()); 1379 EXPECT_TRUE(omnibox_view->IsSelectAll());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 // Insert text: ダ 1435 // Insert text: ダ
1454 omnibox_view->SetUserText(base::UTF8ToUTF16("\357\276\200\357\276\236")); 1436 omnibox_view->SetUserText(base::UTF8ToUTF16("\357\276\200\357\276\236"));
1455 1437
1456 // Move the cursor to the end. 1438 // Move the cursor to the end.
1457 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0)); 1439 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0));
1458 1440
1459 // Backspace should delete one character. 1441 // Backspace should delete one character.
1460 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0)); 1442 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_BACK, 0));
1461 EXPECT_EQ(base::UTF8ToUTF16("\357\276\200"), omnibox_view->GetText()); 1443 EXPECT_EQ(base::UTF8ToUTF16("\357\276\200"), omnibox_view->GetText());
1462 } 1444 }
1463 #endif // defined(TOOLKIT_GTK) || defined(TOOLKIT_VIEWS) 1445 #endif // defined(TOOLKIT_VIEWS)
1464 1446
1465 // Flaky test. crbug.com/356850 1447 // Flaky test. crbug.com/356850
1466 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, 1448 IN_PROC_BROWSER_TEST_F(OmniboxViewTest,
1467 DISABLED_DoesNotUpdateAutocompleteOnBlur) { 1449 DISABLED_DoesNotUpdateAutocompleteOnBlur) {
1468 OmniboxView* omnibox_view = NULL; 1450 OmniboxView* omnibox_view = NULL;
1469 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1451 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1470 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model(); 1452 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model();
1471 ASSERT_TRUE(popup_model); 1453 ASSERT_TRUE(popup_model);
1472 1454
1473 // Input something to trigger inline autocomplete. 1455 // Input something to trigger inline autocomplete.
1474 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys)); 1456 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kInlineAutocompleteTextKeys));
1475 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 1457 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
1476 ASSERT_TRUE(popup_model->IsOpen()); 1458 ASSERT_TRUE(popup_model->IsOpen());
1477 size_t start, end; 1459 size_t start, end;
1478 omnibox_view->GetSelectionBounds(&start, &end); 1460 omnibox_view->GetSelectionBounds(&start, &end);
1479 EXPECT_TRUE(start != end); 1461 EXPECT_TRUE(start != end);
1480 base::string16 old_autocomplete_text = 1462 base::string16 old_autocomplete_text =
1481 omnibox_view->model()->autocomplete_controller()->input().text(); 1463 omnibox_view->model()->autocomplete_controller()->input().text();
1482 1464
1483 // Unfocus the omnibox. This should clear the text field selection and 1465 // Unfocus the omnibox. This should clear the text field selection and
1484 // close the popup, but should not run autocomplete. 1466 // close the popup, but should not run autocomplete.
1485 // Note: GTK preserves the selection when the omnibox is unfocused. 1467 // Note: GTK preserves the selection when the omnibox is unfocused.
1486 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); 1468 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
1487 ASSERT_FALSE(popup_model->IsOpen()); 1469 ASSERT_FALSE(popup_model->IsOpen());
1488 omnibox_view->GetSelectionBounds(&start, &end); 1470 omnibox_view->GetSelectionBounds(&start, &end);
1489 #if !defined(TOOLKIT_GTK)
1490 EXPECT_TRUE(start == end); 1471 EXPECT_TRUE(start == end);
1491 #endif
1492 1472
1493 EXPECT_EQ(old_autocomplete_text, 1473 EXPECT_EQ(old_autocomplete_text,
1494 omnibox_view->model()->autocomplete_controller()->input().text()); 1474 omnibox_view->model()->autocomplete_controller()->input().text());
1495 } 1475 }
1496 1476
1497 #if defined(TOOLKIT_GTK)
1498 // See http://crbug.com/63860
1499 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, PrimarySelection) {
1500 OmniboxView* omnibox_view = NULL;
1501 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1502 omnibox_view->SetUserText(ASCIIToUTF16("Hello world"));
1503 EXPECT_FALSE(omnibox_view->IsSelectAll());
1504
1505 // Move the cursor to the end.
1506 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0));
1507
1508 // Select all text by pressing Shift+Home
1509 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_HOME, ui::EF_SHIFT_DOWN));
1510 EXPECT_TRUE(omnibox_view->IsSelectAll());
1511
1512 // The selected content should be saved to the PRIMARY clipboard.
1513 EXPECT_EQ("Hello world", GetPrimarySelectionText());
1514
1515 // Move the cursor to the end.
1516 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_END, 0));
1517 EXPECT_FALSE(omnibox_view->IsSelectAll());
1518
1519 // The content in the PRIMARY clipboard should not be cleared.
1520 EXPECT_EQ("Hello world", GetPrimarySelectionText());
1521 }
1522 #endif // defined(TOOLKIT_GTK)
1523
1524 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, Paste) { 1477 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, Paste) {
1525 OmniboxView* omnibox_view = NULL; 1478 OmniboxView* omnibox_view = NULL;
1526 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1479 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1527 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model(); 1480 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model();
1528 ASSERT_TRUE(popup_model); 1481 ASSERT_TRUE(popup_model);
1529 EXPECT_FALSE(popup_model->IsOpen()); 1482 EXPECT_FALSE(popup_model->IsOpen());
1530 1483
1531 // Paste should yield the expected text and open the popup. 1484 // Paste should yield the expected text and open the popup.
1532 SetClipboardText(ASCIIToUTF16(kSearchText)); 1485 SetClipboardText(ASCIIToUTF16(kSearchText));
1533 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, kCtrlOrCmdMask)); 1486 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_V, kCtrlOrCmdMask));
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1707 OmniboxView* omnibox_view = NULL; 1660 OmniboxView* omnibox_view = NULL;
1708 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1661 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1709 EXPECT_TRUE(chrome::ExecuteCommand(browser(), IDC_EDIT_SEARCH_ENGINES)); 1662 EXPECT_TRUE(chrome::ExecuteCommand(browser(), IDC_EDIT_SEARCH_ENGINES));
1710 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone()); 1663 ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
1711 const std::string target_url = 1664 const std::string target_url =
1712 std::string(chrome::kChromeUISettingsURL) + chrome::kSearchEnginesSubPage; 1665 std::string(chrome::kChromeUISettingsURL) + chrome::kSearchEnginesSubPage;
1713 EXPECT_EQ(ASCIIToUTF16(target_url), omnibox_view->GetText()); 1666 EXPECT_EQ(ASCIIToUTF16(target_url), omnibox_view->GetText());
1714 EXPECT_FALSE(omnibox_view->model()->popup_model()->IsOpen()); 1667 EXPECT_FALSE(omnibox_view->model()->popup_model()->IsOpen());
1715 } 1668 }
1716 1669
1717 #if !defined(TOOLKIT_GTK)
1718 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, BeginningShownAfterBlur) { 1670 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, BeginningShownAfterBlur) {
1719 OmniboxView* omnibox_view = NULL; 1671 OmniboxView* omnibox_view = NULL;
1720 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1672 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1721 1673
1722 omnibox_view->OnBeforePossibleChange(); 1674 omnibox_view->OnBeforePossibleChange();
1723 omnibox_view->SetWindowTextAndCaretPos(ASCIIToUTF16("data:text/plain,test"), 1675 omnibox_view->SetWindowTextAndCaretPos(ASCIIToUTF16("data:text/plain,test"),
1724 5U, false, false); 1676 5U, false, false);
1725 omnibox_view->OnAfterPossibleChange(); 1677 omnibox_view->OnAfterPossibleChange();
1726 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX)); 1678 ASSERT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1727 size_t start, end; 1679 size_t start, end;
1728 omnibox_view->GetSelectionBounds(&start, &end); 1680 omnibox_view->GetSelectionBounds(&start, &end);
1729 ASSERT_EQ(5U, start); 1681 ASSERT_EQ(5U, start);
1730 ASSERT_EQ(5U, end); 1682 ASSERT_EQ(5U, end);
1731 1683
1732 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); 1684 ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
1733 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX)); 1685 ASSERT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
1734 1686
1735 omnibox_view->GetSelectionBounds(&start, &end); 1687 omnibox_view->GetSelectionBounds(&start, &end);
1736 ASSERT_EQ(0U, start); 1688 ASSERT_EQ(0U, start);
1737 ASSERT_EQ(0U, end); 1689 ASSERT_EQ(0U, end);
1738 } 1690 }
1739 #endif // !defined(TOOLKIT_GTK)
1740 1691
1741 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, CtrlArrowAfterArrowSuggestions) { 1692 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, CtrlArrowAfterArrowSuggestions) {
1742 OmniboxView* omnibox_view = NULL; 1693 OmniboxView* omnibox_view = NULL;
1743 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view)); 1694 ASSERT_NO_FATAL_FAILURE(GetOmniboxView(&omnibox_view));
1744 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model(); 1695 OmniboxPopupModel* popup_model = omnibox_view->model()->popup_model();
1745 ASSERT_TRUE(popup_model); 1696 ASSERT_TRUE(popup_model);
1746 1697
1747 // Input something to trigger results. 1698 // Input something to trigger results.
1748 const wchar_t kKeys[] = { ui::VKEY_B, ui::VKEY_A, ui::VKEY_R, 0 }; 1699 const wchar_t kKeys[] = { ui::VKEY_B, ui::VKEY_A, ui::VKEY_R, 0 };
1749 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kKeys)); 1700 ASSERT_NO_FATAL_FAILURE(SendKeySequence(kKeys));
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1831 omnibox_view->Update(); 1782 omnibox_view->Update();
1832 EXPECT_EQ(url_c, omnibox_view->GetText()); 1783 EXPECT_EQ(url_c, omnibox_view->GetText());
1833 } 1784 }
1834 1785
1835 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, EscDisablesSearchTermReplacement) { 1786 IN_PROC_BROWSER_TEST_F(OmniboxViewTest, EscDisablesSearchTermReplacement) {
1836 browser()->toolbar_model()->set_url_replacement_enabled(true); 1787 browser()->toolbar_model()->set_url_replacement_enabled(true);
1837 chrome::FocusLocationBar(browser()); 1788 chrome::FocusLocationBar(browser());
1838 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, 0)); 1789 ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_ESCAPE, 0));
1839 EXPECT_FALSE(browser()->toolbar_model()->url_replacement_enabled()); 1790 EXPECT_FALSE(browser()->toolbar_model()->url_replacement_enabled());
1840 } 1791 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698