Chromium Code Reviews| 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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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 int GetSearchIPCRouterSeqNo() { | 182 int GetSearchIPCRouterSeqNo() { |
| 183 return GetSearchIPCRouter().page_seq_no_for_testing(); | 183 return GetSearchIPCRouter().page_seq_no_for_testing(); |
| 184 } | 184 } |
| 185 | 185 |
| 186 void OnMessageReceived(const IPC::Message& message) { | 186 void OnMessageReceived(const IPC::Message& message) { |
| 187 GetSearchIPCRouter().OnMessageReceived(message); | 187 bool should_handle_message = |
| 188 chrome::IsRenderedInInstantProcess(web_contents(), profile()); | |
| 189 bool handled = GetSearchIPCRouter().OnMessageReceived(message); | |
| 190 EXPECT_EQ(should_handle_message, handled); | |
|
nasko
2014/06/20 21:27:42
nit: I'd make that an ASSERT, as it is never expec
kmadhusu
2014/06/20 21:33:54
Done.
| |
| 188 } | 191 } |
| 189 | 192 |
| 190 bool IsActiveTab(content::WebContents* contents) { | 193 bool IsActiveTab(content::WebContents* contents) { |
| 191 return GetSearchTabHelper(contents)->ipc_router().is_active_tab_; | 194 return GetSearchTabHelper(contents)->ipc_router().is_active_tab_; |
| 192 } | 195 } |
| 193 | 196 |
| 194 private: | 197 private: |
| 195 MockSearchIPCRouterDelegate delegate_; | 198 MockSearchIPCRouterDelegate delegate_; |
| 196 base::FieldTrialList field_trial_list_; | 199 base::FieldTrialList field_trial_list_; |
| 197 }; | 200 }; |
| 198 | 201 |
| 202 TEST_F(SearchIPCRouterTest, IgnoreMessagesFromNonInstantRenderers) { | |
| 203 NavigateAndCommitActiveTab(GURL("file://foo/bar")); | |
| 204 SetupMockDelegateAndPolicy(); | |
| 205 GURL destination_url("www.foo.com"); | |
| 206 EXPECT_CALL(*mock_delegate(), NavigateToURL(destination_url, CURRENT_TAB, | |
| 207 true)).Times(0); | |
| 208 content::WebContents* contents = web_contents(); | |
| 209 bool is_active_tab = IsActiveTab(contents); | |
| 210 EXPECT_TRUE(is_active_tab); | |
| 211 | |
| 212 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | |
| 213 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(0); | |
| 214 | |
| 215 scoped_ptr<IPC::Message> message(new ChromeViewHostMsg_SearchBoxNavigate( | |
| 216 contents->GetRoutingID(), | |
| 217 GetSearchIPCRouterSeqNo(), | |
| 218 destination_url, CURRENT_TAB, true)); | |
| 219 OnMessageReceived(*message); | |
|
nasko
2014/06/20 21:18:02
How does the test pass/fail here?
kmadhusu
2014/06/20 21:20:28
Test will pass. We expect SearchIPCRouter::OnMessa
nasko
2014/06/20 21:27:42
Ok, it passes due to the expectations of no calls
kmadhusu
2014/06/20 21:33:54
Ack.
| |
| 220 } | |
| 221 | |
| 199 TEST_F(SearchIPCRouterTest, ProcessVoiceSearchSupportMsg) { | 222 TEST_F(SearchIPCRouterTest, ProcessVoiceSearchSupportMsg) { |
| 200 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 223 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
| 201 SetupMockDelegateAndPolicy(); | 224 SetupMockDelegateAndPolicy(); |
| 202 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 225 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 203 EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(1); | 226 EXPECT_CALL(*mock_delegate(), OnSetVoiceSearchSupport(true)).Times(1); |
| 204 EXPECT_CALL(*(policy), ShouldProcessSetVoiceSearchSupport()).Times(1) | 227 EXPECT_CALL(*(policy), ShouldProcessSetVoiceSearchSupport()).Times(1) |
| 205 .WillOnce(testing::Return(true)); | 228 .WillOnce(testing::Return(true)); |
| 206 | 229 |
| 207 content::WebContents* contents = web_contents(); | 230 content::WebContents* contents = web_contents(); |
| 208 scoped_ptr<IPC::Message> message( | 231 scoped_ptr<IPC::Message> message( |
| (...skipping 69 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 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 908 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 931 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
| 909 SetupMockDelegateAndPolicy(); | 932 SetupMockDelegateAndPolicy(); |
| 910 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 933 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
| 911 EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) | 934 EXPECT_CALL(*policy, ShouldSendToggleVoiceSearch()).Times(1) |
| 912 .WillOnce(testing::Return(false)); | 935 .WillOnce(testing::Return(false)); |
| 913 | 936 |
| 914 process()->sink().ClearMessages(); | 937 process()->sink().ClearMessages(); |
| 915 GetSearchIPCRouter().ToggleVoiceSearch(); | 938 GetSearchIPCRouter().ToggleVoiceSearch(); |
| 916 EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); | 939 EXPECT_FALSE(MessageWasSent(ChromeViewMsg_SearchBoxToggleVoiceSearch::ID)); |
| 917 } | 940 } |
| OLD | NEW |