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

Side by Side Diff: chrome/browser/sync/glue/shared_change_processor_unittest.cc

Issue 9749012: [Sync] Have SyncableService's take ownership of their SyncChangeProcessor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix merge conflict Created 8 years, 9 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 "chrome/browser/sync/glue/shared_change_processor.h" 5 #include "chrome/browser/sync/glue/shared_change_processor.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/message_loop.h" 12 #include "base/message_loop.h"
13 #include "chrome/browser/sync/api/syncable_service_mock.h" 13 #include "chrome/browser/sync/api/fake_syncable_service.h"
14 #include "chrome/browser/sync/profile_sync_components_factory_mock.h" 14 #include "chrome/browser/sync/profile_sync_components_factory_mock.h"
15 #include "chrome/browser/sync/glue/data_type_error_handler_mock.h" 15 #include "chrome/browser/sync/glue/data_type_error_handler_mock.h"
16 #include "chrome/browser/sync/profile_sync_components_factory_impl.h" 16 #include "chrome/browser/sync/profile_sync_components_factory_impl.h"
17 #include "chrome/browser/sync/profile_sync_service_mock.h" 17 #include "chrome/browser/sync/profile_sync_service_mock.h"
18 #include "content/test/test_browser_thread.h" 18 #include "content/test/test_browser_thread.h"
19 #include "testing/gmock/include/gmock/gmock.h" 19 #include "testing/gmock/include/gmock/gmock.h"
20 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
21 21
22 namespace browser_sync { 22 namespace browser_sync {
23 23
(...skipping 10 matching lines...) Expand all
34 } 34 }
35 35
36 class SyncSharedChangeProcessorTest : public testing::Test { 36 class SyncSharedChangeProcessorTest : public testing::Test {
37 public: 37 public:
38 SyncSharedChangeProcessorTest() 38 SyncSharedChangeProcessorTest()
39 : ui_thread_(BrowserThread::UI, &ui_loop_), 39 : ui_thread_(BrowserThread::UI, &ui_loop_),
40 db_thread_(BrowserThread::DB), 40 db_thread_(BrowserThread::DB),
41 db_syncable_service_(NULL) {} 41 db_syncable_service_(NULL) {}
42 42
43 virtual ~SyncSharedChangeProcessorTest() { 43 virtual ~SyncSharedChangeProcessorTest() {
44 EXPECT_FALSE(db_syncable_service_); 44 EXPECT_FALSE(db_syncable_service_.get());
45 } 45 }
46 46
47 protected: 47 protected:
48 virtual void SetUp() OVERRIDE { 48 virtual void SetUp() OVERRIDE {
49 shared_change_processor_ = new SharedChangeProcessor(); 49 shared_change_processor_ = new SharedChangeProcessor();
50 db_thread_.Start(); 50 db_thread_.Start();
51 EXPECT_TRUE(BrowserThread::PostTask( 51 EXPECT_TRUE(BrowserThread::PostTask(
52 BrowserThread::DB, 52 BrowserThread::DB,
53 FROM_HERE, 53 FROM_HERE,
54 base::Bind(&SyncSharedChangeProcessorTest::SetUpDBSyncableService, 54 base::Bind(&SyncSharedChangeProcessorTest::SetUpDBSyncableService,
(...skipping 23 matching lines...) Expand all
78 FROM_HERE, 78 FROM_HERE,
79 base::Bind(&SyncSharedChangeProcessorTest::ConnectOnDBThread, 79 base::Bind(&SyncSharedChangeProcessorTest::ConnectOnDBThread,
80 base::Unretained(this), 80 base::Unretained(this),
81 shared_change_processor_))); 81 shared_change_processor_)));
82 } 82 }
83 83
84 private: 84 private:
85 // Used by SetUp(). 85 // Used by SetUp().
86 void SetUpDBSyncableService() { 86 void SetUpDBSyncableService() {
87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
88 DCHECK(!db_syncable_service_); 88 DCHECK(!db_syncable_service_.get());
89 db_syncable_service_ = new NiceMock<SyncableServiceMock>(); 89 db_syncable_service_.reset(new FakeSyncableService());
90 } 90 }
91 91
92 // Used by TearDown(). 92 // Used by TearDown().
93 void TearDownDBSyncableService() { 93 void TearDownDBSyncableService() {
94 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 94 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
95 DCHECK(db_syncable_service_); 95 DCHECK(db_syncable_service_.get());
96 delete db_syncable_service_; 96 db_syncable_service_.reset();
97 db_syncable_service_ = NULL;
98 } 97 }
99 98
100 // Used by Connect(). The SharedChangeProcessor is passed in 99 // Used by Connect(). The SharedChangeProcessor is passed in
101 // because we modify |shared_change_processor_| on the main thread 100 // because we modify |shared_change_processor_| on the main thread
102 // (in TearDown()). 101 // (in TearDown()).
103 void ConnectOnDBThread( 102 void ConnectOnDBThread(
104 const scoped_refptr<SharedChangeProcessor>& shared_change_processor) { 103 const scoped_refptr<SharedChangeProcessor>& shared_change_processor) {
105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 104 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
106 EXPECT_CALL(sync_factory_, GetSyncableServiceForType(syncable::AUTOFILL)). 105 EXPECT_CALL(sync_factory_, GetSyncableServiceForType(syncable::AUTOFILL)).
107 WillOnce(GetWeakPtrToSyncableService(db_syncable_service_)); 106 WillOnce(GetWeakPtrToSyncableService(db_syncable_service_.get()));
108 EXPECT_TRUE(shared_change_processor->Connect(&sync_factory_, 107 EXPECT_TRUE(shared_change_processor->Connect(&sync_factory_,
109 &sync_service_, 108 &sync_service_,
110 &error_handler_, 109 &error_handler_,
111 syncable::AUTOFILL)); 110 syncable::AUTOFILL));
112 } 111 }
113 112
114 MessageLoopForUI ui_loop_; 113 MessageLoopForUI ui_loop_;
115 content::TestBrowserThread ui_thread_; 114 content::TestBrowserThread ui_thread_;
116 content::TestBrowserThread db_thread_; 115 content::TestBrowserThread db_thread_;
117 116
118 scoped_refptr<SharedChangeProcessor> shared_change_processor_; 117 scoped_refptr<SharedChangeProcessor> shared_change_processor_;
119 NiceMock<ProfileSyncComponentsFactoryMock> sync_factory_; 118 NiceMock<ProfileSyncComponentsFactoryMock> sync_factory_;
120 NiceMock<ProfileSyncServiceMock> sync_service_; 119 NiceMock<ProfileSyncServiceMock> sync_service_;
121 StrictMock<DataTypeErrorHandlerMock> error_handler_; 120 StrictMock<DataTypeErrorHandlerMock> error_handler_;
122 121
123 // Used only on DB thread. 122 // Used only on DB thread.
124 NiceMock<SyncableServiceMock>* db_syncable_service_; 123 scoped_ptr<FakeSyncableService> db_syncable_service_;
125 }; 124 };
126 125
127 // Simply connect the shared change processor. It should succeed, and 126 // Simply connect the shared change processor. It should succeed, and
128 // nothing further should happen. 127 // nothing further should happen.
129 TEST_F(SyncSharedChangeProcessorTest, Basic) { 128 TEST_F(SyncSharedChangeProcessorTest, Basic) {
130 Connect(); 129 Connect();
131 } 130 }
132 131
133 } // namespace 132 } // namespace
134 133
135 } // namespace browser_sync 134 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698