Add ability to gather metrics to BubbleManager.
[chromium-blink-merge.git] / chrome / browser / ui / search / search_ipc_router_policy_unittest.cc
blobf358a381108ddb113cd1a5117a40ed72ef732e45
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
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/search/search_ipc_router.h"
7 #include "build/build_config.h"
8 #include "base/command_line.h"
9 #include "chrome/browser/ui/search/search_ipc_router_policy_impl.h"
10 #include "chrome/browser/ui/search/search_tab_helper.h"
11 #include "chrome/browser/ui/tabs/tab_strip_model.h"
12 #include "chrome/common/chrome_switches.h"
13 #include "chrome/common/url_constants.h"
14 #include "chrome/test/base/browser_with_test_window_test.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "url/gurl.h"
18 class SearchIPCRouterPolicyTest : public BrowserWithTestWindowTest {
19 public:
20 void SetUp() override {
21 BrowserWithTestWindowTest::SetUp();
22 AddTab(browser(), GURL("chrome://blank"));
23 SearchTabHelper::CreateForWebContents(web_contents());
26 content::WebContents* web_contents() {
27 return browser()->tab_strip_model()->GetActiveWebContents();
30 SearchIPCRouter::Policy* GetSearchIPCRouterPolicy() {
31 SearchTabHelper* search_tab_helper =
32 SearchTabHelper::FromWebContents(web_contents());
33 EXPECT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
34 return search_tab_helper->ipc_router().policy_for_testing();
37 void SetIncognitoProfile() {
38 SearchIPCRouterPolicyImpl* policy =
39 static_cast<SearchIPCRouterPolicyImpl*>(GetSearchIPCRouterPolicy());
40 policy->set_is_incognito(true);
44 TEST_F(SearchIPCRouterPolicyTest, ProcessVoiceSearchSupportMsg) {
45 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
46 EXPECT_TRUE(GetSearchIPCRouterPolicy()->
47 ShouldProcessSetVoiceSearchSupport());
50 TEST_F(SearchIPCRouterPolicyTest, ProcessFocusOmnibox) {
51 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
52 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessFocusOmnibox(true));
55 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessFocusOmnibox) {
56 // Process message only if the underlying page is an InstantNTP.
57 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
58 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessFocusOmnibox(true));
61 TEST_F(SearchIPCRouterPolicyTest, SendSetPromoInformation) {
62 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
63 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendSetPromoInformation());
66 TEST_F(SearchIPCRouterPolicyTest, DoNotSendSetPromoInformation) {
67 // Send promo information only if the underlying page is an InstantNTP.
68 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
69 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldSendSetPromoInformation());
72 TEST_F(SearchIPCRouterPolicyTest, ProcessDeleteMostVisitedItem) {
73 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
74 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessDeleteMostVisitedItem());
77 TEST_F(SearchIPCRouterPolicyTest, ProcessUndoMostVisitedDeletion) {
78 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
79 EXPECT_TRUE(GetSearchIPCRouterPolicy()->
80 ShouldProcessUndoMostVisitedDeletion());
83 TEST_F(SearchIPCRouterPolicyTest, ProcessUndoAllMostVisitedDeletions) {
84 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
85 EXPECT_TRUE(GetSearchIPCRouterPolicy()->
86 ShouldProcessUndoAllMostVisitedDeletions());
89 TEST_F(SearchIPCRouterPolicyTest, ProcessLogEvent) {
90 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
91 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessLogEvent());
94 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessLogEvent) {
95 // Process message only if the underlying page is an InstantNTP.
96 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
97 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessLogEvent());
100 TEST_F(SearchIPCRouterPolicyTest, ProcessChromeIdentityCheck) {
101 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
102 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessChromeIdentityCheck());
105 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessChromeIdentityCheck) {
106 // Process message only if the underlying page is an InstantNTP.
107 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
108 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessChromeIdentityCheck());
111 TEST_F(SearchIPCRouterPolicyTest, ProcessHistorySyncCheck) {
112 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
113 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessHistorySyncCheck());
116 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessHistorySyncCheck) {
117 // Process message only if the underlying page is an InstantNTP.
118 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
119 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessHistorySyncCheck());
122 TEST_F(SearchIPCRouterPolicyTest, ProcessNavigateToURL) {
123 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
124 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessNavigateToURL(true));
127 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessNavigateToURL) {
128 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
129 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessNavigateToURL(true));
131 NavigateAndCommitActiveTab(GURL("file://foo/bar"));
132 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessNavigateToURL(true));
135 TEST_F(SearchIPCRouterPolicyTest, ProcessPasteIntoOmniboxMsg) {
136 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
137 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldProcessPasteIntoOmnibox(true));
140 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessPasteIntoOmniboxMsg) {
141 // Process message only if the current tab is an Instant NTP.
142 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
143 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldProcessPasteIntoOmnibox(true));
146 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessMessagesForIncognitoPage) {
147 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
148 SetIncognitoProfile();
150 SearchIPCRouter::Policy* router_policy = GetSearchIPCRouterPolicy();
151 EXPECT_FALSE(router_policy->ShouldProcessFocusOmnibox(true));
152 EXPECT_FALSE(router_policy->ShouldProcessNavigateToURL(true));
153 EXPECT_FALSE(router_policy->ShouldProcessDeleteMostVisitedItem());
154 EXPECT_FALSE(router_policy->ShouldProcessUndoMostVisitedDeletion());
155 EXPECT_FALSE(router_policy->ShouldProcessUndoAllMostVisitedDeletions());
156 EXPECT_FALSE(router_policy->ShouldProcessLogEvent());
157 EXPECT_FALSE(router_policy->ShouldProcessPasteIntoOmnibox(true));
160 TEST_F(SearchIPCRouterPolicyTest, DoNotProcessMessagesForInactiveTab) {
161 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
163 // Assume the NTP is deactivated.
164 SearchIPCRouter::Policy* router_policy = GetSearchIPCRouterPolicy();
165 EXPECT_FALSE(router_policy->ShouldProcessFocusOmnibox(false));
166 EXPECT_FALSE(router_policy->ShouldProcessNavigateToURL(false));
167 EXPECT_FALSE(router_policy->ShouldProcessPasteIntoOmnibox(false));
168 EXPECT_FALSE(router_policy->ShouldSendSetInputInProgress(false));
171 TEST_F(SearchIPCRouterPolicyTest, SendSetDisplayInstantResults) {
172 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
173 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendSetDisplayInstantResults());
176 TEST_F(SearchIPCRouterPolicyTest, SendSetSuggestionToPrefetch) {
177 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
178 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendSetSuggestionToPrefetch());
181 TEST_F(SearchIPCRouterPolicyTest, SendSetOmniboxStartMargin) {
182 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
183 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendSetOmniboxStartMargin());
186 TEST_F(SearchIPCRouterPolicyTest,
187 DoNotSendSetMessagesForIncognitoPage) {
188 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
189 SetIncognitoProfile();
191 SearchIPCRouter::Policy* router_policy = GetSearchIPCRouterPolicy();
192 EXPECT_FALSE(router_policy->ShouldSendSetSuggestionToPrefetch());
193 EXPECT_FALSE(router_policy->ShouldSendSetDisplayInstantResults());
194 EXPECT_FALSE(router_policy->ShouldSendSetPromoInformation());
195 EXPECT_FALSE(router_policy->ShouldSendThemeBackgroundInfo());
196 EXPECT_FALSE(router_policy->ShouldSendMostVisitedItems());
197 EXPECT_FALSE(router_policy->ShouldSendSetInputInProgress(true));
198 EXPECT_FALSE(router_policy->ShouldSendOmniboxFocusChanged());
201 TEST_F(SearchIPCRouterPolicyTest,
202 AppropriateMessagesSentToIncognitoPages) {
203 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
204 SetIncognitoProfile();
206 SearchIPCRouter::Policy* router_policy = GetSearchIPCRouterPolicy();
207 EXPECT_TRUE(router_policy->ShouldSubmitQuery());
208 EXPECT_TRUE(router_policy->ShouldSendToggleVoiceSearch());
209 EXPECT_TRUE(router_policy->ShouldSendSetOmniboxStartMargin());
212 TEST_F(SearchIPCRouterPolicyTest, SendMostVisitedItems) {
213 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
214 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendMostVisitedItems());
217 TEST_F(SearchIPCRouterPolicyTest, DoNotSendMostVisitedItems) {
218 // Send most visited items only if the current tab is an Instant NTP.
219 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
220 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldSendMostVisitedItems());
223 TEST_F(SearchIPCRouterPolicyTest, SendThemeBackgroundInfo) {
224 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
225 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendThemeBackgroundInfo());
228 TEST_F(SearchIPCRouterPolicyTest, DoNotSendThemeBackgroundInfo) {
229 // Send theme background information only if the current tab is an
230 // Instant NTP.
231 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
232 EXPECT_FALSE(GetSearchIPCRouterPolicy()->ShouldSendThemeBackgroundInfo());
235 TEST_F(SearchIPCRouterPolicyTest, SubmitQuery) {
236 NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar"));
237 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSubmitQuery());
240 TEST_F(SearchIPCRouterPolicyTest, SendToggleVoiceSearch) {
241 NavigateAndCommitActiveTab(GURL(chrome::kChromeSearchLocalNtpUrl));
242 EXPECT_TRUE(GetSearchIPCRouterPolicy()->ShouldSendToggleVoiceSearch());