// Copyright (c) 2011 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. #ifndef CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_ #define CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_ #pragma once #include <string> #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" #include "base/task.h" #include "chrome/browser/net/gaia/token_service.h" #include "chrome/browser/sync/profile_sync_factory_mock.h" #include "chrome/browser/sync/syncable/model_type.h" #include "content/browser/browser_thread.h" #include "testing/gtest/include/gtest/gtest.h" class ProfileSyncService; class TestProfileSyncService; namespace browser_sync { class TestIdFactory; } // namespace browser_sync namespace sync_api { struct UserShare; } // namespace sync_api class ProfileSyncServiceTestHelper { public: static const std::string GetTagForType(syncable::ModelType model_type); static bool CreateRoot(syncable::ModelType model_type, sync_api::UserShare* service, browser_sync::TestIdFactory* ids); }; class AbstractProfileSyncServiceTest : public testing::Test { public: AbstractProfileSyncServiceTest(); virtual ~AbstractProfileSyncServiceTest(); bool CreateRoot(syncable::ModelType model_type); protected: MessageLoopForUI message_loop_; BrowserThread ui_thread_; ProfileSyncFactoryMock factory_; TokenService token_service_; scoped_ptr<TestProfileSyncService> service_; }; class CreateRootTask : public Task { public: CreateRootTask(AbstractProfileSyncServiceTest* test, syncable::ModelType model_type); virtual ~CreateRootTask(); virtual void Run(); bool success(); private: AbstractProfileSyncServiceTest* test_; syncable::ModelType model_type_; bool success_; }; #endif // CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_