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

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

Issue 2086223002: Convert instant search messages to Mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge Created 3 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/ui/BUILD.gn ('k') | chrome/browser/ui/search/instant_tab_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
diff --git a/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc b/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
index 075768bea0aa1af8db570b05fd715b9900b7bd06..5d18b0774df4d7bc0c55fe097ec7b72681e0ca3c 100644
--- a/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
+++ b/chrome/browser/ui/search/instant_search_prerenderer_unittest.cc
@@ -28,10 +28,12 @@
#include "chrome/browser/search/search.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/browser_instant_controller.h"
+#include "chrome/browser/ui/search/search_ipc_router.h"
#include "chrome/browser/ui/search/search_tab_helper.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/search/instant_types.h"
+#include "chrome/common/search/mock_searchbox.h"
#include "components/omnibox/browser/autocomplete_match.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/web_contents.h"
@@ -43,9 +45,20 @@
#include "ui/gfx/geometry/size.h"
using base::ASCIIToUTF16;
+using testing::_;
+using testing::AllOf;
+using testing::Eq;
+using testing::Field;
+using testing::Return;
namespace {
+class MockSearchBoxClientFactory
+ : public SearchIPCRouter::SearchBoxClientFactory {
+ public:
+ MOCK_METHOD0(GetSearchBox, chrome::mojom::SearchBox*(void));
+};
+
using content::Referrer;
using prerender::Origin;
using prerender::PrerenderContents;
@@ -56,13 +69,13 @@ using prerender::PrerenderTabHelper;
class DummyPrerenderContents : public PrerenderContents {
public:
- DummyPrerenderContents(
- PrerenderManager* prerender_manager,
- Profile* profile,
- const GURL& url,
- const Referrer& referrer,
- Origin origin,
- bool call_did_finish_load);
+ DummyPrerenderContents(PrerenderManager* prerender_manager,
+ Profile* profile,
+ const GURL& url,
+ const Referrer& referrer,
+ Origin origin,
+ bool call_did_finish_load,
+ chrome::mojom::SearchBox* search_box);
void StartPrerendering(
const gfx::Rect& bounds,
@@ -74,15 +87,16 @@ class DummyPrerenderContents : public PrerenderContents {
Profile* profile_;
const GURL url_;
bool call_did_finish_load_;
+ chrome::mojom::SearchBox* search_box_;
DISALLOW_COPY_AND_ASSIGN(DummyPrerenderContents);
};
class DummyPrerenderContentsFactory : public PrerenderContents::Factory {
public:
- explicit DummyPrerenderContentsFactory(bool call_did_finish_load)
- : call_did_finish_load_(call_did_finish_load) {
- }
+ DummyPrerenderContentsFactory(bool call_did_finish_load,
+ chrome::mojom::SearchBox* search_box)
+ : call_did_finish_load_(call_did_finish_load), search_box_(search_box) {}
PrerenderContents* CreatePrerenderContents(
PrerenderManager* prerender_manager,
@@ -93,6 +107,7 @@ class DummyPrerenderContentsFactory : public PrerenderContents::Factory {
private:
bool call_did_finish_load_;
+ chrome::mojom::SearchBox* search_box_;
DISALLOW_COPY_AND_ASSIGN(DummyPrerenderContentsFactory);
};
@@ -103,12 +118,13 @@ DummyPrerenderContents::DummyPrerenderContents(
const GURL& url,
const Referrer& referrer,
Origin origin,
- bool call_did_finish_load)
+ bool call_did_finish_load,
+ chrome::mojom::SearchBox* search_box)
: PrerenderContents(prerender_manager, profile, url, referrer, origin),
profile_(profile),
url_(url),
- call_did_finish_load_(call_did_finish_load) {
-}
+ call_did_finish_load_(call_did_finish_load),
+ search_box_(search_box) {}
void DummyPrerenderContents::StartPrerendering(
const gfx::Rect& bounds,
@@ -122,6 +138,12 @@ void DummyPrerenderContents::StartPrerendering(
content::NavigationController::LoadURLParams params(url_);
prerender_contents_->GetController().LoadURLWithParams(params);
SearchTabHelper::CreateForWebContents(prerender_contents_.get());
+ auto* search_tab =
+ SearchTabHelper::FromWebContents(prerender_contents_.get());
+ auto factory = base::MakeUnique<MockSearchBoxClientFactory>();
+ ON_CALL(*factory, GetSearchBox()).WillByDefault(Return(search_box_));
+ search_tab->ipc_router_for_testing()
+ .set_search_box_client_factory_for_testing(std::move(factory));
prerendering_has_started_ = true;
DCHECK(session_storage_namespace);
@@ -149,7 +171,7 @@ PrerenderContents* DummyPrerenderContentsFactory::CreatePrerenderContents(
const Referrer& referrer,
Origin origin) {
return new DummyPrerenderContents(prerender_manager, profile, url, referrer,
- origin, call_did_finish_load_);
+ origin, call_did_finish_load_, search_box_);
}
} // namespace
@@ -170,8 +192,8 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
AddTab(browser(), GURL(url::kAboutBlankURL));
PrerenderManagerFactory::GetForBrowserContext(browser()->profile())
- ->SetPrerenderContentsFactoryForTest(
- new DummyPrerenderContentsFactory(call_did_finish_load));
+ ->SetPrerenderContentsFactoryForTest(new DummyPrerenderContentsFactory(
+ call_did_finish_load, &mock_search_box_));
if (prerender_search_results_base_page) {
content::SessionStorageNamespace* session_storage_namespace =
GetActiveWebContents()->GetController().
@@ -199,13 +221,6 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
return GetInstantSearchPrerenderer()->prerender_contents();
}
- bool MessageWasSent(uint32_t id) {
- content::MockRenderProcessHost* process =
- static_cast<content::MockRenderProcessHost*>(
- prerender_contents()->GetMainFrame()->GetProcess());
- return process->sink().GetFirstMessageMatching(id) != NULL;
- }
-
content::WebContents* GetActiveWebContents() const {
return browser()->tab_strip_model()->GetWebContentsAt(0);
}
@@ -222,6 +237,11 @@ class InstantSearchPrerendererTest : public InstantUnitTestBase {
EXPECT_TRUE(prerenderer->CanCommitQuery(GetActiveWebContents(), query));
EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle());
}
+
+ MockSearchBox* mock_search_box() { return &mock_search_box_; }
+
+ private:
+ MockSearchBox mock_search_box_;
};
TEST_F(InstantSearchPrerendererTest, GetSearchTermsFromPrerenderedPage) {
@@ -247,11 +267,10 @@ TEST_F(InstantSearchPrerendererTest, PrefetchSearchResults) {
Init(true, true);
EXPECT_TRUE(prerender_handle()->IsFinishedLoading());
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
+ EXPECT_CALL(*mock_search_box(), SetSuggestionToPrefetch(_));
prerenderer->Prerender(
InstantSuggestion(ASCIIToUTF16("flowers"), std::string()));
EXPECT_EQ("flowers", base::UTF16ToASCII(prerenderer->get_last_query()));
- EXPECT_TRUE(MessageWasSent(
- ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID));
}
TEST_F(InstantSearchPrerendererTest, DoNotPrefetchSearchResults) {
@@ -259,11 +278,10 @@ TEST_F(InstantSearchPrerendererTest, DoNotPrefetchSearchResults) {
// Page hasn't finished loading yet.
EXPECT_FALSE(prerender_handle()->IsFinishedLoading());
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
+ EXPECT_CALL(*mock_search_box(), SetSuggestionToPrefetch(_)).Times(0);
prerenderer->Prerender(
InstantSuggestion(ASCIIToUTF16("flowers"), std::string()));
EXPECT_EQ("", base::UTF16ToASCII(prerenderer->get_last_query()));
- EXPECT_FALSE(MessageWasSent(
- ChromeViewMsg_SearchBoxSetSuggestionToPrefetch::ID));
}
TEST_F(InstantSearchPrerendererTest, CanCommitQuery) {
@@ -285,8 +303,8 @@ TEST_F(InstantSearchPrerendererTest, CommitQuery) {
base::string16 query = ASCIIToUTF16("flowers");
PrerenderSearchQuery(query);
InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
+ EXPECT_CALL(*mock_search_box(), Submit(_, _));
prerenderer->Commit(query, EmbeddedSearchRequestParams());
- EXPECT_TRUE(MessageWasSent(ChromeViewMsg_SearchBoxSubmit::ID));
}
TEST_F(InstantSearchPrerendererTest, CancelPrerenderRequestOnTabChangeEvent) {
@@ -435,7 +453,7 @@ class ReuseInstantSearchBasePageTest : public InstantSearchPrerendererTest {
void SetUp() override {
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
"Group1 strk:20"));
- InstantUnitTestBase::SetUp();
+ InstantSearchPrerendererTest::SetUp();
}
};
@@ -504,6 +522,17 @@ TEST_F(TestUsePrerenderPage, DoNotUsePrerenderPage) {
TEST_F(TestUsePrerenderPage, SetEmbeddedSearchRequestParams) {
PrerenderSearchQuery(ASCIIToUTF16("foo"));
EXPECT_TRUE(browser()->instant_controller());
+ EXPECT_CALL(
+ *mock_search_box(),
+ Submit(Eq(ASCIIToUTF16("foo")),
+ AllOf(Field(&EmbeddedSearchRequestParams::original_query,
+ Eq(base::ASCIIToUTF16("f"))),
+ Field(&EmbeddedSearchRequestParams::input_encoding,
+ Eq(base::ASCIIToUTF16("utf-8"))),
+ Field(&EmbeddedSearchRequestParams::rlz_parameter_value,
+ Eq(base::ASCIIToUTF16(""))),
+ Field(&EmbeddedSearchRequestParams::assisted_query_stats,
+ Eq(base::ASCIIToUTF16("chrome...0"))))));
// Open a search results page. Query extraction flag is disabled in field
// trials. Search results page URL does not contain search terms replacement
@@ -511,21 +540,5 @@ TEST_F(TestUsePrerenderPage, SetEmbeddedSearchRequestParams) {
GURL url("https://www.google.com/url?bar=foo&aqs=chrome...0&ie=utf-8&oq=f");
browser()->instant_controller()->OpenInstant(
WindowOpenDisposition::CURRENT_TAB, url);
- content::MockRenderProcessHost* process =
- static_cast<content::MockRenderProcessHost*>(
- prerender_contents()->GetMainFrame()->GetProcess());
- const IPC::Message* message = process->sink().GetFirstMessageMatching(
- ChromeViewMsg_SearchBoxSubmit::ID);
- ASSERT_TRUE(message);
-
- // Verify the IPC message params.
- std::tuple<base::string16, EmbeddedSearchRequestParams> params;
- ChromeViewMsg_SearchBoxSubmit::Read(message, &params);
- EXPECT_EQ("foo", base::UTF16ToASCII(std::get<0>(params)));
- EXPECT_EQ("f", base::UTF16ToASCII(std::get<1>(params).original_query));
- EXPECT_EQ("utf-8", base::UTF16ToASCII(std::get<1>(params).input_encoding));
- EXPECT_EQ("", base::UTF16ToASCII(std::get<1>(params).rlz_parameter_value));
- EXPECT_EQ("chrome...0",
- base::UTF16ToASCII(std::get<1>(params).assisted_query_stats));
}
#endif
« no previous file with comments | « chrome/browser/ui/BUILD.gn ('k') | chrome/browser/ui/search/instant_tab_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698