Index: components/sync/engine_impl/syncer_unittest.cc |
diff --git a/components/sync/engine_impl/syncer_unittest.cc b/components/sync/engine_impl/syncer_unittest.cc |
index a66b78498b3a520ea1c006db85b28e1f93b012de..ca131a0e7db6102c1fbd2b5da1b383a33ad98b38 100644 |
--- a/components/sync/engine_impl/syncer_unittest.cc |
+++ b/components/sync/engine_impl/syncer_unittest.cc |
@@ -251,10 +251,13 @@ class SyncerTest : public testing::Test, |
} |
bool SyncShareConfigure() { |
+ return SyncShareConfigureTypes(context_->GetEnabledTypes()); |
+ } |
+ |
+ bool SyncShareConfigureTypes(ModelTypeSet types) { |
ResetCycle(); |
return syncer_->ConfigureSyncShare( |
- context_->GetEnabledTypes(), |
- sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, cycle_.get()); |
+ types, sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, cycle_.get()); |
} |
void SetUp() override { |
@@ -5019,6 +5022,19 @@ TEST_F(SyncerTest, ConfigureFailsDontApplyUpdates) { |
mock_server_->ClearUpdatesQueue(); |
} |
+// Tests that, after shutdown initiated, if set of types to download includes |
+// unregistered type, DCHECK doesn't get triggered. |
+TEST_F(SyncerTest, ConfigureUnregisteredTypesDuringShutdown) { |
+ // Signal that shutdown is initiated. |
+ cancelation_signal_.Signal(); |
+ |
+ // Simulate type being unregistered before configuration by including type |
+ // that isn't registered with ModelTypeRegistry. |
+ SyncShareConfigureTypes(ModelTypeSet(APPS)); |
+ |
+ // No explicit verification, DCHECK shouldn't have been triggered. |
+} |
+ |
TEST_F(SyncerTest, GetKeySuccess) { |
{ |
syncable::ReadTransaction rtrans(FROM_HERE, directory()); |