Upstream version 11.39.250.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / glue / frontend_data_type_controller_unittest.cc
index edd1c6d..90e9a18 100644 (file)
 #include "base/memory/scoped_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/tracked_objects.h"
-#include "chrome/browser/sync/glue/change_processor_mock.h"
-#include "chrome/browser/sync/glue/data_type_controller_mock.h"
 #include "chrome/browser/sync/glue/frontend_data_type_controller.h"
 #include "chrome/browser/sync/glue/frontend_data_type_controller_mock.h"
-#include "chrome/browser/sync/glue/model_associator_mock.h"
 #include "chrome/browser/sync/profile_sync_components_factory_mock.h"
 #include "chrome/browser/sync/profile_sync_service_mock.h"
 #include "chrome/test/base/profile_mock.h"
-#include "content/public/test/test_browser_thread.h"
+#include "components/sync_driver/change_processor_mock.h"
+#include "components/sync_driver/data_type_controller_mock.h"
+#include "components/sync_driver/model_associator_mock.h"
+#include "content/public/test/test_browser_thread_bundle.h"
 
-using browser_sync::ChangeProcessorMock;
-using browser_sync::DataTypeController;
 using browser_sync::FrontendDataTypeController;
 using browser_sync::FrontendDataTypeControllerMock;
-using browser_sync::ModelAssociatorMock;
-using browser_sync::ModelLoadCallbackMock;
-using browser_sync::StartCallbackMock;
-using content::BrowserThread;
+using sync_driver::ChangeProcessorMock;
+using sync_driver::DataTypeController;
+using sync_driver::ModelAssociatorMock;
+using sync_driver::ModelLoadCallbackMock;
+using sync_driver::StartCallbackMock;
 using testing::_;
 using testing::DoAll;
 using testing::InvokeWithoutArgs;
@@ -42,7 +41,9 @@ class FrontendDataTypeControllerFake : public FrontendDataTypeController {
       Profile* profile,
       ProfileSyncService* sync_service,
       FrontendDataTypeControllerMock* mock)
-      : FrontendDataTypeController(profile_sync_factory,
+      : FrontendDataTypeController(base::MessageLoopProxy::current(),
+                                   base::Closure(),
+                                   profile_sync_factory,
                                    profile,
                                    sync_service),
         mock_(mock) {}
@@ -74,7 +75,7 @@ class FrontendDataTypeControllerFake : public FrontendDataTypeController {
     mock_->RecordAssociationTime(time);
   }
   virtual void RecordStartFailure(
-      DataTypeController::StartResult result) OVERRIDE {
+      DataTypeController::ConfigureResult result) OVERRIDE {
     mock_->RecordStartFailure(result);
   }
  private:
@@ -85,7 +86,7 @@ class FrontendDataTypeControllerFake : public FrontendDataTypeController {
 class SyncFrontendDataTypeControllerTest : public testing::Test {
  public:
   SyncFrontendDataTypeControllerTest()
-      : ui_thread_(BrowserThread::UI, &message_loop_),
+      : thread_bundle_(content::TestBrowserThreadBundle::DEFAULT),
         service_(&profile_) {}
 
   virtual void SetUp() {
@@ -119,8 +120,7 @@ class SyncFrontendDataTypeControllerTest : public testing::Test {
     EXPECT_CALL(*dtc_mock_.get(), RecordAssociationTime(_));
   }
 
-  void SetActivateExpectations(DataTypeController::StartResult result) {
-    EXPECT_CALL(service_, ActivateDataType(_, _, _));
+  void SetActivateExpectations(DataTypeController::ConfigureResult result) {
     EXPECT_CALL(start_callback_, Run(result, _, _));
   }
 
@@ -131,7 +131,7 @@ class SyncFrontendDataTypeControllerTest : public testing::Test {
                 WillOnce(Return(syncer::SyncError()));
   }
 
-  void SetStartFailExpectations(DataTypeController::StartResult result) {
+  void SetStartFailExpectations(DataTypeController::ConfigureResult result) {
     if (DataTypeController::IsUnrecoverableResult(result))
       EXPECT_CALL(*dtc_mock_.get(), RecordUnrecoverableError(_, _));
     EXPECT_CALL(*dtc_mock_.get(), CleanUpState());
@@ -148,12 +148,9 @@ class SyncFrontendDataTypeControllerTest : public testing::Test {
                    base::Unretained(&start_callback_)));
   }
 
-  void PumpLoop() {
-    message_loop_.RunUntilIdle();
-  }
+  void PumpLoop() { base::MessageLoop::current()->RunUntilIdle(); }
 
-  base::MessageLoopForUI message_loop_;
-  content::TestBrowserThread ui_thread_;
+  content::TestBrowserThreadBundle thread_bundle_;
   scoped_refptr<FrontendDataTypeControllerFake> frontend_dtc_;
   scoped_ptr<ProfileSyncComponentsFactoryMock> profile_sync_factory_;
   scoped_refptr<FrontendDataTypeControllerMock> dtc_mock_;
@@ -192,7 +189,6 @@ TEST_F(SyncFrontendDataTypeControllerTest, StartFirstRun) {
 TEST_F(SyncFrontendDataTypeControllerTest, AbortDuringStartModels) {
   EXPECT_CALL(*dtc_mock_.get(), StartModels()).WillOnce(Return(false));
   EXPECT_CALL(*dtc_mock_.get(), CleanUpState());
-  EXPECT_CALL(model_load_callback_, Run(_, _));
   EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
   frontend_dtc_->LoadModels(
       base::Bind(&ModelLoadCallbackMock::Run,
@@ -258,21 +254,3 @@ TEST_F(SyncFrontendDataTypeControllerTest, Stop) {
   frontend_dtc_->Stop();
   EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
 }
-
-TEST_F(SyncFrontendDataTypeControllerTest, OnSingleDatatypeUnrecoverableError) {
-  SetStartExpectations();
-  SetAssociateExpectations();
-  SetActivateExpectations(DataTypeController::OK);
-  EXPECT_CALL(*dtc_mock_.get(), RecordUnrecoverableError(_, "Test"));
-  EXPECT_CALL(service_, DisableBrokenDatatype(_, _, _))
-      .WillOnce(InvokeWithoutArgs(frontend_dtc_.get(),
-                                  &FrontendDataTypeController::Stop));
-  SetStopExpectations();
-  EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
-  Start();
-  EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state());
-  // This should cause frontend_dtc_->Stop() to be called.
-  frontend_dtc_->OnSingleDatatypeUnrecoverableError(FROM_HERE, "Test");
-  PumpLoop();
-  EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state());
-}