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

Unified Diff: chrome/browser/ui/search/instant_extended_interactive_uitest.cc

Issue 15732014: InstantExtended: Send SearchProvider suggestions to the page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Filter navsuggest and add tests. Created 7 years, 7 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/ui/search/instant_controller.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/search/instant_extended_interactive_uitest.cc
diff --git a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
index 7fc123ebb52cc43402c3919cd351477d2af4cd07..ff65a4eb8be9ba91f01ab55f68dd98f5f7a9d2b6 100644
--- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
+++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
@@ -2310,6 +2310,78 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, SearchProviderForLocalNTP) {
search_provider()->IsNonInstantSearchDone());
}
+IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OverlaySendsSearchWhatYouTyped) {
+ ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
+ FocusOmniboxAndWaitForInstantOverlayAndNTPSupport();
+
+ // This input could be interpreted either as an URL or a query based on the
+ // relative ranking of search-what-you-typed or url-what-you-typed.
+ content::WindowedNotificationObserver autocomplete_observer(
+ chrome::NOTIFICATION_INSTANT_SENT_AUTOCOMPLETE_RESULTS,
+ content::NotificationService::AllSources());
+ SetOmniboxText("define:foo");
+ autocomplete_observer.Wait();
+
+ // In this case, we should treat [define:foo] as a query, so
+ // search-what-you-typed should be the top suggestion.
+ EXPECT_TRUE(ExecuteScript(
+ "var sorted = chrome.embeddedSearch.searchBox.nativeSuggestions.sort("
+ "function (a,b) {"
+ "return b.rankingData.relevance - a.rankingData.relevance;"
+ "});"));
+ std::string type;
+ EXPECT_TRUE(GetStringFromJS(instant()->GetOverlayContents(),
+ "sorted[0].type", &type));
+ ASSERT_EQ("search-what-you-typed", type);
+}
+
+IN_PROC_BROWSER_TEST_F(InstantExtendedTest,
+ OverlayDoesNotEchoSearchProviderNAVSUGGEST) {
+ ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
+ FocusOmniboxAndWaitForInstantOverlayAndNTPSupport();
+
+ // Show the overlay so suggestions are allowed.
+ SetOmniboxTextAndWaitForOverlayToShow("www.");
+ content::WebContents* overlay = instant()->GetOverlayContents();
+
+ // Set a URL suggestion and wait for SearchProvider to echo it.
+ content::WindowedNotificationObserver autocomplete_observer(
+ chrome::NOTIFICATION_INSTANT_SENT_AUTOCOMPLETE_RESULTS,
+ content::NotificationService::AllSources());
+ instant()->SetSuggestions(
+ overlay,
+ std::vector<InstantSuggestion>(
+ 1,
+ InstantSuggestion(ASCIIToUTF16("http://www.example.com/"),
+ INSTANT_COMPLETE_NOW,
+ INSTANT_SUGGESTION_URL,
+ ASCIIToUTF16("www."),
+ kNoMatchIndex)));
+ autocomplete_observer.Wait();
+
+ // Check that SearchProvider set a NAVSUGGEST match.
+ bool have_navsuggest_match = false;
+ SearchProvider* search_provider =
+ omnibox()->model()->autocomplete_controller()->search_provider();
+ for (ACMatches::const_iterator match = search_provider->matches().begin();
+ match != search_provider->matches().end(); ++match) {
+ if (match->type == AutocompleteMatchType::NAVSUGGEST) {
+ have_navsuggest_match = true;
+ break;
+ }
+ }
+ ASSERT_TRUE(have_navsuggest_match);
+
+ // Check that InstantController did not send the NAVSUGGEST match.
+ bool sent_navsuggest_match = true;
+ EXPECT_TRUE(GetBoolFromJS(overlay,
+ "chrome.embeddedSearch.searchBox.nativeSuggestions.some("
+ "function (s) {"
+ "return s.type == 'navsuggest';"
+ "})", &sent_navsuggest_match));
+ EXPECT_FALSE(sent_navsuggest_match);
+}
+
IN_PROC_BROWSER_TEST_F(InstantExtendedTest, AcceptingURLSearchDoesNotNavigate) {
// Get a committed Instant tab, which will be in the Instant process and thus
// support chrome::GetSearchTerms().
« no previous file with comments | « chrome/browser/ui/search/instant_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698