Index: trunk/src/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc |
=================================================================== |
--- trunk/src/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc (revision 285001) |
+++ trunk/src/chrome/browser/sync/profile_sync_service_typed_url_unittest.cc (working copy) |
@@ -111,45 +111,19 @@ |
class HistoryServiceMock : public HistoryService { |
public: |
- HistoryServiceMock(history::HistoryClient* client, Profile* profile) |
- : HistoryService(client, profile), backend_(NULL) {} |
- |
- virtual void ScheduleDBTask(scoped_ptr<history::HistoryDBTask> task, |
- base::CancelableTaskTracker* tracker) OVERRIDE { |
- history::HistoryDBTask* task_raw = task.get(); |
- task_runner_->PostTaskAndReply( |
- FROM_HERE, |
- base::Bind(&HistoryServiceMock::RunTaskOnDBThread, |
- base::Unretained(this), task_raw), |
- base::Bind(&base::DeletePointer<history::HistoryDBTask>, |
- task.release())); |
- } |
- |
+ explicit HistoryServiceMock(history::HistoryClient* client, Profile* profile) |
+ : HistoryService(client, profile) {} |
+ MOCK_METHOD2(ScheduleDBTask, |
+ void(scoped_refptr<history::HistoryDBTask>, |
+ base::CancelableTaskTracker*)); |
MOCK_METHOD0(Shutdown, void()); |
void ShutdownBaseService() { |
HistoryService::Shutdown(); |
} |
- void set_task_runner( |
- scoped_refptr<base::SingleThreadTaskRunner> task_runner) { |
- DCHECK(task_runner); |
- task_runner_ = task_runner; |
- } |
- |
- void set_backend(scoped_refptr<history::HistoryBackend> backend) { |
- backend_ = backend; |
- } |
- |
private: |
virtual ~HistoryServiceMock() {} |
- |
- void RunTaskOnDBThread(history::HistoryDBTask* task) { |
- EXPECT_TRUE(task->RunOnDBThread(backend_, NULL)); |
- } |
- |
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
- scoped_refptr<history::HistoryBackend> backend_; |
}; |
KeyedService* BuildFakeProfileInvalidationProvider( |
@@ -177,6 +151,17 @@ |
virtual void ClearErrorStats() OVERRIDE {} |
}; |
+void RunOnDBThreadCallback(HistoryBackend* backend, |
+ scoped_refptr<history::HistoryDBTask> task) { |
+ task->RunOnDBThread(backend, NULL); |
+} |
+ |
+ACTION_P2(RunTaskOnDBThread, thread, backend) { |
+ thread->message_loop()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&RunOnDBThreadCallback, base::Unretained(backend), arg0)); |
+} |
+ |
ACTION_P2(ShutdownHistoryService, thread, service) { |
service->ShutdownBaseService(); |
delete thread; |
@@ -236,13 +221,14 @@ |
testing_factories); |
invalidation::ProfileInvalidationProviderFactory::GetInstance()-> |
SetTestingFactory(profile_, BuildFakeProfileInvalidationProvider); |
- history_thread_->Start(); |
history_backend_ = new HistoryBackendMock(); |
history_service_ = static_cast<HistoryServiceMock*>( |
HistoryServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
profile_, BuildHistoryService)); |
- history_service_->set_task_runner(history_thread_->task_runner()); |
- history_service_->set_backend(history_backend_); |
+ EXPECT_CALL((*history_service_), ScheduleDBTask(_, _)) |
+ .WillRepeatedly(RunTaskOnDBThread(history_thread_.get(), |
+ history_backend_.get())); |
+ history_thread_->Start(); |
} |
virtual void TearDown() { |