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

Side by Side Diff: chrome/browser/sync/profile_sync_service_startup_unittest.cc

Issue 10834351: [sync] Divorce DataTypeManager from NotificationService notifications by creating a new DataTypeMa… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chrome/browser/prefs/pref_service.h" 9 #include "chrome/browser/prefs/pref_service.h"
10 #include "chrome/browser/signin/signin_manager.h" 10 #include "chrome/browser/signin/signin_manager.h"
(...skipping 16 matching lines...) Expand all
27 27
28 using browser_sync::DataTypeManager; 28 using browser_sync::DataTypeManager;
29 using browser_sync::DataTypeManagerMock; 29 using browser_sync::DataTypeManagerMock;
30 using content::BrowserThread; 30 using content::BrowserThread;
31 using testing::_; 31 using testing::_;
32 using testing::AnyNumber; 32 using testing::AnyNumber;
33 using testing::DoAll; 33 using testing::DoAll;
34 using testing::InvokeArgument; 34 using testing::InvokeArgument;
35 using testing::Mock; 35 using testing::Mock;
36 using testing::Return; 36 using testing::Return;
37 using testing::ReturnRef;
38
39 ACTION_P(InvokeOnConfigureStart, pss) {
40 TestProfileSyncService* service = static_cast<TestProfileSyncService*>(pss);
41 service->OnConfigureStart();
42 }
43
44 ACTION_P(InvokeOnConfigureDone, pss) {
45 TestProfileSyncService* service = static_cast<TestProfileSyncService*>(pss);
46 service->OnConfigureDone();
47 }
37 48
38 // TODO(chron): Test not using cros_user flag and use signin_ 49 // TODO(chron): Test not using cros_user flag and use signin_
39 class ProfileSyncServiceStartupTest : public testing::Test { 50 class ProfileSyncServiceStartupTest : public testing::Test {
40 public: 51 public:
41 ProfileSyncServiceStartupTest() 52 ProfileSyncServiceStartupTest()
42 : ui_thread_(BrowserThread::UI, &ui_loop_), 53 : ui_thread_(BrowserThread::UI, &ui_loop_),
43 db_thread_(BrowserThread::DB), 54 db_thread_(BrowserThread::DB),
44 file_thread_(BrowserThread::FILE), 55 file_thread_(BrowserThread::FILE),
45 io_thread_(BrowserThread::IO), 56 io_thread_(BrowserThread::IO),
46 profile_(new TestingProfile) {} 57 profile_(new TestingProfile) {}
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 signin, 94 signin,
84 ProfileSyncService::MANUAL_START, 95 ProfileSyncService::MANUAL_START,
85 true, 96 true,
86 base::Closure())); 97 base::Closure()));
87 } 98 }
88 99
89 DataTypeManagerMock* SetUpDataTypeManager() { 100 DataTypeManagerMock* SetUpDataTypeManager() {
90 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); 101 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
91 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)). 102 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).
92 WillOnce(Return(data_type_manager)); 103 WillOnce(Return(data_type_manager));
104 EXPECT_CALL(*data_type_manager, AddObserver(_)).Times(AnyNumber());
105 EXPECT_CALL(*data_type_manager, RemoveObserver(_)).Times(AnyNumber());
106 EXPECT_CALL(*data_type_manager, HasObserver(_)).Times(AnyNumber());
93 return data_type_manager; 107 return data_type_manager;
94 } 108 }
95 109
96 ProfileSyncComponentsFactoryMock* factory_mock() { 110 ProfileSyncComponentsFactoryMock* factory_mock() {
97 return static_cast<ProfileSyncComponentsFactoryMock*>(service_->factory()); 111 return static_cast<ProfileSyncComponentsFactoryMock*>(service_->factory());
98 } 112 }
99 113
100 MessageLoop ui_loop_; 114 MessageLoop ui_loop_;
101 content::TestBrowserThread ui_thread_; 115 content::TestBrowserThread ui_thread_;
102 content::TestBrowserThread db_thread_; 116 content::TestBrowserThread db_thread_;
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); 309 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged);
296 } 310 }
297 311
298 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { 312 TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
299 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 313 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
300 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; 314 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED;
301 syncer::SyncError error( 315 syncer::SyncError error(
302 FROM_HERE, "Association failed.", syncer::BOOKMARKS); 316 FROM_HERE, "Association failed.", syncer::BOOKMARKS);
303 std::list<syncer::SyncError> errors; 317 std::list<syncer::SyncError> errors;
304 errors.push_back(error); 318 errors.push_back(error);
305 browser_sync::DataTypeManager::ConfigureResult result( 319 const browser_sync::DataTypeManager::ConfigureResult result(
306 status, 320 status,
307 syncer::ModelTypeSet(), 321 syncer::ModelTypeSet(),
308 errors, 322 errors,
309 syncer::ModelTypeSet()); 323 syncer::ModelTypeSet());
310 EXPECT_CALL(*data_type_manager, Configure(_, _)). 324 EXPECT_CALL(*data_type_manager, Configure(_, _)).
311 WillRepeatedly( 325 WillRepeatedly(
312 DoAll( 326 DoAll(InvokeOnConfigureStart(service_.get()),
313 NotifyFromDataTypeManager(data_type_manager, 327 InvokeOnConfigureDone(service_.get())));
314 static_cast<int>(chrome::NOTIFICATION_SYNC_CONFIGURE_START)),
315 NotifyFromDataTypeManagerWithResult(data_type_manager,
316 static_cast<int>(chrome::NOTIFICATION_SYNC_CONFIGURE_DONE),
317 &result)));
318 EXPECT_CALL(*data_type_manager, state()). 328 EXPECT_CALL(*data_type_manager, state()).
319 WillOnce(Return(DataTypeManager::STOPPED)); 329 WillOnce(Return(DataTypeManager::STOPPED));
330 EXPECT_CALL(*data_type_manager, last_configure_result()).
331 WillRepeatedly(ReturnRef(result));
320 332
321 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 333 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
322 334
323 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 335 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
324 GaiaConstants::kSyncService, "sync_token"); 336 GaiaConstants::kSyncService, "sync_token");
325 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 337 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user");
326 service_->Initialize(); 338 service_->Initialize();
327 EXPECT_TRUE(service_->HasUnrecoverableError()); 339 EXPECT_TRUE(service_->HasUnrecoverableError());
328 } 340 }
329 341
330 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { 342 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) {
331 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 343 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
332 344
333 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 345 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
334 346
335 // Preload the tokens. 347 // Preload the tokens.
336 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 348 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
337 GaiaConstants::kSyncService, "sync_token"); 349 GaiaConstants::kSyncService, "sync_token");
338 service_->fail_initial_download(); 350 service_->fail_initial_download();
339 351
340 service_->Initialize(); 352 service_->Initialize();
341 EXPECT_FALSE(service_->sync_initialized()); 353 EXPECT_FALSE(service_->sync_initialized());
342 EXPECT_FALSE(service_->GetBackendForTest()); 354 EXPECT_FALSE(service_->GetBackendForTest());
343 } 355 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698