Index: chrome/browser/ui/search/search_ipc_router_unittest.cc |
diff --git a/chrome/browser/ui/search/search_ipc_router_unittest.cc b/chrome/browser/ui/search/search_ipc_router_unittest.cc |
index defeaa230954da71ba185889944402e5cb473993..a9507a79697af589a9c9c9bd762188abb1dd9dc1 100644 |
--- a/chrome/browser/ui/search/search_ipc_router_unittest.cc |
+++ b/chrome/browser/ui/search/search_ipc_router_unittest.cc |
@@ -46,6 +46,7 @@ |
virtual ~MockSearchIPCRouterDelegate() {} |
MOCK_METHOD1(OnInstantSupportDetermined, void(bool supports_instant)); |
+ MOCK_METHOD1(OnSetVoiceSearchSupport, void(bool supports_voice_search)); |
MOCK_METHOD1(FocusOmnibox, void(OmniboxFocusState state)); |
MOCK_METHOD3(NavigateToURL, void(const GURL&, WindowOpenDisposition, bool)); |
MOCK_METHOD1(OnDeleteMostVisitedItem, void(const GURL& url)); |
@@ -66,6 +67,7 @@ |
public: |
virtual ~MockSearchIPCRouterPolicy() {} |
+ MOCK_METHOD0(ShouldProcessSetVoiceSearchSupport, bool()); |
MOCK_METHOD1(ShouldProcessFocusOmnibox, bool(bool)); |
MOCK_METHOD1(ShouldProcessNavigateToURL, bool(bool)); |
MOCK_METHOD0(ShouldProcessDeleteMostVisitedItem, bool()); |
@@ -83,6 +85,7 @@ |
MOCK_METHOD0(ShouldSendOmniboxFocusChanged, bool()); |
MOCK_METHOD0(ShouldSendMostVisitedItems, bool()); |
MOCK_METHOD0(ShouldSendThemeBackgroundInfo, bool()); |
+ MOCK_METHOD0(ShouldSendToggleVoiceSearch, bool()); |
MOCK_METHOD0(ShouldSubmitQuery, bool()); |
}; |
@@ -221,6 +224,32 @@ |
OnMessageReceived(ChromeViewHostMsg_SearchBoxNavigate( |
contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), destination_url, |
CURRENT_TAB, true)); |
+} |
+ |
+TEST_F(SearchIPCRouterTest, ProcessVoiceSearchSupportMsg) { |
+ NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
+ SetupMockDelegateAndPolicy(); |
+ MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
+ EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(1); |
+ EXPECT_CALL(*(policy), ShouldProcessSetVoiceSearchSupport()).Times(1) |
+ .WillOnce(testing::Return(true)); |
+ |
+ content::WebContents* contents = web_contents(); |
+ OnMessageReceived(ChromeViewHostMsg_SetVoiceSearchSupported( |
+ contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), true)); |
+} |
+ |
+TEST_F(SearchIPCRouterTest, IgnoreVoiceSearchSupportMsg) { |
+ NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
+ EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(0); |
+ SetupMockDelegateAndPolicy(); |
+ MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
+ EXPECT_CALL(*policy, ShouldProcessSetVoiceSearchSupport()).Times(1) |
+ .WillOnce(testing::Return(false)); |
+ |
+ content::WebContents* contents = web_contents(); |
+ OnMessageReceived(ChromeViewHostMsg_SetVoiceSearchSupported( |
+ contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), true)); |
} |
TEST_F(SearchIPCRouterTest, ProcessFocusOmniboxMsg) { |
@@ -848,6 +877,30 @@ |
EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxSubmit::ID)); |
} |
+TEST_F(SearchIPCRouterTest, SendToggleVoiceSearch) { |
+ NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
+ SetupMockDelegateAndPolicy(); |
+ MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
+ EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) |
+ .WillOnce(testing::Return(true)); |
+ |
+ process()->sink().ClearMessages(); |
+ GetSearchIPCRouter().ToggleVoiceSearch(); |
+ EXPECT_TRUE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); |
+} |
+ |
+TEST_F(SearchIPCRouterTest, DoNotSendToggleVoiceSearch) { |
+ NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
+ SetupMockDelegateAndPolicy(); |
+ MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
+ EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) |
+ .WillOnce(testing::Return(false)); |
+ |
+ process()->sink().ClearMessages(); |
+ GetSearchIPCRouter().ToggleVoiceSearch(); |
+ EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); |
+} |
+ |
TEST_F(SearchIPCRouterTest, SpuriousMessageTypesIgnored) { |
NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
SetupMockDelegateAndPolicy(); |