| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/search/search_ipc_router.h" | 5 #include "chrome/browser/ui/search/search_ipc_router.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 EXPECT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); | 173 EXPECT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| 174 return static_cast<MockSearchIPCRouterPolicy*>( | 174 return static_cast<MockSearchIPCRouterPolicy*>( |
| 175 search_tab_helper->ipc_router().policy()); | 175 search_tab_helper->ipc_router().policy()); |
| 176 } | 176 } |
| 177 | 177 |
| 178 SearchIPCRouter& GetSearchIPCRouter() { | 178 SearchIPCRouter& GetSearchIPCRouter() { |
| 179 return GetSearchTabHelper(web_contents())->ipc_router(); | 179 return GetSearchTabHelper(web_contents())->ipc_router(); |
| 180 } | 180 } |
| 181 | 181 |
| 182 void OnMessageReceived(const IPC::Message& message) { | 182 void OnMessageReceived(const IPC::Message& message) { |
| 183 GetSearchIPCRouter().OnMessageReceived(message); | 183 bool should_handle_message = |
| 184 chrome::IsRenderedInInstantProcess(web_contents(), profile()); |
| 185 bool handled = GetSearchIPCRouter().OnMessageReceived(message); |
| 186 ASSERT_EQ(should_handle_message, handled); |
| 184 } | 187 } |
| 185 | 188 |
| 186 bool IsActiveTab(content::WebContents* contents) { | 189 bool IsActiveTab(content::WebContents* contents) { |
| 187 return GetSearchTabHelper(contents)->ipc_router().is_active_tab_; | 190 return GetSearchTabHelper(contents)->ipc_router().is_active_tab_; |
| 188 } | 191 } |
| 189 | 192 |
| 190 private: | 193 private: |
| 191 MockSearchIPCRouterDelegate delegate_; | 194 MockSearchIPCRouterDelegate delegate_; |
| 192 base::FieldTrialList field_trial_list_; | 195 base::FieldTrialList field_trial_list_; |
| 193 }; | 196 }; |
| 194 | 197 |
| 198 TEST_F(SearchIPCRouterTest, IgnoreMessagesFromNonInstantRenderers) { |
| 199 NavigateAndCommitActiveTab(GURL("file://foo/bar")); |
| 200 SetupMockDelegateAndPolicy(); |
| 201 GURL destination_url("www.foo.com"); |
| 202 EXPECT_CALL(*mock_delegate(), NavigateToURL(destination_url, CURRENT_TAB, |
| 203 true)).Times(0); |
| 204 content::WebContents* contents = web_contents(); |
| 205 bool is_active_tab = IsActiveTab(contents); |
| 206 EXPECT_TRUE(is_active_tab); |
| 207 |
| 208 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 209 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(0); |
| 210 |
| 211 scoped_ptr<IPC::Message> message(new ChromeViewHostMsg_SearchBoxNavigate( |
| 212 contents->GetRoutingID(), |
| 213 contents->GetController().GetVisibleEntry()->GetPageID(), |
| 214 destination_url, CURRENT_TAB, true)); |
| 215 OnMessageReceived(*message); |
| 216 } |
| 217 |
| 195 TEST_F(SearchIPCRouterTest, ProcessVoiceSearchSupportMsg) { | 218 TEST_F(SearchIPCRouterTest, ProcessVoiceSearchSupportMsg) { |
| 196 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 219 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
| 197 SetupMockDelegateAndPolicy(); | 220 SetupMockDelegateAndPolicy(); |
| 198 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 221 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 199 EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(1); | 222 EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(1); |
| 200 EXPECT_CALL(*(policy), ShouldProcessSetVoiceSearchSupport()).Times(1) | 223 EXPECT_CALL(*(policy), ShouldProcessSetVoiceSearchSupport()).Times(1) |
| 201 .WillOnce(testing::Return(true)); | 224 .WillOnce(testing::Return(true)); |
| 202 | 225 |
| 203 content::WebContents* contents = web_contents(); | 226 content::WebContents* contents = web_contents(); |
| 204 scoped_ptr<IPC::Message> message( | 227 scoped_ptr<IPC::Message> message( |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 EXPECT_FALSE(IsActiveTab(contents)); | 301 EXPECT_FALSE(IsActiveTab(contents)); |
| 279 | 302 |
| 280 // Activate the first tab. | 303 // Activate the first tab. |
| 281 browser()->tab_strip_model()->ActivateTabAt(1, false); | 304 browser()->tab_strip_model()->ActivateTabAt(1, false); |
| 282 EXPECT_EQ(browser()->tab_strip_model()->active_index(), | 305 EXPECT_EQ(browser()->tab_strip_model()->active_index(), |
| 283 browser()->tab_strip_model()->GetIndexOfWebContents(contents)); | 306 browser()->tab_strip_model()->GetIndexOfWebContents(contents)); |
| 284 EXPECT_TRUE(IsActiveTab(contents)); | 307 EXPECT_TRUE(IsActiveTab(contents)); |
| 285 } | 308 } |
| 286 | 309 |
| 287 TEST_F(SearchIPCRouterTest, ProcessNavigateToURLMsg) { | 310 TEST_F(SearchIPCRouterTest, ProcessNavigateToURLMsg) { |
| 288 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 311 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); |
| 289 SetupMockDelegateAndPolicy(); | 312 SetupMockDelegateAndPolicy(); |
| 290 GURL destination_url("www.foo.com"); | 313 GURL destination_url("www.foo.com"); |
| 291 EXPECT_CALL(*mock_delegate(), NavigateToURL(destination_url, CURRENT_TAB, | 314 EXPECT_CALL(*mock_delegate(), NavigateToURL(destination_url, CURRENT_TAB, |
| 292 true)).Times(1); | 315 true)).Times(1); |
| 293 content::WebContents* contents = web_contents(); | 316 content::WebContents* contents = web_contents(); |
| 294 bool is_active_tab = IsActiveTab(contents); | 317 bool is_active_tab = IsActiveTab(contents); |
| 295 EXPECT_TRUE(is_active_tab); | 318 EXPECT_TRUE(is_active_tab); |
| 296 | 319 |
| 297 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 320 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 298 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(1) | 321 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(1) |
| (...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 920 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 943 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
| 921 SetupMockDelegateAndPolicy(); | 944 SetupMockDelegateAndPolicy(); |
| 922 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 945 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 923 EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) | 946 EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) |
| 924 .WillOnce(testing::Return(false)); | 947 .WillOnce(testing::Return(false)); |
| 925 | 948 |
| 926 process()->sink().ClearMessages(); | 949 process()->sink().ClearMessages(); |
| 927 GetSearchIPCRouter().ToggleVoiceSearch(); | 950 GetSearchIPCRouter().ToggleVoiceSearch(); |
| 928 EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); | 951 EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); |
| 929 } | 952 } |
| OLD | NEW |