Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "components/sync/driver/glue/sync_backend_registrar.h" | 5 #include "components/sync/driver/glue/sync_backend_registrar.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 73 registrar_->ActivateDataType(AUTOFILL, GROUP_DB, processor, | 73 registrar_->ActivateDataType(AUTOFILL, GROUP_DB, processor, |
| 74 test_user_share_.user_share()); | 74 test_user_share_.user_share()); |
| 75 ExpectRoutingInfo(registrar_.get(), {{AUTOFILL, GROUP_DB}}); | 75 ExpectRoutingInfo(registrar_.get(), {{AUTOFILL, GROUP_DB}}); |
| 76 ExpectHasProcessorsForTypes(*registrar_, ModelTypeSet(AUTOFILL)); | 76 ExpectHasProcessorsForTypes(*registrar_, ModelTypeSet(AUTOFILL)); |
| 77 TriggerChanges(registrar_.get(), AUTOFILL); | 77 TriggerChanges(registrar_.get(), AUTOFILL); |
| 78 done->Signal(); | 78 done->Signal(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 protected: | 81 protected: |
| 82 SyncBackendRegistrarTest() | 82 SyncBackendRegistrarTest() |
| 83 : db_thread_("DBThreadForTest"), file_thread_("FileThreadForTest") {} | 83 : db_thread_("DBThreadForTest"), |
| 84 file_thread_("FileThreadForTest"), | |
| 85 sync_thread_("SyncThreadForTest") {} | |
| 84 | 86 |
| 85 ~SyncBackendRegistrarTest() override {} | 87 ~SyncBackendRegistrarTest() override {} |
| 86 | 88 |
| 87 void SetUp() override { | 89 void SetUp() override { |
| 88 db_thread_.StartAndWaitForTesting(); | 90 db_thread_.StartAndWaitForTesting(); |
| 89 file_thread_.StartAndWaitForTesting(); | 91 file_thread_.StartAndWaitForTesting(); |
| 92 sync_thread_.StartAndWaitForTesting(); | |
| 90 test_user_share_.SetUp(); | 93 test_user_share_.SetUp(); |
| 91 sync_client_ = base::MakeUnique<RegistrarSyncClient>( | 94 sync_client_ = base::MakeUnique<RegistrarSyncClient>( |
| 92 ui_task_runner(), db_task_runner(), file_task_runner()); | 95 ui_task_runner(), db_task_runner(), file_task_runner()); |
| 93 registrar_ = base::MakeUnique<SyncBackendRegistrar>( | 96 registrar_ = base::MakeUnique<SyncBackendRegistrar>( |
| 94 "test", sync_client_.get(), std::unique_ptr<base::Thread>(), | 97 "test", sync_client_.get(), ui_task_runner(), db_task_runner(), |
| 95 ui_task_runner(), db_task_runner(), file_task_runner()); | 98 file_task_runner()); |
| 96 } | 99 } |
| 97 | 100 |
| 98 void TearDown() override { | 101 void TearDown() override { |
| 99 registrar_->RequestWorkerStopOnUIThread(); | 102 registrar_->RequestWorkerStopOnUIThread(); |
| 100 test_user_share_.TearDown(); | 103 test_user_share_.TearDown(); |
| 101 { | 104 sync_thread_.task_runner()->DeleteSoon(FROM_HERE, registrar_.release()); |
| 102 std::unique_ptr<base::Thread> released_sync_thread = | 105 sync_thread_.WaitUntilThreadStarted(); |
|
Nicolas Zea
2016/11/07 20:29:46
Until "thread started"? Should this be until idle?
maxbogue
2016/11/07 23:12:05
Whoops, you're right, this is a bad merge from bef
| |
| 103 registrar_->ReleaseSyncThread(); | |
| 104 released_sync_thread->task_runner()->DeleteSoon(FROM_HERE, | |
| 105 registrar_.release()); | |
| 106 // |released_sync_thread| is joined at the end of this scope. | |
| 107 } | |
| 108 base::RunLoop().RunUntilIdle(); | 106 base::RunLoop().RunUntilIdle(); |
| 109 } | 107 } |
| 110 | 108 |
| 111 void ExpectRoutingInfo(SyncBackendRegistrar* registrar, | 109 void ExpectRoutingInfo(SyncBackendRegistrar* registrar, |
| 112 const ModelSafeRoutingInfo& expected_routing_info) { | 110 const ModelSafeRoutingInfo& expected_routing_info) { |
| 113 ModelSafeRoutingInfo actual_routing_info; | 111 ModelSafeRoutingInfo actual_routing_info; |
| 114 registrar->GetModelSafeRoutingInfo(&actual_routing_info); | 112 registrar->GetModelSafeRoutingInfo(&actual_routing_info); |
| 115 EXPECT_EQ(expected_routing_info, actual_routing_info); | 113 EXPECT_EQ(expected_routing_info, actual_routing_info); |
| 116 } | 114 } |
| 117 | 115 |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 138 return db_thread_.task_runner(); | 136 return db_thread_.task_runner(); |
| 139 } | 137 } |
| 140 | 138 |
| 141 const scoped_refptr<base::SingleThreadTaskRunner> file_task_runner() { | 139 const scoped_refptr<base::SingleThreadTaskRunner> file_task_runner() { |
| 142 return db_thread_.task_runner(); | 140 return db_thread_.task_runner(); |
| 143 } | 141 } |
| 144 | 142 |
| 145 base::MessageLoop message_loop_; | 143 base::MessageLoop message_loop_; |
| 146 base::Thread db_thread_; | 144 base::Thread db_thread_; |
| 147 base::Thread file_thread_; | 145 base::Thread file_thread_; |
| 146 base::Thread sync_thread_; | |
| 148 | 147 |
| 149 TestUserShare test_user_share_; | 148 TestUserShare test_user_share_; |
| 150 std::unique_ptr<RegistrarSyncClient> sync_client_; | 149 std::unique_ptr<RegistrarSyncClient> sync_client_; |
| 151 std::unique_ptr<SyncBackendRegistrar> registrar_; | 150 std::unique_ptr<SyncBackendRegistrar> registrar_; |
| 152 }; | 151 }; |
| 153 | 152 |
| 154 TEST_F(SyncBackendRegistrarTest, ConstructorEmpty) { | 153 TEST_F(SyncBackendRegistrarTest, ConstructorEmpty) { |
| 155 registrar_->SetInitialTypes(ModelTypeSet()); | 154 registrar_->SetInitialTypes(ModelTypeSet()); |
| 156 EXPECT_FALSE(registrar_->IsNigoriEnabled()); | 155 EXPECT_FALSE(registrar_->IsNigoriEnabled()); |
| 157 EXPECT_EQ(4u, GetWorkersSize()); | 156 EXPECT_EQ(4u, GetWorkersSize()); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 registrar_->ConfigureDataTypes(types_to_add, ModelTypeSet()); | 298 registrar_->ConfigureDataTypes(types_to_add, ModelTypeSet()); |
| 300 EXPECT_EQ(ModelTypeSet(BOOKMARKS), newly_added_types); | 299 EXPECT_EQ(ModelTypeSet(BOOKMARKS), newly_added_types); |
| 301 EXPECT_EQ(types_to_add, registrar_->GetLastConfiguredTypes()); | 300 EXPECT_EQ(types_to_add, registrar_->GetLastConfiguredTypes()); |
| 302 ExpectRoutingInfo(registrar_.get(), {{AUTOFILL, GROUP_NON_BLOCKING}, | 301 ExpectRoutingInfo(registrar_.get(), {{AUTOFILL, GROUP_NON_BLOCKING}, |
| 303 {BOOKMARKS, GROUP_NON_BLOCKING}}); | 302 {BOOKMARKS, GROUP_NON_BLOCKING}}); |
| 304 } | 303 } |
| 305 | 304 |
| 306 } // namespace | 305 } // namespace |
| 307 | 306 |
| 308 } // namespace syncer | 307 } // namespace syncer |
| OLD | NEW |