| OLD | NEW |
| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/callback.h" | 6 #include "base/callback.h" |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace { | 35 namespace { |
| 36 | 36 |
| 37 using content::BrowserThread; | 37 using content::BrowserThread; |
| 38 using testing::_; | 38 using testing::_; |
| 39 using testing::Return; | 39 using testing::Return; |
| 40 | 40 |
| 41 class NoOpAutofillBackend : public AutofillWebDataBackend { | 41 class NoOpAutofillBackend : public AutofillWebDataBackend { |
| 42 public: | 42 public: |
| 43 NoOpAutofillBackend() {} | 43 NoOpAutofillBackend() {} |
| 44 virtual ~NoOpAutofillBackend() {} | 44 virtual ~NoOpAutofillBackend() {} |
| 45 virtual WebDatabase* GetDatabase() OVERRIDE { return NULL; } | 45 virtual WebDatabase* GetDatabase() override { return NULL; } |
| 46 virtual void AddObserver( | 46 virtual void AddObserver( |
| 47 autofill::AutofillWebDataServiceObserverOnDBThread* observer) OVERRIDE {} | 47 autofill::AutofillWebDataServiceObserverOnDBThread* observer) override {} |
| 48 virtual void RemoveObserver( | 48 virtual void RemoveObserver( |
| 49 autofill::AutofillWebDataServiceObserverOnDBThread* observer) OVERRIDE {} | 49 autofill::AutofillWebDataServiceObserverOnDBThread* observer) override {} |
| 50 virtual void RemoveExpiredFormElements() OVERRIDE {} | 50 virtual void RemoveExpiredFormElements() override {} |
| 51 virtual void NotifyOfMultipleAutofillChanges() OVERRIDE {} | 51 virtual void NotifyOfMultipleAutofillChanges() override {} |
| 52 }; | 52 }; |
| 53 | 53 |
| 54 // Fake WebDataService implementation that stubs out the database loading. | 54 // Fake WebDataService implementation that stubs out the database loading. |
| 55 class FakeWebDataService : public AutofillWebDataService { | 55 class FakeWebDataService : public AutofillWebDataService { |
| 56 public: | 56 public: |
| 57 FakeWebDataService() | 57 FakeWebDataService() |
| 58 : AutofillWebDataService( | 58 : AutofillWebDataService( |
| 59 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 59 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 60 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)), | 60 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)), |
| 61 is_database_loaded_(false), | 61 is_database_loaded_(false), |
| 62 db_loaded_callback_(base::Callback<void(void)>()){} | 62 db_loaded_callback_(base::Callback<void(void)>()){} |
| 63 | 63 |
| 64 // Mark the database as loaded and send out the appropriate notification. | 64 // Mark the database as loaded and send out the appropriate notification. |
| 65 void LoadDatabase() { | 65 void LoadDatabase() { |
| 66 StartSyncableService(); | 66 StartSyncableService(); |
| 67 is_database_loaded_ = true; | 67 is_database_loaded_ = true; |
| 68 | 68 |
| 69 if (!db_loaded_callback_.is_null()) | 69 if (!db_loaded_callback_.is_null()) |
| 70 db_loaded_callback_.Run(); | 70 db_loaded_callback_.Run(); |
| 71 } | 71 } |
| 72 | 72 |
| 73 virtual bool IsDatabaseLoaded() OVERRIDE { | 73 virtual bool IsDatabaseLoaded() override { |
| 74 return is_database_loaded_; | 74 return is_database_loaded_; |
| 75 } | 75 } |
| 76 | 76 |
| 77 virtual void RegisterDBLoadedCallback( | 77 virtual void RegisterDBLoadedCallback( |
| 78 const base::Callback<void(void)>& callback) OVERRIDE { | 78 const base::Callback<void(void)>& callback) override { |
| 79 db_loaded_callback_ = callback; | 79 db_loaded_callback_ = callback; |
| 80 } | 80 } |
| 81 | 81 |
| 82 void StartSyncableService() { | 82 void StartSyncableService() { |
| 83 // The |autofill_profile_syncable_service_| must be constructed on the DB | 83 // The |autofill_profile_syncable_service_| must be constructed on the DB |
| 84 // thread. | 84 // thread. |
| 85 base::RunLoop run_loop; | 85 base::RunLoop run_loop; |
| 86 BrowserThread::PostTaskAndReply(BrowserThread::DB, FROM_HERE, | 86 BrowserThread::PostTaskAndReply(BrowserThread::DB, FROM_HERE, |
| 87 base::Bind(&FakeWebDataService::CreateSyncableService, | 87 base::Bind(&FakeWebDataService::CreateSyncableService, |
| 88 base::Unretained(this)), run_loop.QuitClosure()); | 88 base::Unretained(this)), run_loop.QuitClosure()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 111 class MockWebDataServiceWrapperSyncable : public MockWebDataServiceWrapper { | 111 class MockWebDataServiceWrapperSyncable : public MockWebDataServiceWrapper { |
| 112 public: | 112 public: |
| 113 static KeyedService* Build(content::BrowserContext* profile) { | 113 static KeyedService* Build(content::BrowserContext* profile) { |
| 114 return new MockWebDataServiceWrapperSyncable(); | 114 return new MockWebDataServiceWrapperSyncable(); |
| 115 } | 115 } |
| 116 | 116 |
| 117 MockWebDataServiceWrapperSyncable() | 117 MockWebDataServiceWrapperSyncable() |
| 118 : MockWebDataServiceWrapper(new FakeWebDataService(), NULL) { | 118 : MockWebDataServiceWrapper(new FakeWebDataService(), NULL) { |
| 119 } | 119 } |
| 120 | 120 |
| 121 virtual void Shutdown() OVERRIDE { | 121 virtual void Shutdown() override { |
| 122 static_cast<FakeWebDataService*>( | 122 static_cast<FakeWebDataService*>( |
| 123 fake_autofill_web_data_.get())->ShutdownOnUIThread(); | 123 fake_autofill_web_data_.get())->ShutdownOnUIThread(); |
| 124 // Make sure WebDataService is shutdown properly on DB thread before we | 124 // Make sure WebDataService is shutdown properly on DB thread before we |
| 125 // destroy it. | 125 // destroy it. |
| 126 base::RunLoop run_loop; | 126 base::RunLoop run_loop; |
| 127 ASSERT_TRUE(BrowserThread::PostTaskAndReply(BrowserThread::DB, FROM_HERE, | 127 ASSERT_TRUE(BrowserThread::PostTaskAndReply(BrowserThread::DB, FROM_HERE, |
| 128 base::Bind(&base::DoNothing), run_loop.QuitClosure())); | 128 base::Bind(&base::DoNothing), run_loop.QuitClosure())); |
| 129 run_loop.Run(); | 129 run_loop.Run(); |
| 130 } | 130 } |
| 131 | 131 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 EXPECT_EQ(sync_driver::DataTypeController::ASSOCIATION_FAILED, | 244 EXPECT_EQ(sync_driver::DataTypeController::ASSOCIATION_FAILED, |
| 245 last_start_result_); | 245 last_start_result_); |
| 246 EXPECT_TRUE(last_start_error_.IsSet()); | 246 EXPECT_TRUE(last_start_error_.IsSet()); |
| 247 | 247 |
| 248 EXPECT_EQ(sync_driver::DataTypeController::DISABLED, autofill_dtc_->state()); | 248 EXPECT_EQ(sync_driver::DataTypeController::DISABLED, autofill_dtc_->state()); |
| 249 } | 249 } |
| 250 | 250 |
| 251 } // namespace | 251 } // namespace |
| 252 | 252 |
| 253 } // namespace browser_sync | 253 } // namespace browser_sync |
| OLD | NEW |