Chromium Code Reviews| Index: chrome/browser/ui/search/search_tab_helper_unittest.cc |
| diff --git a/chrome/browser/ui/search/search_tab_helper_unittest.cc b/chrome/browser/ui/search/search_tab_helper_unittest.cc |
| index 71fde0f7a2a34130e80f8d0210001fbbc7505d38..0ecc88700739d3adb342e02e127adac11c7173d3 100644 |
| --- a/chrome/browser/ui/search/search_tab_helper_unittest.cc |
| +++ b/chrome/browser/ui/search/search_tab_helper_unittest.cc |
| @@ -19,6 +19,7 @@ |
| #include "chrome/browser/ui/search/search_ipc_router.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/render_messages.h" |
| +#include "chrome/common/search/mock_searchbox.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/grit/generated_resources.h" |
| #include "chrome/test/base/browser_with_test_window_test.h" |
| @@ -41,7 +42,9 @@ |
| class OmniboxView; |
| +using testing::Eq; |
| using testing::Return; |
| +using testing::_; |
| namespace { |
| @@ -66,13 +69,26 @@ class MockSearchIPCRouterDelegate : public SearchIPCRouter::Delegate { |
| MOCK_METHOD0(OnHistorySyncCheck, void()); |
| }; |
| +class MockSearchBoxClientFactory |
| + : public SearchIPCRouter::SearchBoxClientFactory { |
| + public: |
| + MOCK_METHOD0(GetSearchBox, chrome::mojom::SearchBox*(void)); |
|
Marc Treib
2016/10/13 09:04:50
Once more: Fake :)
You could also put the fake fac
tibell
2016/10/13 23:29:44
Acknowledged.
I did consider doing exactly that,
|
| +}; |
| + |
| } // namespace |
| class SearchTabHelperTest : public ChromeRenderViewHostTestHarness { |
| public: |
| + SearchTabHelperTest() {} |
| + |
| void SetUp() override { |
| ChromeRenderViewHostTestHarness::SetUp(); |
| SearchTabHelper::CreateForWebContents(web_contents()); |
| + auto search_tab = SearchTabHelper::FromWebContents(web_contents()); |
| + auto factory = base::MakeUnique<MockSearchBoxClientFactory>(); |
| + ON_CALL(*factory, GetSearchBox()).WillByDefault(Return(&mock_search_box_)); |
| + search_tab->ipc_router().set_search_box_client_factory_for_testing( |
| + std::move(factory)); |
| } |
| content::BrowserContext* CreateBrowserContext() override { |
| @@ -110,14 +126,13 @@ class SearchTabHelperTest : public ChromeRenderViewHostTestHarness { |
| .WillRepeatedly(Return(result)); |
| } |
| - bool MessageWasSent(uint32_t id) { |
| - return process()->sink().GetFirstMessageMatching(id) != NULL; |
| - } |
| - |
| MockSearchIPCRouterDelegate* mock_delegate() { return &delegate_; } |
| + MockSearchBox* mock_search_box() { return &mock_search_box_; } |
| + |
| private: |
| MockSearchIPCRouterDelegate delegate_; |
| + MockSearchBox mock_search_box_; |
| }; |
| TEST_F(SearchTabHelperTest, DetermineIfPageSupportsInstant_Local) { |
| @@ -133,21 +148,17 @@ TEST_F(SearchTabHelperTest, DetermineIfPageSupportsInstant_Local) { |
| TEST_F(SearchTabHelperTest, DetermineIfPageSupportsInstant_NonLocal) { |
| NavigateAndCommit(GURL("chrome-search://foo/bar")); |
| - process()->sink().ClearMessages(); |
| EXPECT_CALL(*mock_delegate(), OnInstantSupportDetermined(true)).Times(1); |
| SearchTabHelper* search_tab_helper = |
| SearchTabHelper::FromWebContents(web_contents()); |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| search_tab_helper->ipc_router().set_delegate_for_testing(mock_delegate()); |
| + EXPECT_CALL(*mock_search_box(), DetermineIfPageSupportsInstant()); |
| search_tab_helper->DetermineIfPageSupportsInstant(); |
| - ASSERT_TRUE(MessageWasSent(ChromeViewMsg_DetermineIfPageSupportsInstant::ID)); |
| - std::unique_ptr<IPC::Message> response( |
| - new ChromeViewHostMsg_InstantSupportDetermined( |
| - web_contents()->GetRoutingID(), |
| - search_tab_helper->ipc_router().page_seq_no_for_testing(), true)); |
| - search_tab_helper->ipc_router().OnMessageReceived(*response); |
| + search_tab_helper->ipc_router().InstantSupportDetermined( |
| + search_tab_helper->ipc_router().page_seq_no_for_testing(), true); |
| } |
| TEST_F(SearchTabHelperTest, PageURLDoesntBelongToInstantRenderer) { |
| @@ -155,16 +166,14 @@ TEST_F(SearchTabHelperTest, PageURLDoesntBelongToInstantRenderer) { |
| // SearchTabHelper::DeterminerIfPageSupportsInstant() should return |
| // immediately without dispatching any message to the renderer. |
| NavigateAndCommit(GURL("http://www.example.com")); |
| - process()->sink().ClearMessages(); |
| EXPECT_CALL(*mock_delegate(), OnInstantSupportDetermined(false)).Times(0); |
| SearchTabHelper* search_tab_helper = |
| SearchTabHelper::FromWebContents(web_contents()); |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| search_tab_helper->ipc_router().set_delegate_for_testing(mock_delegate()); |
| + EXPECT_CALL(*mock_search_box(), DetermineIfPageSupportsInstant()).Times(0); |
| search_tab_helper->DetermineIfPageSupportsInstant(); |
| - ASSERT_FALSE(MessageWasSent( |
| - ChromeViewMsg_DetermineIfPageSupportsInstant::ID)); |
| } |
| TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatch) { |
| @@ -175,16 +184,9 @@ TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatch) { |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| const base::string16 test_identity = base::ASCIIToUTF16("foo@bar.com"); |
| + EXPECT_CALL(*mock_search_box(), |
| + ChromeIdentityCheckResult(Eq(test_identity), true)); |
| search_tab_helper->OnChromeIdentityCheck(test_identity); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_ChromeIdentityCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_ChromeIdentityCheckResult::Param params; |
| - ChromeViewMsg_ChromeIdentityCheckResult::Read(message, ¶ms); |
| - EXPECT_EQ(test_identity, std::get<0>(params)); |
| - ASSERT_TRUE(std::get<1>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatchSlightlyDifferentGmail) { |
| @@ -198,16 +200,9 @@ TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatchSlightlyDifferentGmail) { |
| // standard form. |
| const base::string16 test_identity = |
| base::ASCIIToUTF16("Foo.Bar.123@gmail.com"); |
| + EXPECT_CALL(*mock_search_box(), |
| + ChromeIdentityCheckResult(Eq(test_identity), true)); |
| search_tab_helper->OnChromeIdentityCheck(test_identity); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_ChromeIdentityCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_ChromeIdentityCheckResult::Param params; |
| - ChromeViewMsg_ChromeIdentityCheckResult::Read(message, ¶ms); |
| - EXPECT_EQ(test_identity, std::get<0>(params)); |
| - ASSERT_TRUE(std::get<1>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatchSlightlyDifferentGmail2) { |
| @@ -222,16 +217,9 @@ TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatchSlightlyDifferentGmail2) { |
| // a standard form. |
| const base::string16 test_identity = |
| base::ASCIIToUTF16("chromeguy7forever@googlemail.com"); |
| + EXPECT_CALL(*mock_search_box(), |
| + ChromeIdentityCheckResult(Eq(test_identity), true)); |
| search_tab_helper->OnChromeIdentityCheck(test_identity); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_ChromeIdentityCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_ChromeIdentityCheckResult::Param params; |
| - ChromeViewMsg_ChromeIdentityCheckResult::Read(message, ¶ms); |
| - EXPECT_EQ(test_identity, std::get<0>(params)); |
| - ASSERT_TRUE(std::get<1>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMismatch) { |
| @@ -242,16 +230,9 @@ TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMismatch) { |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com"); |
| + EXPECT_CALL(*mock_search_box(), |
| + ChromeIdentityCheckResult(Eq(test_identity), false)); |
| search_tab_helper->OnChromeIdentityCheck(test_identity); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_ChromeIdentityCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_ChromeIdentityCheckResult::Param params; |
| - ChromeViewMsg_ChromeIdentityCheckResult::Read(message, ¶ms); |
| - EXPECT_EQ(test_identity, std::get<0>(params)); |
| - ASSERT_FALSE(std::get<1>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnChromeIdentityCheckSignedOutMismatch) { |
| @@ -262,16 +243,9 @@ TEST_F(SearchTabHelperTest, OnChromeIdentityCheckSignedOutMismatch) { |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com"); |
| + EXPECT_CALL(*mock_search_box(), |
| + ChromeIdentityCheckResult(Eq(test_identity), false)); |
| search_tab_helper->OnChromeIdentityCheck(test_identity); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_ChromeIdentityCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_ChromeIdentityCheckResult::Param params; |
| - ChromeViewMsg_ChromeIdentityCheckResult::Read(message, ¶ms); |
| - EXPECT_EQ(test_identity, std::get<0>(params)); |
| - ASSERT_FALSE(std::get<1>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnHistorySyncCheckSyncing) { |
| @@ -281,15 +255,8 @@ TEST_F(SearchTabHelperTest, OnHistorySyncCheckSyncing) { |
| SearchTabHelper::FromWebContents(web_contents()); |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| + EXPECT_CALL(*mock_search_box(), HistorySyncCheckResult(true)); |
| search_tab_helper->OnHistorySyncCheck(); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_HistorySyncCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_HistorySyncCheckResult::Param params; |
| - ChromeViewMsg_HistorySyncCheckResult::Read(message, ¶ms); |
| - ASSERT_TRUE(std::get<0>(params)); |
| } |
| TEST_F(SearchTabHelperTest, OnHistorySyncCheckNotSyncing) { |
| @@ -299,15 +266,8 @@ TEST_F(SearchTabHelperTest, OnHistorySyncCheckNotSyncing) { |
| SearchTabHelper::FromWebContents(web_contents()); |
| ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| + EXPECT_CALL(*mock_search_box(), HistorySyncCheckResult(false)); |
| search_tab_helper->OnHistorySyncCheck(); |
| - |
| - const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| - ChromeViewMsg_HistorySyncCheckResult::ID); |
| - ASSERT_TRUE(message != NULL); |
| - |
| - ChromeViewMsg_HistorySyncCheckResult::Param params; |
| - ChromeViewMsg_HistorySyncCheckResult::Read(message, ¶ms); |
| - ASSERT_FALSE(std::get<0>(params)); |
| } |
| class TabTitleObserver : public content::WebContentsObserver { |