Upstream version 9.37.195.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / glue / search_engine_data_type_controller_unittest.cc
index 463d70b..dfb6b29 100644 (file)
@@ -39,9 +39,9 @@ class SyncSearchEngineDataTypeControllerTest : public testing::Test {
     // Feed the DTC test_util_'s profile so it is reused later.
     // This allows us to control the associated TemplateURLService.
     search_engine_dtc_ =
-        new SearchEngineDataTypeController(profile_sync_factory_.get(),
-                                           test_util_.profile(),
-                                           service_.get());
+        new SearchEngineDataTypeController(
+            profile_sync_factory_.get(), test_util_.profile(),
+            DataTypeController::DisableTypeCallback());
   }
 
   virtual void TearDown() {
@@ -61,19 +61,14 @@ class SyncSearchEngineDataTypeControllerTest : public testing::Test {
   void SetStartExpectations() {
     search_engine_dtc_->SetGenericChangeProcessorFactoryForTest(
         make_scoped_ptr<GenericChangeProcessorFactory>(
-            new FakeGenericChangeProcessorFactory(
-                make_scoped_ptr(new FakeGenericChangeProcessor()))));
+            new FakeGenericChangeProcessorFactory(make_scoped_ptr(
+                new FakeGenericChangeProcessor(profile_sync_factory_.get())))));
     EXPECT_CALL(model_load_callback_, Run(_, _));
     EXPECT_CALL(*profile_sync_factory_,
                 GetSyncableServiceForType(syncer::SEARCH_ENGINES)).
         WillOnce(Return(syncable_service_.AsWeakPtr()));
   }
 
-  void SetStopExpectations() {
-    EXPECT_CALL(*service_.get(),
-                DeactivateDataType(syncer::SEARCH_ENGINES));
-  }
-
   void Start() {
     search_engine_dtc_->LoadModels(
         base::Bind(&ModelLoadCallbackMock::Run,
@@ -114,11 +109,13 @@ TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceNotReady) {
   search_engine_dtc_->LoadModels(
       base::Bind(&ModelLoadCallbackMock::Run,
                  base::Unretained(&model_load_callback_)));
+  EXPECT_TRUE(search_engine_dtc_->GetSubscriptionForTesting());
   EXPECT_EQ(DataTypeController::MODEL_STARTING, search_engine_dtc_->state());
   EXPECT_FALSE(syncable_service_.syncing());
 
   // Send the notification that the TemplateURLService has started.
   PreloadTemplateURLService();
+  EXPECT_EQ(NULL, search_engine_dtc_->GetSubscriptionForTesting());
   EXPECT_EQ(DataTypeController::MODEL_LOADED, search_engine_dtc_->state());
 
   // Wait until WebDB is loaded before we shut it down.
@@ -128,7 +125,6 @@ TEST_F(SyncSearchEngineDataTypeControllerTest, StartURLServiceNotReady) {
 TEST_F(SyncSearchEngineDataTypeControllerTest, StartAssociationFailed) {
   SetStartExpectations();
   PreloadTemplateURLService();
-  SetStopExpectations();
   EXPECT_CALL(start_callback_,
               Run(DataTypeController::ASSOCIATION_FAILED, _, _));
   syncable_service_.set_merge_data_and_start_syncing_error(
@@ -148,7 +144,6 @@ TEST_F(SyncSearchEngineDataTypeControllerTest, StartAssociationFailed) {
 TEST_F(SyncSearchEngineDataTypeControllerTest, Stop) {
   SetStartExpectations();
   PreloadTemplateURLService();
-  SetStopExpectations();
   EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _));
 
   EXPECT_EQ(DataTypeController::NOT_RUNNING, search_engine_dtc_->state());
@@ -161,20 +156,17 @@ TEST_F(SyncSearchEngineDataTypeControllerTest, Stop) {
   EXPECT_FALSE(syncable_service_.syncing());
 }
 
-TEST_F(SyncSearchEngineDataTypeControllerTest,
-       OnSingleDatatypeUnrecoverableError) {
-  SetStartExpectations();
-  PreloadTemplateURLService();
-  EXPECT_CALL(*service_.get(), DisableBrokenDatatype(_, _, _)).
-      WillOnce(InvokeWithoutArgs(search_engine_dtc_.get(),
-                                 &SearchEngineDataTypeController::Stop));
-  SetStopExpectations();
-
-  EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _));
-  Start();
-  // This should cause search_engine_dtc_->Stop() to be called.
-  search_engine_dtc_->OnSingleDatatypeUnrecoverableError(FROM_HERE, "Test");
-  base::RunLoop().RunUntilIdle();
+TEST_F(SyncSearchEngineDataTypeControllerTest, StopBeforeLoaded) {
+  EXPECT_CALL(model_load_callback_, Run(_, _));
+  EXPECT_FALSE(syncable_service_.syncing());
+  search_engine_dtc_->LoadModels(
+      base::Bind(&ModelLoadCallbackMock::Run,
+                 base::Unretained(&model_load_callback_)));
+  EXPECT_TRUE(search_engine_dtc_->GetSubscriptionForTesting());
+  EXPECT_EQ(DataTypeController::MODEL_STARTING, search_engine_dtc_->state());
+  EXPECT_FALSE(syncable_service_.syncing());
+  search_engine_dtc_->Stop();
+  EXPECT_EQ(NULL, search_engine_dtc_->GetSubscriptionForTesting());
   EXPECT_EQ(DataTypeController::NOT_RUNNING, search_engine_dtc_->state());
   EXPECT_FALSE(syncable_service_.syncing());
 }