Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: chrome/test/sync/engine/syncer_command_test.h

Issue 2865022: sync: add CleanupDisabledTypesCommand to purge data pertaining to previously... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/test/sync/engine/test_directory_setter_upper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_ 5 #ifndef CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_
6 #define CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_ 6 #define CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "chrome/browser/sync/engine/model_safe_worker.h" 10 #include "chrome/browser/sync/engine/model_safe_worker.h"
11 #include "chrome/browser/sync/sessions/sync_session.h" 11 #include "chrome/browser/sync/sessions/sync_session.h"
12 #include "chrome/browser/sync/sessions/sync_session_context.h" 12 #include "chrome/browser/sync/sessions/sync_session_context.h"
13 #include "chrome/test/sync/engine/mock_connection_manager.h" 13 #include "chrome/test/sync/engine/mock_connection_manager.h"
14 #include "chrome/test/sync/engine/test_directory_setter_upper.h" 14 #include "chrome/test/sync/engine/test_directory_setter_upper.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace browser_sync { 17 namespace browser_sync {
18 18
19 // A test fixture that simplifies writing unit tests for individual 19 // A test fixture that simplifies writing unit tests for individual
20 // SyncerCommands, providing convenient access to a test directory 20 // SyncerCommands, providing convenient access to a test directory
21 // and a syncer session. 21 // and a syncer session.
22 template<typename T> 22 template<typename T>
23 class SyncerCommandTestWithParam : public testing::TestWithParam<T>, 23 class SyncerCommandTestWithParam : public testing::TestWithParam<T>,
24 public sessions::SyncSession::Delegate, 24 public sessions::SyncSession::Delegate,
25 public ModelSafeWorkerRegistrar { 25 public ModelSafeWorkerRegistrar {
26 public: 26 public:
27 enum UseMockDirectory {
28 USE_MOCK_DIRECTORY
29 };
30
27 // SyncSession::Delegate implementation. 31 // SyncSession::Delegate implementation.
28 virtual void OnSilencedUntil(const base::TimeTicks& silenced_until) { 32 virtual void OnSilencedUntil(const base::TimeTicks& silenced_until) {
29 FAIL() << "Should not get silenced."; 33 FAIL() << "Should not get silenced.";
30 } 34 }
31 virtual bool IsSyncingCurrentlySilenced() { 35 virtual bool IsSyncingCurrentlySilenced() {
32 ADD_FAILURE() << "No requests for silenced state should be made."; 36 ADD_FAILURE() << "No requests for silenced state should be made.";
33 return false; 37 return false;
34 } 38 }
35 virtual void OnReceivedLongPollIntervalUpdate( 39 virtual void OnReceivedLongPollIntervalUpdate(
36 const base::TimeDelta& new_interval) { 40 const base::TimeDelta& new_interval) {
37 FAIL() << "Should not get poll interval update."; 41 FAIL() << "Should not get poll interval update.";
38 } 42 }
39 virtual void OnReceivedShortPollIntervalUpdate( 43 virtual void OnReceivedShortPollIntervalUpdate(
40 const base::TimeDelta& new_interval) { 44 const base::TimeDelta& new_interval) {
41 FAIL() << "Should not get poll interval update."; 45 FAIL() << "Should not get poll interval update.";
42 } 46 }
43 47
44 // ModelSafeWorkerRegistrar implementation. 48 // ModelSafeWorkerRegistrar implementation.
45 virtual void GetWorkers(std::vector<ModelSafeWorker*>* out) { 49 virtual void GetWorkers(std::vector<ModelSafeWorker*>* out) {
46 std::vector<scoped_refptr<ModelSafeWorker> >::iterator it; 50 std::vector<scoped_refptr<ModelSafeWorker> >::iterator it;
47 for (it = workers_.begin(); it != workers_.end(); ++it) 51 for (it = workers_.begin(); it != workers_.end(); ++it)
48 out->push_back(*it); 52 out->push_back(*it);
49 } 53 }
50 virtual void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) { 54 virtual void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) {
51 ModelSafeRoutingInfo copy(routing_info_); 55 ModelSafeRoutingInfo copy(routing_info_);
52 out->swap(copy); 56 out->swap(copy);
53 } 57 }
54 58
55 protected: 59 protected:
56 SyncerCommandTestWithParam() {} 60 SyncerCommandTestWithParam() : syncdb_(new TestDirectorySetterUpper()) {}
61
62 explicit SyncerCommandTestWithParam(UseMockDirectory use_mock)
63 : syncdb_(new MockDirectorySetterUpper()) {}
64
57 virtual ~SyncerCommandTestWithParam() {} 65 virtual ~SyncerCommandTestWithParam() {}
58 virtual void SetUp() { 66 virtual void SetUp() {
59 syncdb_.SetUp(); 67 syncdb_->SetUp();
60 ResetContext(); 68 ResetContext();
61 } 69 }
62 virtual void TearDown() { 70 virtual void TearDown() {
63 syncdb_.TearDown(); 71 syncdb_->TearDown();
64 } 72 }
65 73
66 const TestDirectorySetterUpper& syncdb() const { return syncdb_; } 74 TestDirectorySetterUpper* syncdb() { return syncdb_.get(); }
67 sessions::SyncSessionContext* context() const { return context_.get(); } 75 sessions::SyncSessionContext* context() const { return context_.get(); }
68 sessions::SyncSession::Delegate* delegate() { return this; } 76 sessions::SyncSession::Delegate* delegate() { return this; }
69 ModelSafeWorkerRegistrar* registrar() { return this; } 77 ModelSafeWorkerRegistrar* registrar() { return this; }
70 // Lazily create a session. 78 // Lazily create a session.
71 sessions::SyncSession* session() { 79 sessions::SyncSession* session() {
72 if (!session_.get()) 80 if (!session_.get())
73 session_.reset(new sessions::SyncSession(context(), delegate())); 81 session_.reset(new sessions::SyncSession(context(), delegate()));
74 return session_.get(); 82 return session_.get();
75 } 83 }
76 void ClearSession() { 84 void ClearSession() {
77 session_.reset(); 85 session_.reset();
78 } 86 }
79 87
80 void ResetContext() { 88 void ResetContext() {
81 context_.reset(new sessions::SyncSessionContext( 89 context_.reset(new sessions::SyncSessionContext(
82 mock_server_.get(), NULL, syncdb_.manager(), registrar())); 90 mock_server_.get(), NULL, syncdb_->manager(), registrar()));
83 context_->set_account_name(syncdb_.name()); 91 context_->set_account_name(syncdb_->name());
84 ClearSession(); 92 ClearSession();
85 } 93 }
86 94
87 // Install a MockServerConnection. Resets the context. By default, 95 // Install a MockServerConnection. Resets the context. By default,
88 // the context does not have a MockServerConnection attached. 96 // the context does not have a MockServerConnection attached.
89 void ConfigureMockServerConnection() { 97 void ConfigureMockServerConnection() {
90 mock_server_.reset( 98 mock_server_.reset(
91 new MockConnectionManager(syncdb_.manager(), syncdb_.name())); 99 new MockConnectionManager(syncdb_->manager(), syncdb_->name()));
92 ResetContext(); 100 ResetContext();
93 } 101 }
94 102
95 std::vector<scoped_refptr<ModelSafeWorker> >* workers() { 103 std::vector<scoped_refptr<ModelSafeWorker> >* workers() {
96 return &workers_; 104 return &workers_;
97 } 105 }
98 106
99 const ModelSafeRoutingInfo& routing_info() { return routing_info_; } 107 const ModelSafeRoutingInfo& routing_info() { return routing_info_; }
100 ModelSafeRoutingInfo* mutable_routing_info() { return &routing_info_; } 108 ModelSafeRoutingInfo* mutable_routing_info() { return &routing_info_; }
101 109
102 MockConnectionManager* mock_server() { 110 MockConnectionManager* mock_server() {
103 return mock_server_.get(); 111 return mock_server_.get();
104 } 112 }
105 113
106 private: 114 private:
107 TestDirectorySetterUpper syncdb_; 115 scoped_ptr<TestDirectorySetterUpper> syncdb_;
108 scoped_ptr<sessions::SyncSessionContext> context_; 116 scoped_ptr<sessions::SyncSessionContext> context_;
109 scoped_ptr<MockConnectionManager> mock_server_; 117 scoped_ptr<MockConnectionManager> mock_server_;
110 scoped_ptr<sessions::SyncSession> session_; 118 scoped_ptr<sessions::SyncSession> session_;
111 std::vector<scoped_refptr<ModelSafeWorker> > workers_; 119 std::vector<scoped_refptr<ModelSafeWorker> > workers_;
112 ModelSafeRoutingInfo routing_info_; 120 ModelSafeRoutingInfo routing_info_;
113 DISALLOW_COPY_AND_ASSIGN(SyncerCommandTestWithParam); 121 DISALLOW_COPY_AND_ASSIGN(SyncerCommandTestWithParam);
114 }; 122 };
115 123
116 class SyncerCommandTest : public SyncerCommandTestWithParam<void*> {}; 124 class SyncerCommandTest : public SyncerCommandTestWithParam<void*> {};
117 125
126 class MockDirectorySyncerCommandTest
127 : public SyncerCommandTestWithParam<void*> {
128 public:
129 MockDirectorySyncerCommandTest()
130 : SyncerCommandTestWithParam<void*>(
131 SyncerCommandTestWithParam<void*>::USE_MOCK_DIRECTORY) {}
132 MockDirectorySetterUpper::MockDirectory* mock_directory() {
133 return static_cast<MockDirectorySetterUpper*>(syncdb())->directory();
134 }
135 };
136
118 } // namespace browser_sync 137 } // namespace browser_sync
119 138
120 #endif // CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_ 139 #endif // CHROME_TEST_SYNC_ENGINE_SYNCER_COMMAND_TEST_H_
OLDNEW
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/test/sync/engine/test_directory_setter_upper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698