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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 public: | 45 public: |
46 virtual ~MockSearchIPCRouterDelegate() {} | 46 virtual ~MockSearchIPCRouterDelegate() {} |
47 | 47 |
48 MOCK_METHOD1(OnInstantSupportDetermined, void(bool supports_instant)); | 48 MOCK_METHOD1(OnInstantSupportDetermined, void(bool supports_instant)); |
49 MOCK_METHOD1(OnSetVoiceSearchSupport, void(bool supports_voice_search)); | 49 MOCK_METHOD1(OnSetVoiceSearchSupport, void(bool supports_voice_search)); |
50 MOCK_METHOD1(FocusOmnibox, void(OmniboxFocusState state)); | 50 MOCK_METHOD1(FocusOmnibox, void(OmniboxFocusState state)); |
51 MOCK_METHOD3(NavigateToURL, void(const GURL&, WindowOpenDisposition, bool)); | 51 MOCK_METHOD3(NavigateToURL, void(const GURL&, WindowOpenDisposition, bool)); |
52 MOCK_METHOD1(OnDeleteMostVisitedItem, void(const GURL& url)); | 52 MOCK_METHOD1(OnDeleteMostVisitedItem, void(const GURL& url)); |
53 MOCK_METHOD1(OnUndoMostVisitedDeletion, void(const GURL& url)); | 53 MOCK_METHOD1(OnUndoMostVisitedDeletion, void(const GURL& url)); |
54 MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void()); | 54 MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void()); |
55 MOCK_METHOD1(OnLogEvent, void(NTPLoggingEventType event)); | 55 MOCK_METHOD2(OnLogEvent, void(NTPLoggingEventType event, |
| 56 base::TimeDelta time)); |
56 MOCK_METHOD2(OnLogMostVisitedImpression, | 57 MOCK_METHOD2(OnLogMostVisitedImpression, |
57 void(int position, const base::string16& provider)); | 58 void(int position, const base::string16& provider)); |
58 MOCK_METHOD2(OnLogMostVisitedNavigation, | 59 MOCK_METHOD2(OnLogMostVisitedNavigation, |
59 void(int position, const base::string16& provider)); | 60 void(int position, const base::string16& provider)); |
60 MOCK_METHOD1(PasteIntoOmnibox, void(const base::string16&)); | 61 MOCK_METHOD1(PasteIntoOmnibox, void(const base::string16&)); |
61 MOCK_METHOD1(OnChromeIdentityCheck, void(const base::string16& identity)); | 62 MOCK_METHOD1(OnChromeIdentityCheck, void(const base::string16& identity)); |
62 MOCK_METHOD0(OnHistorySyncCheck, void()); | 63 MOCK_METHOD0(OnHistorySyncCheck, void()); |
63 }; | 64 }; |
64 | 65 |
65 class MockSearchIPCRouterPolicy : public SearchIPCRouter::Policy { | 66 class MockSearchIPCRouterPolicy : public SearchIPCRouter::Policy { |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 336 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
336 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(1) | 337 EXPECT_CALL(*policy, ShouldProcessNavigateToURL(is_active_tab)).Times(1) |
337 .WillOnce(testing::Return(false)); | 338 .WillOnce(testing::Return(false)); |
338 | 339 |
339 OnMessageReceived(ChromeViewHostMsg_SearchBoxNavigate( | 340 OnMessageReceived(ChromeViewHostMsg_SearchBoxNavigate( |
340 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), destination_url, | 341 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), destination_url, |
341 CURRENT_TAB, true)); | 342 CURRENT_TAB, true)); |
342 } | 343 } |
343 | 344 |
344 TEST_F(SearchIPCRouterTest, ProcessLogEventMsg) { | 345 TEST_F(SearchIPCRouterTest, ProcessLogEventMsg) { |
| 346 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(123); |
345 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); | 347 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); |
346 SetupMockDelegateAndPolicy(); | 348 SetupMockDelegateAndPolicy(); |
347 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 349 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
348 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER)).Times(1); | 350 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER, delta)).Times(1); |
349 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) | 351 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) |
350 .WillOnce(testing::Return(true)); | 352 .WillOnce(testing::Return(true)); |
351 | 353 |
352 content::WebContents* contents = web_contents(); | 354 content::WebContents* contents = web_contents(); |
353 OnMessageReceived(ChromeViewHostMsg_LogEvent( | 355 OnMessageReceived(ChromeViewHostMsg_LogEvent( |
354 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), NTP_MOUSEOVER)); | 356 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), |
| 357 NTP_MOUSEOVER, delta)); |
355 } | 358 } |
356 | 359 |
357 TEST_F(SearchIPCRouterTest, IgnoreLogEventMsg) { | 360 TEST_F(SearchIPCRouterTest, IgnoreLogEventMsg) { |
| 361 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(123); |
358 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); | 362 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); |
359 SetupMockDelegateAndPolicy(); | 363 SetupMockDelegateAndPolicy(); |
360 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 364 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
361 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER)).Times(0); | 365 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER, delta)).Times(0); |
362 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) | 366 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) |
363 .WillOnce(testing::Return(false)); | 367 .WillOnce(testing::Return(false)); |
364 | 368 |
365 content::WebContents* contents = web_contents(); | 369 content::WebContents* contents = web_contents(); |
366 OnMessageReceived(ChromeViewHostMsg_LogEvent( | 370 OnMessageReceived(ChromeViewHostMsg_LogEvent( |
367 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), NTP_MOUSEOVER)); | 371 contents->GetRoutingID(), GetSearchIPCRouterSeqNo(), |
| 372 NTP_MOUSEOVER, delta)); |
368 } | 373 } |
369 | 374 |
370 TEST_F(SearchIPCRouterTest, ProcessLogMostVisitedImpressionMsg) { | 375 TEST_F(SearchIPCRouterTest, ProcessLogMostVisitedImpressionMsg) { |
371 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); | 376 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); |
372 SetupMockDelegateAndPolicy(); | 377 SetupMockDelegateAndPolicy(); |
373 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); | 378 MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); |
374 EXPECT_CALL(*mock_delegate(), | 379 EXPECT_CALL(*mock_delegate(), |
375 OnLogMostVisitedImpression(3, base::ASCIIToUTF16("Server"))).Times(1); | 380 OnLogMostVisitedImpression(3, base::ASCIIToUTF16("Server"))).Times(1); |
376 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) | 381 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(1) |
377 .WillOnce(testing::Return(true)); | 382 .WillOnce(testing::Return(true)); |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 EXPECT_CALL(*mock_delegate(), OnUndoAllMostVisitedDeletions()).Times(0); | 572 EXPECT_CALL(*mock_delegate(), OnUndoAllMostVisitedDeletions()).Times(0); |
568 EXPECT_CALL(*policy, ShouldProcessUndoAllMostVisitedDeletions()).Times(0); | 573 EXPECT_CALL(*policy, ShouldProcessUndoAllMostVisitedDeletions()).Times(0); |
569 OnMessageReceived(ChromeViewHostMsg_SearchBoxUndoAllMostVisitedDeletions( | 574 OnMessageReceived(ChromeViewHostMsg_SearchBoxUndoAllMostVisitedDeletions( |
570 contents->GetRoutingID(), page_seq_no)); | 575 contents->GetRoutingID(), page_seq_no)); |
571 | 576 |
572 EXPECT_CALL(*mock_delegate(), FocusOmnibox(OMNIBOX_FOCUS_VISIBLE)).Times(0); | 577 EXPECT_CALL(*mock_delegate(), FocusOmnibox(OMNIBOX_FOCUS_VISIBLE)).Times(0); |
573 EXPECT_CALL(*policy, ShouldProcessFocusOmnibox(is_active_tab)).Times(0); | 578 EXPECT_CALL(*policy, ShouldProcessFocusOmnibox(is_active_tab)).Times(0); |
574 OnMessageReceived(ChromeViewHostMsg_FocusOmnibox( | 579 OnMessageReceived(ChromeViewHostMsg_FocusOmnibox( |
575 contents->GetRoutingID(), page_seq_no, OMNIBOX_FOCUS_VISIBLE)); | 580 contents->GetRoutingID(), page_seq_no, OMNIBOX_FOCUS_VISIBLE)); |
576 | 581 |
577 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER)).Times(0); | 582 base::TimeDelta delta = base::TimeDelta::FromMilliseconds(123); |
| 583 EXPECT_CALL(*mock_delegate(), OnLogEvent(NTP_MOUSEOVER, delta)).Times(0); |
578 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(0); | 584 EXPECT_CALL(*policy, ShouldProcessLogEvent()).Times(0); |
579 OnMessageReceived(ChromeViewHostMsg_LogEvent( | 585 OnMessageReceived(ChromeViewHostMsg_LogEvent(contents->GetRoutingID(), |
580 contents->GetRoutingID(), page_seq_no, NTP_MOUSEOVER)); | 586 page_seq_no, |
| 587 NTP_MOUSEOVER, delta)); |
581 | 588 |
582 base::string16 text; | 589 base::string16 text; |
583 EXPECT_CALL(*mock_delegate(), PasteIntoOmnibox(text)).Times(0); | 590 EXPECT_CALL(*mock_delegate(), PasteIntoOmnibox(text)).Times(0); |
584 EXPECT_CALL(*policy, ShouldProcessPasteIntoOmnibox(is_active_tab)).Times(0); | 591 EXPECT_CALL(*policy, ShouldProcessPasteIntoOmnibox(is_active_tab)).Times(0); |
585 OnMessageReceived(ChromeViewHostMsg_PasteAndOpenDropdown( | 592 OnMessageReceived(ChromeViewHostMsg_PasteAndOpenDropdown( |
586 contents->GetRoutingID(), page_seq_no, text)); | 593 contents->GetRoutingID(), page_seq_no, text)); |
587 } | 594 } |
588 | 595 |
589 TEST_F(SearchIPCRouterTest, ProcessPasteAndOpenDropdownMsg) { | 596 TEST_F(SearchIPCRouterTest, ProcessPasteAndOpenDropdownMsg) { |
590 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); | 597 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl)); |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
899 | 906 |
900 // Construct a series of synthetic messages for each valid IPC message type, | 907 // Construct a series of synthetic messages for each valid IPC message type, |
901 // ensuring the router ignores them all. | 908 // ensuring the router ignores them all. |
902 for (int i = 0; i < LastIPCMsgStart; ++i) { | 909 for (int i = 0; i < LastIPCMsgStart; ++i) { |
903 const int message_id = i << 16; | 910 const int message_id = i << 16; |
904 ASSERT_EQ(IPC_MESSAGE_ID_CLASS(message_id), i); | 911 ASSERT_EQ(IPC_MESSAGE_ID_CLASS(message_id), i); |
905 IPC::Message msg(routing_id, message_id, IPC::Message::PRIORITY_LOW); | 912 IPC::Message msg(routing_id, message_id, IPC::Message::PRIORITY_LOW); |
906 EXPECT_FALSE(OnSpuriousMessageReceived(msg)) << i; | 913 EXPECT_FALSE(OnSpuriousMessageReceived(msg)) << i; |
907 } | 914 } |
908 } | 915 } |
OLD | NEW |