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

Unified Diff: components/sync_driver/model_association_manager_unittest.cc

Issue 2203673002: [Sync] Move //components/sync_driver to //components/sync/driver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sd-a
Patch Set: Full change rebased on static lib. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync_driver/model_association_manager.cc ('k') | components/sync_driver/model_associator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync_driver/model_association_manager_unittest.cc
diff --git a/components/sync_driver/model_association_manager_unittest.cc b/components/sync_driver/model_association_manager_unittest.cc
deleted file mode 100644
index f5737526c9286aab5798825f6e624f6d92afcdbc..0000000000000000000000000000000000000000
--- a/components/sync_driver/model_association_manager_unittest.cc
+++ /dev/null
@@ -1,527 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/sync_driver/model_association_manager.h"
-
-#include "base/callback.h"
-#include "base/message_loop/message_loop.h"
-#include "components/sync_driver/fake_data_type_controller.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::_;
-
-namespace sync_driver {
-
-class MockModelAssociationManagerDelegate :
- public ModelAssociationManagerDelegate {
- public:
- MockModelAssociationManagerDelegate() {}
- ~MockModelAssociationManagerDelegate() {}
- MOCK_METHOD0(OnAllDataTypesReadyForConfigure, void());
- MOCK_METHOD2(OnSingleDataTypeAssociationDone,
- void(syncer::ModelType type,
- const syncer::DataTypeAssociationStats& association_stats));
- MOCK_METHOD2(OnSingleDataTypeWillStop,
- void(syncer::ModelType, const syncer::SyncError& error));
- MOCK_METHOD1(OnModelAssociationDone, void(
- const DataTypeManager::ConfigureResult& result));
-};
-
-FakeDataTypeController* GetController(
- const DataTypeController::TypeMap& controllers,
- syncer::ModelType model_type) {
- DataTypeController::TypeMap::const_iterator it =
- controllers.find(model_type);
- if (it == controllers.end()) {
- return NULL;
- }
- return static_cast<FakeDataTypeController*>(it->second.get());
-}
-
-ACTION_P(VerifyResult, expected_result) {
- EXPECT_EQ(arg0.status, expected_result.status);
- EXPECT_EQ(expected_result.requested_types, arg0.requested_types);
-}
-
-class SyncModelAssociationManagerTest : public testing::Test {
- public:
- SyncModelAssociationManagerTest() {
- }
-
- protected:
- base::MessageLoopForUI ui_loop_;
- MockModelAssociationManagerDelegate delegate_;
- DataTypeController::TypeMap controllers_;
-};
-
-// Start a type and make sure ModelAssociationManager callst the |Start|
-// method and calls the callback when it is done.
-TEST_F(SyncModelAssociationManagerTest, SimpleModelStart) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] =
- new FakeDataTypeController(syncer::APPS);
- ModelAssociationManager model_association_manager(&controllers_,
- &delegate_);
- syncer::ModelTypeSet types(syncer::BOOKMARKS, syncer::APPS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::NOT_RUNNING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::NOT_RUNNING);
-
- // Initialize() kicks off model loading.
- model_association_manager.Initialize(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::MODEL_LOADED);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_LOADED);
-
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::OK);
- GetController(controllers_, syncer::APPS)->FinishStart(
- DataTypeController::OK);
-}
-
-// Start a type and call stop before it finishes associating.
-TEST_F(SyncModelAssociationManagerTest, StopModelBeforeFinish) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
-
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
-
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::ABORTED,
- types);
-
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- model_association_manager.Stop();
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::NOT_RUNNING);
-}
-
-// Start a type, let it finish and then call stop.
-TEST_F(SyncModelAssociationManagerTest, StopAfterFinish) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::OK);
-
- model_association_manager.Stop();
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::NOT_RUNNING);
-}
-
-// Make a type fail model association and verify correctness.
-TEST_F(SyncModelAssociationManagerTest, TypeFailModelAssociation) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::ASSOCIATION_FAILED);
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::NOT_RUNNING);
-}
-
-// Ensure configuring stops when a type returns a unrecoverable error.
-TEST_F(SyncModelAssociationManagerTest, TypeReturnUnrecoverableError) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(
- DataTypeManager::UNRECOVERABLE_ERROR, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- model_association_manager.Initialize(types);
-
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::UNRECOVERABLE_ERROR);
-}
-
-TEST_F(SyncModelAssociationManagerTest, SlowTypeAsFailedType) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] =
- new FakeDataTypeController(syncer::APPS);
- GetController(controllers_, syncer::BOOKMARKS)->SetDelayModelLoad();
- ModelAssociationManager model_association_manager(&controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- types.Put(syncer::APPS);
-
- DataTypeManager::ConfigureResult expected_result_partially_done(
- DataTypeManager::OK, types);
-
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result_partially_done));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
- GetController(controllers_, syncer::APPS)->FinishStart(
- DataTypeController::OK);
-
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- model_association_manager.GetTimerForTesting()->user_task().Run();
-
- EXPECT_EQ(DataTypeController::NOT_RUNNING,
- GetController(controllers_, syncer::BOOKMARKS)->state());
-}
-
-TEST_F(SyncModelAssociationManagerTest, StartMultipleTimes) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] =
- new FakeDataTypeController(syncer::APPS);
- ModelAssociationManager model_association_manager(&controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- types.Put(syncer::APPS);
-
- DataTypeManager::ConfigureResult result_1st(
- DataTypeManager::OK,
- syncer::ModelTypeSet(syncer::BOOKMARKS));
- DataTypeManager::ConfigureResult result_2nd(
- DataTypeManager::OK,
- syncer::ModelTypeSet(syncer::APPS));
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- Times(2).
- WillOnce(VerifyResult(result_1st)).
- WillOnce(VerifyResult(result_2nd));
-
- model_association_manager.Initialize(types);
-
- // Start BOOKMARKS first.
- model_association_manager.StartAssociationAsync(
- syncer::ModelTypeSet(syncer::BOOKMARKS));
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_LOADED);
-
- // Finish BOOKMARKS association.
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::OK);
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::RUNNING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_LOADED);
-
- // Start APPS next.
- model_association_manager.StartAssociationAsync(
- syncer::ModelTypeSet(syncer::APPS));
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::APPS)->FinishStart(
- DataTypeController::OK);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::RUNNING);
-}
-
-// Test that model that failed to load between initialization and association
-// is reported and stopped properly.
-TEST_F(SyncModelAssociationManagerTest, ModelLoadFailBeforeAssociationStart) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- GetController(controllers_, syncer::BOOKMARKS)->SetModelLoadError(
- syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
- "", syncer::BOOKMARKS));
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- model_association_manager.Initialize(types);
- EXPECT_EQ(DataTypeController::NOT_RUNNING,
- GetController(controllers_, syncer::BOOKMARKS)->state());
- model_association_manager.StartAssociationAsync(types);
- EXPECT_EQ(DataTypeController::NOT_RUNNING,
- GetController(controllers_, syncer::BOOKMARKS)->state());
-}
-
-// Test that a runtime error is handled by stopping the type.
-TEST_F(SyncModelAssociationManagerTest, StopAfterConfiguration) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- ModelAssociationManager model_association_manager(
- &controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
- GetController(controllers_, syncer::BOOKMARKS)->FinishStart(
- DataTypeController::OK);
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::RUNNING);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- syncer::SyncError error(FROM_HERE,
- syncer::SyncError::DATATYPE_ERROR,
- "error",
- syncer::BOOKMARKS);
- GetController(controllers_, syncer::BOOKMARKS)
- ->OnSingleDataTypeUnrecoverableError(error);
-}
-
-TEST_F(SyncModelAssociationManagerTest, AbortDuringAssociation) {
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] =
- new FakeDataTypeController(syncer::APPS);
- ModelAssociationManager model_association_manager(&controllers_,
- &delegate_);
- syncer::ModelTypeSet types;
- types.Put(syncer::BOOKMARKS);
- types.Put(syncer::APPS);
-
- syncer::ModelTypeSet expected_types_unfinished;
- expected_types_unfinished.Put(syncer::BOOKMARKS);
- DataTypeManager::ConfigureResult expected_result_partially_done(
- DataTypeManager::OK, types);
-
- EXPECT_CALL(delegate_, OnModelAssociationDone(_)).
- WillOnce(VerifyResult(expected_result_partially_done));
-
- model_association_manager.Initialize(types);
- model_association_manager.StartAssociationAsync(types);
- GetController(controllers_, syncer::APPS)->FinishStart(
- DataTypeController::OK);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::RUNNING);
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::ASSOCIATING);
-
- EXPECT_CALL(delegate_,
- OnSingleDataTypeWillStop(syncer::BOOKMARKS, _));
- model_association_manager.GetTimerForTesting()->user_task().Run();
-
- EXPECT_EQ(DataTypeController::NOT_RUNNING,
- GetController(controllers_, syncer::BOOKMARKS)->state());
-}
-
-// Test that OnAllDataTypesReadyForConfigure is called when all datatypes that
-// require LoadModels before configuration are loaded.
-TEST_F(SyncModelAssociationManagerTest, OnAllDataTypesReadyForConfigure) {
- // Create two controllers with delayed model load.
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] = new FakeDataTypeController(syncer::APPS);
- GetController(controllers_, syncer::BOOKMARKS)->SetDelayModelLoad();
- GetController(controllers_, syncer::APPS)->SetDelayModelLoad();
-
- // APPS controller requires LoadModels complete before configure.
- GetController(controllers_, syncer::APPS)
- ->SetShouldLoadModelBeforeConfigure(true);
-
- ModelAssociationManager model_association_manager(&controllers_, &delegate_);
- syncer::ModelTypeSet types(syncer::BOOKMARKS, syncer::APPS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not
- // loaded yet.
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
-
- model_association_manager.Initialize(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::MODEL_STARTING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_STARTING);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
-
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
- // Finish loading APPS. This should trigger OnAllDataTypesReadyForConfigure
- // even though BOOKMARKS is not loaded yet.
- GetController(controllers_, syncer::APPS)->SimulateModelLoadFinishing();
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::MODEL_STARTING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_LOADED);
-
- // Call ModelAssociationManager::Initialize with reduced set of datatypes.
- // All datatypes in reduced set are already loaded.
- // OnAllDataTypesReadyForConfigure() should be called.
- testing::Mock::VerifyAndClearExpectations(&delegate_);
-
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
- syncer::ModelTypeSet reduced_types(syncer::APPS);
- model_association_manager.Initialize(reduced_types);
-}
-
-// Test that OnAllDataTypesReadyForConfigure() is called correctly after
-// LoadModels fails for one of datatypes.
-TEST_F(SyncModelAssociationManagerTest,
- OnAllDataTypesReadyForConfigure_FailedLoadModels) {
- controllers_[syncer::APPS] = new FakeDataTypeController(syncer::APPS);
- GetController(controllers_, syncer::APPS)->SetDelayModelLoad();
-
- // APPS controller requires LoadModels complete before configure.
- GetController(controllers_, syncer::APPS)
- ->SetShouldLoadModelBeforeConfigure(true);
-
- ModelAssociationManager model_association_manager(&controllers_, &delegate_);
- syncer::ModelTypeSet types(syncer::APPS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
- // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not
- // loaded yet.
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
-
- model_association_manager.Initialize(types);
-
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_STARTING);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
-
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
- // Simulate model load error for APPS and finish loading it. This should
- // trigger OnAllDataTypesReadyForConfigure.
- GetController(controllers_, syncer::APPS)
- ->SetModelLoadError(syncer::SyncError(
- FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "", syncer::APPS));
- GetController(controllers_, syncer::APPS)->SimulateModelLoadFinishing();
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::NOT_RUNNING);
-}
-
-// Test that if one of the types fails while another is still being loaded then
-// OnAllDataTypesReadyForConfgiure is still called correctly.
-TEST_F(SyncModelAssociationManagerTest,
- OnAllDataTypesReadyForConfigure_TypeFailedAfterLoadModels) {
- // Create two controllers with delayed model load. Both should block
- // configuration.
- controllers_[syncer::BOOKMARKS] =
- new FakeDataTypeController(syncer::BOOKMARKS);
- controllers_[syncer::APPS] = new FakeDataTypeController(syncer::APPS);
- GetController(controllers_, syncer::BOOKMARKS)->SetDelayModelLoad();
- GetController(controllers_, syncer::APPS)->SetDelayModelLoad();
-
- GetController(controllers_, syncer::BOOKMARKS)
- ->SetShouldLoadModelBeforeConfigure(true);
- GetController(controllers_, syncer::APPS)
- ->SetShouldLoadModelBeforeConfigure(true);
-
- ModelAssociationManager model_association_manager(&controllers_, &delegate_);
- syncer::ModelTypeSet types(syncer::BOOKMARKS, syncer::APPS);
- DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
-
- // Apps will finish loading but bookmarks won't.
- // OnAllDataTypesReadyForConfigure shouldn't be called.
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
-
- model_association_manager.Initialize(types);
-
- GetController(controllers_, syncer::APPS)->SimulateModelLoadFinishing();
-
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::MODEL_STARTING);
- EXPECT_EQ(GetController(controllers_, syncer::APPS)->state(),
- DataTypeController::MODEL_LOADED);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
-
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
-
- EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(syncer::APPS, _));
- // Apps datatype reports failure.
- syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "error",
- syncer::APPS);
- GetController(controllers_, syncer::APPS)
- ->OnSingleDataTypeUnrecoverableError(error);
-
- testing::Mock::VerifyAndClearExpectations(&delegate_);
-
- EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
- // Finish loading BOOKMARKS. This should trigger
- // OnAllDataTypesReadyForConfigure().
- GetController(controllers_, syncer::BOOKMARKS)->SimulateModelLoadFinishing();
- EXPECT_EQ(GetController(controllers_, syncer::BOOKMARKS)->state(),
- DataTypeController::MODEL_LOADED);
-}
-
-} // namespace sync_driver
« no previous file with comments | « components/sync_driver/model_association_manager.cc ('k') | components/sync_driver/model_associator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698