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

Side by Side Diff: sync/engine/sync_session_job_unittest.cc

Issue 12320027: Remove SyncSessionJob's location member (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 9 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 | « sync/engine/sync_session_job.cc ('k') | no next file » | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "sync/engine/sync_session_job.h" 5 #include "sync/engine/sync_session_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "sync/internal_api/public/base/model_type_invalidation_map.h" 10 #include "sync/internal_api/public/base/model_type_invalidation_map.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 private: 102 private:
103 scoped_ptr<sessions::SyncSessionContext> context_; 103 scoped_ptr<sessions::SyncSessionContext> context_;
104 std::vector<scoped_refptr<ModelSafeWorker> > workers_; 104 std::vector<scoped_refptr<ModelSafeWorker> > workers_;
105 MockDelegate delegate_; 105 MockDelegate delegate_;
106 ModelSafeRoutingInfo routes_; 106 ModelSafeRoutingInfo routes_;
107 bool config_params_callback_invoked_; 107 bool config_params_callback_invoked_;
108 }; 108 };
109 109
110 TEST_F(SyncSessionJobTest, Clone) { 110 TEST_F(SyncSessionJobTest, Clone) {
111 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), 111 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(),
112 NewLocalSession().Pass(), ConfigurationParams(), FROM_HERE); 112 NewLocalSession().Pass(), ConfigurationParams());
113 113
114 sessions::test_util::SimulateSuccess(job1.mutable_session(), 114 sessions::test_util::SimulateSuccess(job1.mutable_session(),
115 job1.start_step(), 115 job1.start_step(),
116 job1.end_step()); 116 job1.end_step());
117 job1.Finish(false); 117 job1.Finish(false);
118 ModelSafeRoutingInfo new_routes; 118 ModelSafeRoutingInfo new_routes;
119 new_routes[AUTOFILL] = GROUP_PASSIVE; 119 new_routes[AUTOFILL] = GROUP_PASSIVE;
120 context()->set_routing_info(new_routes); 120 context()->set_routing_info(new_routes);
121 const tracked_objects::Location from_here1(FROM_HERE);
122 scoped_ptr<SyncSessionJob> clone1 = job1.Clone(); 121 scoped_ptr<SyncSessionJob> clone1 = job1.Clone();
123 scoped_ptr<SyncSessionJob> clone1_loc = job1.CloneFromLocation(from_here1);
124 122
125 ExpectClonesBase(&job1, clone1.get()); 123 ExpectClonesBase(&job1, clone1.get());
126 ExpectClonesBase(&job1, clone1_loc.get());
127 EXPECT_NE(job1.session(), clone1->session()); 124 EXPECT_NE(job1.session(), clone1->session());
128 EXPECT_EQ(job1.from_location().ToString(),
129 clone1->from_location().ToString());
130 EXPECT_NE(job1.session(), clone1_loc->session());
131 EXPECT_EQ(from_here1.ToString(), clone1_loc->from_location().ToString());
132 125
133 context()->set_routing_info(routes()); 126 context()->set_routing_info(routes());
134 clone1->GrantCanaryPrivilege(); 127 clone1->GrantCanaryPrivilege();
135 sessions::test_util::SimulateSuccess(clone1->mutable_session(), 128 sessions::test_util::SimulateSuccess(clone1->mutable_session(),
136 clone1->start_step(), 129 clone1->start_step(),
137 clone1->end_step()); 130 clone1->end_step());
138 clone1->Finish(false); 131 clone1->Finish(false);
139 const tracked_objects::Location from_here2(FROM_HERE);
140 scoped_ptr<SyncSessionJob> clone2 = clone1->Clone(); 132 scoped_ptr<SyncSessionJob> clone2 = clone1->Clone();
141 scoped_ptr<SyncSessionJob> clone2_loc(clone1->CloneFromLocation(from_here2));
142 133
143 ExpectClonesBase(clone1.get(), clone2.get()); 134 ExpectClonesBase(clone1.get(), clone2.get());
144 ExpectClonesBase(clone1.get(), clone2_loc.get());
145 EXPECT_NE(clone1->session(), clone2->session()); 135 EXPECT_NE(clone1->session(), clone2->session());
146 EXPECT_EQ(clone1->from_location().ToString(),
147 clone2->from_location().ToString());
148 EXPECT_NE(clone1->session(), clone2->session()); 136 EXPECT_NE(clone1->session(), clone2->session());
149 EXPECT_EQ(from_here2.ToString(), clone2_loc->from_location().ToString());
150 137
151 clone1.reset(); 138 clone1.reset();
152 clone1_loc.reset();
153 ExpectClonesBase(&job1, clone2.get()); 139 ExpectClonesBase(&job1, clone2.get());
154 EXPECT_NE(job1.session(), clone2->session()); 140 EXPECT_NE(job1.session(), clone2->session());
155 EXPECT_EQ(job1.from_location().ToString(),
156 clone2->from_location().ToString());
157 } 141 }
158 142
159 TEST_F(SyncSessionJobTest, CloneAfterEarlyExit) { 143 TEST_F(SyncSessionJobTest, CloneAfterEarlyExit) {
160 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), 144 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(),
161 NewLocalSession().Pass(), ConfigurationParams(), FROM_HERE); 145 NewLocalSession().Pass(), ConfigurationParams());
162 job1.Finish(true); 146 job1.Finish(true);
163 scoped_ptr<SyncSessionJob> job2 = job1.Clone(); 147 scoped_ptr<SyncSessionJob> job2 = job1.Clone();
164 scoped_ptr<SyncSessionJob> job2_loc = job1.CloneFromLocation(FROM_HERE);
165 ExpectClonesBase(&job1, job2.get()); 148 ExpectClonesBase(&job1, job2.get());
166 ExpectClonesBase(&job1, job2_loc.get());
167 } 149 }
168 150
169 TEST_F(SyncSessionJobTest, CloneAndAbandon) { 151 TEST_F(SyncSessionJobTest, CloneAndAbandon) {
170 scoped_ptr<SyncSession> session = NewLocalSession(); 152 scoped_ptr<SyncSession> session = NewLocalSession();
171 SyncSession* session_ptr = session.get(); 153 SyncSession* session_ptr = session.get();
172 154
173 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), 155 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(),
174 session.Pass(), ConfigurationParams(), FROM_HERE); 156 session.Pass(), ConfigurationParams());
175 ModelSafeRoutingInfo new_routes; 157 ModelSafeRoutingInfo new_routes;
176 new_routes[AUTOFILL] = GROUP_PASSIVE; 158 new_routes[AUTOFILL] = GROUP_PASSIVE;
177 context()->set_routing_info(new_routes); 159 context()->set_routing_info(new_routes);
178 160
179 scoped_ptr<SyncSessionJob> clone1 = job1.CloneAndAbandon(); 161 scoped_ptr<SyncSessionJob> clone1 = job1.CloneAndAbandon();
180 ExpectClonesBase(&job1, clone1.get()); 162 ExpectClonesBase(&job1, clone1.get());
181 EXPECT_FALSE(job1.session()); 163 EXPECT_FALSE(job1.session());
182 EXPECT_EQ(session_ptr, clone1->session()); 164 EXPECT_EQ(session_ptr, clone1->session());
183 } 165 }
184 166
185 // Tests interaction between Finish and sync cycle success / failure. 167 // Tests interaction between Finish and sync cycle success / failure.
186 TEST_F(SyncSessionJobTest, Finish) { 168 TEST_F(SyncSessionJobTest, Finish) {
187 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), 169 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(),
188 NewLocalSession().Pass(), ConfigurationParams(), FROM_HERE); 170 NewLocalSession().Pass(), ConfigurationParams());
189 171
190 sessions::test_util::SimulateSuccess(job1.mutable_session(), 172 sessions::test_util::SimulateSuccess(job1.mutable_session(),
191 job1.start_step(), 173 job1.start_step(),
192 job1.end_step()); 174 job1.end_step());
193 EXPECT_TRUE(job1.Finish(false /* early_exit */)); 175 EXPECT_TRUE(job1.Finish(false /* early_exit */));
194 176
195 scoped_ptr<SyncSessionJob> job2 = job1.Clone(); 177 scoped_ptr<SyncSessionJob> job2 = job1.Clone();
196 sessions::test_util::SimulateConnectionFailure(job2->mutable_session(), 178 sessions::test_util::SimulateConnectionFailure(job2->mutable_session(),
197 job2->start_step(), 179 job2->start_step(),
198 job2->end_step()); 180 job2->end_step());
199 EXPECT_FALSE(job2->Finish(false)); 181 EXPECT_FALSE(job2->Finish(false));
200 182
201 scoped_ptr<SyncSessionJob> job3 = job2->Clone(); 183 scoped_ptr<SyncSessionJob> job3 = job2->Clone();
202 EXPECT_FALSE(job3->Finish(true)); 184 EXPECT_FALSE(job3->Finish(true));
203 } 185 }
204 186
205 TEST_F(SyncSessionJobTest, FinishCallsReadyTask) { 187 TEST_F(SyncSessionJobTest, FinishCallsReadyTask) {
206 ConfigurationParams params; 188 ConfigurationParams params;
207 params.ready_task = base::Bind( 189 params.ready_task = base::Bind(
208 &SyncSessionJobTest::ConfigurationParamsCallback, 190 &SyncSessionJobTest::ConfigurationParamsCallback,
209 base::Unretained(this)); 191 base::Unretained(this));
210 192
211 sessions::SyncSourceInfo info( 193 sessions::SyncSourceInfo info(
212 sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, 194 sync_pb::GetUpdatesCallerInfo::RECONFIGURATION,
213 ModelTypeInvalidationMap()); 195 ModelTypeInvalidationMap());
214 scoped_ptr<SyncSession> session( 196 scoped_ptr<SyncSession> session(
215 new SyncSession(context(), delegate(), info)); 197 new SyncSession(context(), delegate(), info));
216 198
217 SyncSessionJob job1(SyncSessionJob::CONFIGURATION, TimeTicks::Now(), 199 SyncSessionJob job1(SyncSessionJob::CONFIGURATION, TimeTicks::Now(),
218 session.Pass(), params, FROM_HERE); 200 session.Pass(), params);
219 sessions::test_util::SimulateSuccess(job1.mutable_session(), 201 sessions::test_util::SimulateSuccess(job1.mutable_session(),
220 job1.start_step(), 202 job1.start_step(),
221 job1.end_step()); 203 job1.end_step());
222 job1.Finish(false); 204 job1.Finish(false);
223 EXPECT_TRUE(config_params_callback_invoked()); 205 EXPECT_TRUE(config_params_callback_invoked());
224 } 206 }
225 207
226 } // namespace syncer 208 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/engine/sync_session_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698