This source file includes following definitions.
- ACTION
 
#ifndef CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
#define CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_
#include <string>
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/sync/glue/data_type_manager_impl.h"
#include "chrome/browser/sync/glue/sync_backend_host_impl.h"
#include "chrome/browser/sync/profile_sync_service.h"
#include "components/signin/core/browser/profile_oauth2_token_service.h"
#include "components/sync_driver/sync_prefs.h"
#include "sync/test/engine/test_id_factory.h"
#include "testing/gmock/include/gmock/gmock.h"
class Profile;
class ProfileOAuth2TokenService;
class ProfileSyncComponentsFactory;
class ProfileSyncComponentsFactoryMock;
ACTION(ReturnNewDataTypeManager) {
  return new browser_sync::DataTypeManagerImpl(arg0,
                                               arg1,
                                               arg2,
                                               arg3,
                                               arg4,
                                               arg5);
}
namespace browser_sync {
class SyncBackendHostForProfileSyncTest : public SyncBackendHostImpl {
 public:
  SyncBackendHostForProfileSyncTest(
      Profile* profile,
      const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs,
      base::Closure callback);
  virtual ~SyncBackendHostForProfileSyncTest();
  virtual void RequestConfigureSyncer(
      syncer::ConfigureReason reason,
      syncer::ModelTypeSet to_download,
      syncer::ModelTypeSet to_purge,
      syncer::ModelTypeSet to_journal,
      syncer::ModelTypeSet to_unapply,
      syncer::ModelTypeSet to_ignore,
      const syncer::ModelSafeRoutingInfo& routing_info,
      const base::Callback<void(syncer::ModelTypeSet,
                                syncer::ModelTypeSet)>& ready_task,
      const base::Closure& retry_callback) OVERRIDE;
 protected:
  virtual void InitCore(scoped_ptr<DoInitializeOptions> options) OVERRIDE;
 private:
  
  
  
  base::Closure callback_;
};
}  
class TestProfileSyncService : public ProfileSyncService {
 public:
  
  
  TestProfileSyncService(
      ProfileSyncComponentsFactory* factory,
      Profile* profile,
      SigninManagerBase* signin,
      ProfileOAuth2TokenService* oauth2_token_service,
      browser_sync::ProfileSyncServiceStartBehavior behavior);
  virtual ~TestProfileSyncService();
  virtual void OnConfigureDone(
      const browser_sync::DataTypeManager::ConfigureResult& result) OVERRIDE;
  
  virtual syncer::UserShare* GetUserShare() const OVERRIDE;
  static TestProfileSyncService* BuildAutoStartAsyncInit(
      Profile* profile, base::Closure callback);
  ProfileSyncComponentsFactoryMock* components_factory_mock();
  syncer::TestIdFactory* id_factory();
 protected:
  static KeyedService* TestFactoryFunction(content::BrowserContext* profile);
  
  
  
  virtual syncer::WeakHandle<syncer::JsEventHandler> GetJsEventHandler()
      OVERRIDE;
 private:
  syncer::TestIdFactory id_factory_;
};
#endif