Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: chrome/browser/ui/search/search_tab_helper_unittest.cc

Issue 701973002: Separate checking the user identity and checking if the user is syncing his history in two differen… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Answered mathp Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_tab_helper.h" 5 #include "chrome/browser/ui/search/search_tab_helper.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 MOCK_METHOD1(OnDeleteMostVisitedItem, void(const GURL& url)); 60 MOCK_METHOD1(OnDeleteMostVisitedItem, void(const GURL& url));
61 MOCK_METHOD1(OnUndoMostVisitedDeletion, void(const GURL& url)); 61 MOCK_METHOD1(OnUndoMostVisitedDeletion, void(const GURL& url));
62 MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void()); 62 MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void());
63 MOCK_METHOD1(OnLogEvent, void(NTPLoggingEventType event)); 63 MOCK_METHOD1(OnLogEvent, void(NTPLoggingEventType event));
64 MOCK_METHOD2(OnLogMostVisitedImpression, 64 MOCK_METHOD2(OnLogMostVisitedImpression,
65 void(int position, const base::string16& provider)); 65 void(int position, const base::string16& provider));
66 MOCK_METHOD2(OnLogMostVisitedNavigation, 66 MOCK_METHOD2(OnLogMostVisitedNavigation,
67 void(int position, const base::string16& provider)); 67 void(int position, const base::string16& provider));
68 MOCK_METHOD1(PasteIntoOmnibox, void(const base::string16&)); 68 MOCK_METHOD1(PasteIntoOmnibox, void(const base::string16&));
69 MOCK_METHOD1(OnChromeIdentityCheck, void(const base::string16& identity)); 69 MOCK_METHOD1(OnChromeIdentityCheck, void(const base::string16& identity));
70 MOCK_METHOD0(OnHistorySyncCheck, void());
70 }; 71 };
71 72
72 } // namespace 73 } // namespace
73 74
74 class SearchTabHelperTest : public ChromeRenderViewHostTestHarness { 75 class SearchTabHelperTest : public ChromeRenderViewHostTestHarness {
75 public: 76 public:
76 void SetUp() override { 77 void SetUp() override {
77 ChromeRenderViewHostTestHarness::SetUp(); 78 ChromeRenderViewHostTestHarness::SetUp();
78 SearchTabHelper::CreateForWebContents(web_contents()); 79 SearchTabHelper::CreateForWebContents(web_contents());
79 } 80 }
80 81
81 content::BrowserContext* CreateBrowserContext() override { 82 content::BrowserContext* CreateBrowserContext() override {
82 TestingProfile::Builder builder; 83 TestingProfile::Builder builder;
83 builder.AddTestingFactory(SigninManagerFactory::GetInstance(), 84 builder.AddTestingFactory(SigninManagerFactory::GetInstance(),
84 FakeSigninManagerBase::Build); 85 FakeSigninManagerBase::Build);
85 builder.AddTestingFactory( 86 builder.AddTestingFactory(
86 ProfileSyncServiceFactory::GetInstance(), 87 ProfileSyncServiceFactory::GetInstance(),
87 ProfileSyncServiceMock::BuildMockProfileSyncService); 88 ProfileSyncServiceMock::BuildMockProfileSyncService);
88 return builder.Build().release(); 89 return builder.Build().release();
89 } 90 }
90 91
91 // Creates a sign-in manager for tests. If |username| is not empty, the 92 // Creates a sign-in manager for tests. If |username| is not empty, the
92 // testing profile of the WebContents will be connected to the given account. 93 // testing profile of the WebContents will be connected to the given account.
93 // The account can be configured to |sync_history| or not. 94 void CreateSigninManager(const std::string& username) {
94 void CreateSigninManager(const std::string& username, bool sync_history) {
95 SigninManagerBase* signin_manager = static_cast<SigninManagerBase*>( 95 SigninManagerBase* signin_manager = static_cast<SigninManagerBase*>(
96 SigninManagerFactory::GetForProfile(profile())); 96 SigninManagerFactory::GetForProfile(profile()));
97 97
98 if (!username.empty()) { 98 if (!username.empty()) {
99 ASSERT_TRUE(signin_manager); 99 ASSERT_TRUE(signin_manager);
100 signin_manager->SetAuthenticatedUsername(username); 100 signin_manager->SetAuthenticatedUsername(username);
101 } 101 }
102 }
102 103
104 // Configure the account to |sync_history| or not.
105 void SetHistorySync(bool sync_history) {
103 ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>( 106 ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>(
104 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile())); 107 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile()));
105 108
106 EXPECT_CALL(*sync_service, SyncActive()).WillRepeatedly(Return(true)); 109 EXPECT_CALL(*sync_service, SyncActive()).WillRepeatedly(Return(true));
107 syncer::ModelTypeSet result; 110 syncer::ModelTypeSet result;
108 if (sync_history) { 111 if (sync_history) {
109 result.Put(syncer::HISTORY_DELETE_DIRECTIVES); 112 result.Put(syncer::HISTORY_DELETE_DIRECTIVES);
110 } 113 }
111 EXPECT_CALL(*sync_service, GetActiveDataTypes()) 114 EXPECT_CALL(*sync_service, GetActiveDataTypes())
112 .WillRepeatedly(Return(result)); 115 .WillRepeatedly(Return(result));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 SearchTabHelper::FromWebContents(web_contents()); 168 SearchTabHelper::FromWebContents(web_contents());
166 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 169 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
167 search_tab_helper->ipc_router().set_delegate_for_testing(mock_delegate()); 170 search_tab_helper->ipc_router().set_delegate_for_testing(mock_delegate());
168 search_tab_helper->DetermineIfPageSupportsInstant(); 171 search_tab_helper->DetermineIfPageSupportsInstant();
169 ASSERT_FALSE(MessageWasSent( 172 ASSERT_FALSE(MessageWasSent(
170 ChromeViewMsg_DetermineIfPageSupportsInstant::ID)); 173 ChromeViewMsg_DetermineIfPageSupportsInstant::ID));
171 } 174 }
172 175
173 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatch) { 176 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatch) {
174 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl)); 177 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
175 CreateSigninManager(std::string("foo@bar.com"), true); 178 CreateSigninManager(std::string("foo@bar.com"));
176 SearchTabHelper* search_tab_helper = 179 SearchTabHelper* search_tab_helper =
177 SearchTabHelper::FromWebContents(web_contents()); 180 SearchTabHelper::FromWebContents(web_contents());
178 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 181 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
179 182
180 const base::string16 test_identity = base::ASCIIToUTF16("foo@bar.com"); 183 const base::string16 test_identity = base::ASCIIToUTF16("foo@bar.com");
181 search_tab_helper->OnChromeIdentityCheck(test_identity); 184 search_tab_helper->OnChromeIdentityCheck(test_identity);
182 185
183 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( 186 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
184 ChromeViewMsg_ChromeIdentityCheckResult::ID); 187 ChromeViewMsg_ChromeIdentityCheckResult::ID);
185 ASSERT_TRUE(message != NULL); 188 ASSERT_TRUE(message != NULL);
186 189
187 ChromeViewMsg_ChromeIdentityCheckResult::Param params; 190 ChromeViewMsg_ChromeIdentityCheckResult::Param params;
188 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params); 191 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params);
189 EXPECT_EQ(test_identity, params.a); 192 EXPECT_EQ(test_identity, params.a);
190 ASSERT_TRUE(params.b); 193 ASSERT_TRUE(params.b);
191 } 194 }
192 195
193 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMismatch) { 196 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMismatch) {
194 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl)); 197 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
195 CreateSigninManager(std::string("foo@bar.com"), true); 198 CreateSigninManager(std::string("foo@bar.com"));
196 SearchTabHelper* search_tab_helper = 199 SearchTabHelper* search_tab_helper =
197 SearchTabHelper::FromWebContents(web_contents()); 200 SearchTabHelper::FromWebContents(web_contents());
198 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 201 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
199 202
200 const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com"); 203 const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com");
201 search_tab_helper->OnChromeIdentityCheck(test_identity); 204 search_tab_helper->OnChromeIdentityCheck(test_identity);
202 205
203 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( 206 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
204 ChromeViewMsg_ChromeIdentityCheckResult::ID); 207 ChromeViewMsg_ChromeIdentityCheckResult::ID);
205 ASSERT_TRUE(message != NULL); 208 ASSERT_TRUE(message != NULL);
206 209
207 ChromeViewMsg_ChromeIdentityCheckResult::Param params; 210 ChromeViewMsg_ChromeIdentityCheckResult::Param params;
208 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params); 211 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params);
209 EXPECT_EQ(test_identity, params.a); 212 EXPECT_EQ(test_identity, params.a);
210 ASSERT_FALSE(params.b); 213 ASSERT_FALSE(params.b);
211 } 214 }
212 215
213 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckSignedOutMatch) { 216 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckSignedOutMismatch) {
214 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl)); 217 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
215 // This test does not sign in. 218 // This test does not sign in.
216 ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>(
217 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile()));
218 EXPECT_CALL(*sync_service, SyncActive()).WillRepeatedly(Return(false));
219 SearchTabHelper* search_tab_helper = 219 SearchTabHelper* search_tab_helper =
220 SearchTabHelper::FromWebContents(web_contents()); 220 SearchTabHelper::FromWebContents(web_contents());
221 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 221 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
222 222
223 const base::string16 test_identity; 223 const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com");
224 search_tab_helper->OnChromeIdentityCheck(test_identity); 224 search_tab_helper->OnChromeIdentityCheck(test_identity);
225 225
226 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( 226 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
227 ChromeViewMsg_ChromeIdentityCheckResult::ID); 227 ChromeViewMsg_ChromeIdentityCheckResult::ID);
228 ASSERT_TRUE(message != NULL); 228 ASSERT_TRUE(message != NULL);
229 229
230 ChromeViewMsg_ChromeIdentityCheckResult::Param params; 230 ChromeViewMsg_ChromeIdentityCheckResult::Param params;
231 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params); 231 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params);
232 EXPECT_EQ(test_identity, params.a); 232 EXPECT_EQ(test_identity, params.a);
233 ASSERT_FALSE(params.b); 233 ASSERT_FALSE(params.b);
234 } 234 }
235 235
236 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckSignedOutMismatch) { 236 TEST_F(SearchTabHelperTest, OnHistorySyncCheckSyncInactive) {
237 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl)); 237 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
238 // This test does not sign in.
239 ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>( 238 ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>(
240 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile())); 239 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile()));
241 EXPECT_CALL(*sync_service, SyncActive()).WillRepeatedly(Return(false)); 240 EXPECT_CALL(*sync_service, SyncActive()).WillRepeatedly(Return(false));
242 SearchTabHelper* search_tab_helper = 241 SearchTabHelper* search_tab_helper =
243 SearchTabHelper::FromWebContents(web_contents()); 242 SearchTabHelper::FromWebContents(web_contents());
244 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 243 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
245 244
246 const base::string16 test_identity = base::ASCIIToUTF16("bar@foo.com"); 245 search_tab_helper->OnHistorySyncCheck();
247 search_tab_helper->OnChromeIdentityCheck(test_identity);
248 246
249 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( 247 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
250 ChromeViewMsg_ChromeIdentityCheckResult::ID); 248 ChromeViewMsg_HistorySyncCheckResult::ID);
251 ASSERT_TRUE(message != NULL); 249 ASSERT_TRUE(message != NULL);
252 250
253 ChromeViewMsg_ChromeIdentityCheckResult::Param params; 251 ChromeViewMsg_HistorySyncCheckResult::Param params;
254 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params); 252 ChromeViewMsg_HistorySyncCheckResult::Read(message, &params);
255 EXPECT_EQ(test_identity, params.a); 253 ASSERT_FALSE(params.a);
256 ASSERT_FALSE(params.b);
257 } 254 }
258 255
259 TEST_F(SearchTabHelperTest, OnChromeIdentityCheckMatchNotSyncing) { 256 TEST_F(SearchTabHelperTest, OnHistorySyncCheckSyncing) {
260 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl)); 257 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
261 CreateSigninManager(std::string("foo@bar.com"), false); 258 SetHistorySync(true);
262 SearchTabHelper* search_tab_helper = 259 SearchTabHelper* search_tab_helper =
263 SearchTabHelper::FromWebContents(web_contents()); 260 SearchTabHelper::FromWebContents(web_contents());
264 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); 261 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
265 262
266 const base::string16 test_identity = base::ASCIIToUTF16("foo@bar.com"); 263 search_tab_helper->OnHistorySyncCheck();
267 search_tab_helper->OnChromeIdentityCheck(test_identity);
268 264
269 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( 265 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
270 ChromeViewMsg_ChromeIdentityCheckResult::ID); 266 ChromeViewMsg_HistorySyncCheckResult::ID);
271 ASSERT_TRUE(message != NULL); 267 ASSERT_TRUE(message != NULL);
272 268
273 ChromeViewMsg_ChromeIdentityCheckResult::Param params; 269 ChromeViewMsg_HistorySyncCheckResult::Param params;
274 ChromeViewMsg_ChromeIdentityCheckResult::Read(message, &params); 270 ChromeViewMsg_HistorySyncCheckResult::Read(message, &params);
275 EXPECT_EQ(test_identity, params.a); 271 ASSERT_TRUE(params.a);
276 ASSERT_FALSE(params.b); 272 }
273
274 TEST_F(SearchTabHelperTest, OnHistorySyncCheckNotSyncing) {
275 NavigateAndCommit(GURL(chrome::kChromeSearchLocalNtpUrl));
276 SetHistorySync(false);
277 SearchTabHelper* search_tab_helper =
278 SearchTabHelper::FromWebContents(web_contents());
279 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper);
dcheng 2014/11/12 21:40:47 ASSERT_NE(nullptr, search_tab_helper); though it'
280
281 search_tab_helper->OnHistorySyncCheck();
282
283 const IPC::Message* message = process()->sink().GetUniqueMessageMatching(
284 ChromeViewMsg_HistorySyncCheckResult::ID);
285 ASSERT_TRUE(message != NULL);
286
287 ChromeViewMsg_HistorySyncCheckResult::Param params;
288 ChromeViewMsg_HistorySyncCheckResult::Read(message, &params);
289 ASSERT_FALSE(params.a);
277 } 290 }
278 291
279 class TabTitleObserver : public content::WebContentsObserver { 292 class TabTitleObserver : public content::WebContentsObserver {
280 public: 293 public:
281 explicit TabTitleObserver(content::WebContents* contents) 294 explicit TabTitleObserver(content::WebContents* contents)
282 : WebContentsObserver(contents) {} 295 : WebContentsObserver(contents) {}
283 296
284 base::string16 title_on_start() { return title_on_start_; } 297 base::string16 title_on_start() { return title_on_start_; }
285 base::string16 title_on_commit() { return title_on_commit_; } 298 base::string16 title_on_commit() { return title_on_commit_; }
286 299
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 } 471 }
459 472
460 TEST_F(SearchTabHelperPrerenderTest, 473 TEST_F(SearchTabHelperPrerenderTest,
461 OnTabActivatedNoPrerenderIfOmniboxBlurred) { 474 OnTabActivatedNoPrerenderIfOmniboxBlurred) {
462 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false; 475 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false;
463 SearchTabHelper* search_tab_helper = 476 SearchTabHelper* search_tab_helper =
464 SearchTabHelper::FromWebContents(web_contents()); 477 SearchTabHelper::FromWebContents(web_contents());
465 search_tab_helper->OnTabActivated(); 478 search_tab_helper->OnTabActivated();
466 ASSERT_FALSE(IsInstantURLMarkedForPrerendering()); 479 ASSERT_FALSE(IsInstantURLMarkedForPrerendering());
467 } 480 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698