• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_
6 #define CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_
7 #pragma once
8 
9 #include <string>
10 
11 #include "base/memory/scoped_ptr.h"
12 #include "base/message_loop.h"
13 #include "base/task.h"
14 #include "chrome/browser/net/gaia/token_service.h"
15 #include "chrome/browser/sync/profile_sync_factory_mock.h"
16 #include "chrome/browser/sync/syncable/model_type.h"
17 #include "content/browser/browser_thread.h"
18 #include "testing/gtest/include/gtest/gtest.h"
19 
20 class ProfileSyncService;
21 class TestProfileSyncService;
22 
23 namespace browser_sync {
24 class TestIdFactory;
25 }  // namespace browser_sync
26 
27 namespace sync_api {
28 struct UserShare;
29 }  //  namespace sync_api
30 
31 class ProfileSyncServiceTestHelper {
32  public:
33   static const std::string GetTagForType(syncable::ModelType model_type);
34 
35   static bool CreateRoot(syncable::ModelType model_type,
36                          sync_api::UserShare* service,
37                          browser_sync::TestIdFactory* ids);
38 };
39 
40 class AbstractProfileSyncServiceTest : public testing::Test {
41  public:
42   AbstractProfileSyncServiceTest();
43   virtual ~AbstractProfileSyncServiceTest();
44 
45   bool CreateRoot(syncable::ModelType model_type);
46 
47  protected:
48   MessageLoopForUI message_loop_;
49   BrowserThread ui_thread_;
50   ProfileSyncFactoryMock factory_;
51   TokenService token_service_;
52   scoped_ptr<TestProfileSyncService> service_;
53 };
54 
55 class CreateRootTask : public Task {
56  public:
57   CreateRootTask(AbstractProfileSyncServiceTest* test,
58                  syncable::ModelType model_type);
59 
60   virtual ~CreateRootTask();
61   virtual void Run();
62 
63   bool success();
64 
65  private:
66   AbstractProfileSyncServiceTest* test_;
67   syncable::ModelType model_type_;
68   bool success_;
69 };
70 
71 #endif  // CHROME_BROWSER_SYNC_ABSTRACT_PROFILE_SYNC_SERVICE_TEST_H_
72