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

Unified Diff: chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc

Issue 6281011: Allow space to accept keyword even when inline autocomplete is available. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 6e00c9357ec845ec36e758c211a183e18a8c8715..01918989d1ac8cc96b6a32c7c9659137b99b36f4 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_browsertest.cc
@@ -254,7 +254,7 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
model->SetDefaultSearchProvider(template_url);
}
- void SetupHistory() {
+ void AddHistoryEntry(const TestHistoryEntry& entry, const Time& time) {
Profile* profile = browser()->profile();
HistoryService* history_service =
profile->GetHistoryService(Profile::EXPLICIT_ACCESS);
@@ -277,22 +277,26 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
ui_test_utils::RunMessageLoop();
}
+ GURL url(entry.url);
+ // Add everything in order of time. We don't want to have a time that
+ // is "right now" or it will nondeterministically appear in the results.
+ history_service->AddPageWithDetails(url, UTF8ToUTF16(entry.title),
+ entry.visit_count,
+ entry.typed_count, time, false,
+ history::SOURCE_BROWSED);
+ history_service->SetPageContents(url, UTF8ToUTF16(entry.body));
+ if (entry.starred)
+ bookmark_model->SetURLStarred(url, string16(), true);
+ }
+
+ void SetupHistory() {
// Add enough history pages containing |kSearchText| to trigger
// open history page url in autocomplete result.
for (size_t i = 0; i < arraysize(kHistoryEntries); i++) {
- const TestHistoryEntry& cur = kHistoryEntries[i];
- GURL url(cur.url);
// Add everything in order of time. We don't want to have a time that
// is "right now" or it will nondeterministically appear in the results.
Time t = Time::Now() - TimeDelta::FromHours(i + 1);
- history_service->AddPageWithDetails(url, UTF8ToUTF16(cur.title),
- cur.visit_count,
- cur.typed_count, t, false,
- history::SOURCE_BROWSED);
- history_service->SetPageContents(url, UTF8ToUTF16(cur.body));
- if (cur.starred) {
- bookmark_model->SetURLStarred(url, string16(), true);
- }
+ ASSERT_NO_FATAL_FAILURE(AddHistoryEntry(kHistoryEntries[i], t));
}
}
@@ -738,7 +742,8 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
ASSERT_TRUE(edit_view->model()->keyword().empty());
ASSERT_EQ(text + L" bar", edit_view->GetText());
- // Keyword shouldn't be accepted by pressing space with a selected range.
+ // Keyword could be accepted by pressing space with a selected range at the
+ // end of text.
edit_view->OnBeforePossibleChange();
edit_view->OnInlineAutocompleteTextMaybeChanged(
text + L" ", text.length());
@@ -751,12 +756,36 @@ class AutocompleteEditViewTest : public InProcessBrowserTest,
edit_view->GetSelectionBounds(&start, &end);
ASSERT_NE(start, end);
ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
- ASSERT_TRUE(edit_view->model()->is_keyword_hint());
+ ASSERT_FALSE(edit_view->model()->is_keyword_hint());
ASSERT_EQ(text, edit_view->model()->keyword());
- ASSERT_EQ(text + L" ", edit_view->GetText());
+ ASSERT_EQ(std::wstring(), edit_view->GetText());
- edit_view->GetSelectionBounds(&start, &end);
- ASSERT_EQ(start, end);
+ edit_view->SetUserText(std::wstring());
+
+ // Space should accept keyword even when inline autocomplete is available.
+ const TestHistoryEntry kHistoryFoobar = {
+ "http://www.foobar.com", "Page foobar", kSearchText, 10000, 10000, true
+ };
+
+ // Add a history entry to trigger inline autocomplete when typing "foo".
+ ASSERT_NO_FATAL_FAILURE(
+ AddHistoryEntry(kHistoryFoobar, Time::Now() - TimeDelta::FromHours(1)));
+
+ // Type "foo" to trigger inline autocomplete.
+ ASSERT_NO_FATAL_FAILURE(SendKeySequence(kSearchKeywordKeys));
+ ASSERT_NO_FATAL_FAILURE(WaitForAutocompleteControllerDone());
+ ASSERT_TRUE(edit_view->model()->popup_model()->IsOpen());
+ ASSERT_NE(text, edit_view->GetText());
+
+ // Keyword hint shouldn't be visible.
+ ASSERT_FALSE(edit_view->model()->is_keyword_hint());
+ ASSERT_TRUE(edit_view->model()->keyword().empty());
+
+ // Trigger keyword mode by space.
+ ASSERT_NO_FATAL_FAILURE(SendKey(ui::VKEY_SPACE, false, false, false));
+ ASSERT_FALSE(edit_view->model()->is_keyword_hint());
+ ASSERT_EQ(text, edit_view->model()->keyword());
+ ASSERT_TRUE(edit_view->GetText().empty());
}
};
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698