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

Side by Side Diff: sync/internal_api/attachments/attachment_service_impl_unittest.cc

Issue 996473005: Revert of [Sync] Refactor AttachmentStore classes. Introduce concept of referrer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/internal_api/public/attachments/attachment_service_impl.h" 5 #include "sync/internal_api/public/attachments/attachment_service_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "base/thread_task_runner_handle.h"
12 #include "base/timer/mock_timer.h" 11 #include "base/timer/mock_timer.h"
13 #include "sync/api/attachments/attachment_store_backend.h"
14 #include "sync/internal_api/public/attachments/attachment_util.h" 12 #include "sync/internal_api/public/attachments/attachment_util.h"
15 #include "sync/internal_api/public/attachments/fake_attachment_downloader.h" 13 #include "sync/internal_api/public/attachments/fake_attachment_downloader.h"
16 #include "sync/internal_api/public/attachments/fake_attachment_uploader.h" 14 #include "sync/internal_api/public/attachments/fake_attachment_uploader.h"
17 #include "testing/gmock/include/gmock/gmock-matchers.h" 15 #include "testing/gmock/include/gmock/gmock-matchers.h"
18 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
19 17
20 namespace syncer { 18 namespace syncer {
21 19
22 namespace { 20 namespace {
23 21
24 class MockAttachmentStoreBackend 22 class MockAttachmentStore : public AttachmentStore,
25 : public AttachmentStoreBackend, 23 public base::SupportsWeakPtr<MockAttachmentStore> {
26 public base::SupportsWeakPtr<MockAttachmentStoreBackend> {
27 public: 24 public:
28 MockAttachmentStoreBackend( 25 MockAttachmentStore() {}
29 const scoped_refptr<base::SequencedTaskRunner>& callback_task_runner)
30 : AttachmentStoreBackend(callback_task_runner) {}
31 26
32 ~MockAttachmentStoreBackend() override {} 27 void Init(const InitCallback& callback) override {
33 28 }
34 void Init(const AttachmentStore::InitCallback& callback) override {}
35 29
36 void Read(const AttachmentIdList& ids, 30 void Read(const AttachmentIdList& ids,
37 const AttachmentStore::ReadCallback& callback) override { 31 const ReadCallback& callback) override {
38 read_ids.push_back(ids); 32 read_ids.push_back(ids);
39 read_callbacks.push_back(callback); 33 read_callbacks.push_back(callback);
40 } 34 }
41 35
42 void Write(AttachmentStore::AttachmentReferrer referrer, 36 void Write(const AttachmentList& attachments,
43 const AttachmentList& attachments, 37 const WriteCallback& callback) override {
44 const AttachmentStore::WriteCallback& callback) override {
45 write_attachments.push_back(attachments); 38 write_attachments.push_back(attachments);
46 write_callbacks.push_back(callback); 39 write_callbacks.push_back(callback);
47 } 40 }
48 41
49 void Drop(AttachmentStore::AttachmentReferrer referrer, 42 void Drop(const AttachmentIdList& ids,
50 const AttachmentIdList& ids, 43 const DropCallback& callback) override {
51 const AttachmentStore::DropCallback& callback) override {
52 NOTREACHED(); 44 NOTREACHED();
53 } 45 }
54 46
55 void ReadMetadata( 47 void ReadMetadata(const AttachmentIdList& ids,
56 const AttachmentIdList& ids, 48 const ReadMetadataCallback& callback) override {
57 const AttachmentStore::ReadMetadataCallback& callback) override {
58 NOTREACHED(); 49 NOTREACHED();
59 } 50 }
60 51
61 void ReadAllMetadata( 52 void ReadAllMetadata(const ReadMetadataCallback& callback) override {
62 AttachmentStore::AttachmentReferrer referrer,
63 const AttachmentStore::ReadMetadataCallback& callback) override {
64 NOTREACHED(); 53 NOTREACHED();
65 } 54 }
66 55
67 // Respond to Read request. Attachments found in local_attachments should be 56 // Respond to Read request. Attachments found in local_attachments should be
68 // returned, everything else should be reported unavailable. 57 // returned, everything else should be reported unavailable.
69 void RespondToRead(const AttachmentIdSet& local_attachments) { 58 void RespondToRead(const AttachmentIdSet& local_attachments) {
70 scoped_refptr<base::RefCountedString> data = new base::RefCountedString(); 59 scoped_refptr<base::RefCountedString> data = new base::RefCountedString();
71 AttachmentStore::ReadCallback callback = read_callbacks.back(); 60 ReadCallback callback = read_callbacks.back();
72 AttachmentIdList ids = read_ids.back(); 61 AttachmentIdList ids = read_ids.back();
73 read_callbacks.pop_back(); 62 read_callbacks.pop_back();
74 read_ids.pop_back(); 63 read_ids.pop_back();
75 64
76 scoped_ptr<AttachmentMap> attachments(new AttachmentMap()); 65 scoped_ptr<AttachmentMap> attachments(new AttachmentMap());
77 scoped_ptr<AttachmentIdList> unavailable_attachments( 66 scoped_ptr<AttachmentIdList> unavailable_attachments(
78 new AttachmentIdList()); 67 new AttachmentIdList());
79 for (AttachmentIdList::const_iterator iter = ids.begin(); iter != ids.end(); 68 for (AttachmentIdList::const_iterator iter = ids.begin(); iter != ids.end();
80 ++iter) { 69 ++iter) {
81 if (local_attachments.find(*iter) != local_attachments.end()) { 70 if (local_attachments.find(*iter) != local_attachments.end()) {
82 uint32_t crc32c = ComputeCrc32c(data); 71 uint32_t crc32c = ComputeCrc32c(data);
83 Attachment attachment = 72 Attachment attachment =
84 Attachment::CreateFromParts(*iter, data, crc32c); 73 Attachment::CreateFromParts(*iter, data, crc32c);
85 attachments->insert(std::make_pair(*iter, attachment)); 74 attachments->insert(std::make_pair(*iter, attachment));
86 } else { 75 } else {
87 unavailable_attachments->push_back(*iter); 76 unavailable_attachments->push_back(*iter);
88 } 77 }
89 } 78 }
90 AttachmentStore::Result result = unavailable_attachments->empty() 79 Result result =
91 ? AttachmentStore::SUCCESS 80 unavailable_attachments->empty() ? SUCCESS : UNSPECIFIED_ERROR;
92 : AttachmentStore::UNSPECIFIED_ERROR;
93 81
94 base::MessageLoop::current()->PostTask( 82 base::MessageLoop::current()->PostTask(
95 FROM_HERE, 83 FROM_HERE,
96 base::Bind(callback, 84 base::Bind(callback,
97 result, 85 result,
98 base::Passed(&attachments), 86 base::Passed(&attachments),
99 base::Passed(&unavailable_attachments))); 87 base::Passed(&unavailable_attachments)));
100 } 88 }
101 89
102 // Respond to Write request with |result|. 90 // Respond to Write request with |result|.
103 void RespondToWrite(const AttachmentStore::Result& result) { 91 void RespondToWrite(const Result& result) {
104 AttachmentStore::WriteCallback callback = write_callbacks.back(); 92 WriteCallback callback = write_callbacks.back();
105 AttachmentList attachments = write_attachments.back(); 93 AttachmentList attachments = write_attachments.back();
106 write_callbacks.pop_back(); 94 write_callbacks.pop_back();
107 write_attachments.pop_back(); 95 write_attachments.pop_back();
108 base::MessageLoop::current()->PostTask(FROM_HERE, 96 base::MessageLoop::current()->PostTask(FROM_HERE,
109 base::Bind(callback, result)); 97 base::Bind(callback, result));
110 } 98 }
111 99
112 std::vector<AttachmentIdList> read_ids; 100 std::vector<AttachmentIdList> read_ids;
113 std::vector<AttachmentStore::ReadCallback> read_callbacks; 101 std::vector<ReadCallback> read_callbacks;
114 std::vector<AttachmentList> write_attachments; 102 std::vector<AttachmentList> write_attachments;
115 std::vector<AttachmentStore::WriteCallback> write_callbacks; 103 std::vector<WriteCallback> write_callbacks;
116 104
117 private: 105 private:
118 DISALLOW_COPY_AND_ASSIGN(MockAttachmentStoreBackend); 106 ~MockAttachmentStore() override {}
107
108 DISALLOW_COPY_AND_ASSIGN(MockAttachmentStore);
119 }; 109 };
120 110
121 class MockAttachmentDownloader 111 class MockAttachmentDownloader
122 : public AttachmentDownloader, 112 : public AttachmentDownloader,
123 public base::SupportsWeakPtr<MockAttachmentDownloader> { 113 public base::SupportsWeakPtr<MockAttachmentDownloader> {
124 public: 114 public:
125 MockAttachmentDownloader() {} 115 MockAttachmentDownloader() {}
126 116
127 void DownloadAttachment(const AttachmentId& id, 117 void DownloadAttachment(const AttachmentId& id,
128 const DownloadCallback& callback) override { 118 const DownloadCallback& callback) override {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 178
189 void SetUp() override { 179 void SetUp() override {
190 network_change_notifier_.reset(net::NetworkChangeNotifier::CreateMock()); 180 network_change_notifier_.reset(net::NetworkChangeNotifier::CreateMock());
191 InitializeAttachmentService(make_scoped_ptr(new MockAttachmentUploader()), 181 InitializeAttachmentService(make_scoped_ptr(new MockAttachmentUploader()),
192 make_scoped_ptr(new MockAttachmentDownloader()), 182 make_scoped_ptr(new MockAttachmentDownloader()),
193 this); 183 this);
194 } 184 }
195 185
196 void TearDown() override { 186 void TearDown() override {
197 attachment_service_.reset(); 187 attachment_service_.reset();
198 RunLoop(); 188 ASSERT_FALSE(attachment_store_);
199 ASSERT_FALSE(attachment_store_backend_);
200 ASSERT_FALSE(attachment_uploader_); 189 ASSERT_FALSE(attachment_uploader_);
201 ASSERT_FALSE(attachment_downloader_); 190 ASSERT_FALSE(attachment_downloader_);
202 } 191 }
203 192
204 // AttachmentService::Delegate implementation. 193 // AttachmentService::Delegate implementation.
205 void OnAttachmentUploaded(const AttachmentId& attachment_id) override { 194 void OnAttachmentUploaded(const AttachmentId& attachment_id) override {
206 on_attachment_uploaded_list_.push_back(attachment_id); 195 on_attachment_uploaded_list_.push_back(attachment_id);
207 } 196 }
208 197
209 void InitializeAttachmentService( 198 void InitializeAttachmentService(
210 scoped_ptr<MockAttachmentUploader> uploader, 199 scoped_ptr<MockAttachmentUploader> uploader,
211 scoped_ptr<MockAttachmentDownloader> downloader, 200 scoped_ptr<MockAttachmentDownloader> downloader,
212 AttachmentService::Delegate* delegate) { 201 AttachmentService::Delegate* delegate) {
213 // Initialize mock attachment store 202 scoped_refptr<MockAttachmentStore> attachment_store(
214 scoped_refptr<base::SingleThreadTaskRunner> runner = 203 new MockAttachmentStore());
215 base::ThreadTaskRunnerHandle::Get(); 204 attachment_store_ = attachment_store->AsWeakPtr();
216 scoped_ptr<MockAttachmentStoreBackend> attachment_store_backend(
217 new MockAttachmentStoreBackend(runner));
218 attachment_store_backend_ = attachment_store_backend->AsWeakPtr();
219 scoped_ptr<AttachmentStore> attachment_store =
220 AttachmentStore::CreateMockStoreForTest(
221 attachment_store_backend.Pass());
222 205
223 if (uploader.get()) { 206 if (uploader.get()) {
224 attachment_uploader_ = uploader->AsWeakPtr(); 207 attachment_uploader_ = uploader->AsWeakPtr();
225 } 208 }
226 if (downloader.get()) { 209 if (downloader.get()) {
227 attachment_downloader_ = downloader->AsWeakPtr(); 210 attachment_downloader_ = downloader->AsWeakPtr();
228 } 211 }
229 attachment_service_.reset(new AttachmentServiceImpl( 212 attachment_service_.reset(
230 attachment_store.Pass(), uploader.Pass(), downloader.Pass(), delegate, 213 new AttachmentServiceImpl(attachment_store,
231 base::TimeDelta::FromMinutes(1), base::TimeDelta::FromMinutes(8))); 214 uploader.Pass(),
215 downloader.Pass(),
216 delegate,
217 base::TimeDelta::FromMinutes(1),
218 base::TimeDelta::FromMinutes(8)));
232 219
233 scoped_ptr<base::MockTimer> timer_to_pass( 220 scoped_ptr<base::MockTimer> timer_to_pass(
234 new base::MockTimer(false, false)); 221 new base::MockTimer(false, false));
235 mock_timer_ = timer_to_pass.get(); 222 mock_timer_ = timer_to_pass.get();
236 attachment_service_->SetTimerForTest(timer_to_pass.Pass()); 223 attachment_service_->SetTimerForTest(timer_to_pass.Pass());
237 } 224 }
238 225
239 AttachmentService* attachment_service() { return attachment_service_.get(); } 226 AttachmentService* attachment_service() { return attachment_service_.get(); }
240 227
241 base::MockTimer* mock_timer() { return mock_timer_; } 228 base::MockTimer* mock_timer() { return mock_timer_; }
(...skipping 11 matching lines...) Expand all
253 240
254 void RunLoop() { 241 void RunLoop() {
255 base::RunLoop run_loop; 242 base::RunLoop run_loop;
256 run_loop.RunUntilIdle(); 243 run_loop.RunUntilIdle();
257 } 244 }
258 245
259 void RunLoopAndFireTimer() { 246 void RunLoopAndFireTimer() {
260 RunLoop(); 247 RunLoop();
261 if (mock_timer()->IsRunning()) { 248 if (mock_timer()->IsRunning()) {
262 mock_timer()->Fire(); 249 mock_timer()->Fire();
263 RunLoop();
264 } 250 }
251 RunLoop();
265 } 252 }
266 253
267 const std::vector<AttachmentService::GetOrDownloadResult>& 254 const std::vector<AttachmentService::GetOrDownloadResult>&
268 download_results() const { 255 download_results() const {
269 return download_results_; 256 return download_results_;
270 } 257 }
271 258
272 const AttachmentMap& last_download_attachments() const { 259 const AttachmentMap& last_download_attachments() const {
273 return *last_download_attachments_.get(); 260 return *last_download_attachments_.get();
274 } 261 }
275 262
276 net::NetworkChangeNotifier* network_change_notifier() { 263 net::NetworkChangeNotifier* network_change_notifier() {
277 return network_change_notifier_.get(); 264 return network_change_notifier_.get();
278 } 265 }
279 266
280 MockAttachmentStoreBackend* store() { 267 MockAttachmentStore* store() { return attachment_store_.get(); }
281 return attachment_store_backend_.get();
282 }
283 268
284 MockAttachmentDownloader* downloader() { 269 MockAttachmentDownloader* downloader() {
285 return attachment_downloader_.get(); 270 return attachment_downloader_.get();
286 } 271 }
287 272
288 MockAttachmentUploader* uploader() { 273 MockAttachmentUploader* uploader() {
289 return attachment_uploader_.get(); 274 return attachment_uploader_.get();
290 } 275 }
291 276
292 const std::vector<AttachmentId>& on_attachment_uploaded_list() const { 277 const std::vector<AttachmentId>& on_attachment_uploaded_list() const {
293 return on_attachment_uploaded_list_; 278 return on_attachment_uploaded_list_;
294 } 279 }
295 280
296 private: 281 private:
297 base::MessageLoop message_loop_; 282 base::MessageLoop message_loop_;
298 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; 283 scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_;
299 base::WeakPtr<MockAttachmentStoreBackend> attachment_store_backend_; 284 base::WeakPtr<MockAttachmentStore> attachment_store_;
300 base::WeakPtr<MockAttachmentDownloader> attachment_downloader_; 285 base::WeakPtr<MockAttachmentDownloader> attachment_downloader_;
301 base::WeakPtr<MockAttachmentUploader> attachment_uploader_; 286 base::WeakPtr<MockAttachmentUploader> attachment_uploader_;
302 scoped_ptr<AttachmentServiceImpl> attachment_service_; 287 scoped_ptr<AttachmentServiceImpl> attachment_service_;
303 base::MockTimer* mock_timer_; // not owned 288 base::MockTimer* mock_timer_; // not owned
304 289
305 std::vector<AttachmentService::GetOrDownloadResult> download_results_; 290 std::vector<AttachmentService::GetOrDownloadResult> download_results_;
306 scoped_ptr<AttachmentMap> last_download_attachments_; 291 scoped_ptr<AttachmentMap> last_download_attachments_;
307 std::vector<AttachmentId> on_attachment_uploaded_list_; 292 std::vector<AttachmentId> on_attachment_uploaded_list_;
308 }; 293 };
309 294
295 TEST_F(AttachmentServiceImplTest, GetStore) {
296 EXPECT_EQ(store(), attachment_service()->GetStore());
297 }
298
310 TEST_F(AttachmentServiceImplTest, GetOrDownload_EmptyAttachmentList) { 299 TEST_F(AttachmentServiceImplTest, GetOrDownload_EmptyAttachmentList) {
311 AttachmentIdList attachment_ids; 300 AttachmentIdList attachment_ids;
312 attachment_service()->GetOrDownloadAttachments(attachment_ids, 301 attachment_service()->GetOrDownloadAttachments(attachment_ids,
313 download_callback()); 302 download_callback());
314 RunLoop();
315 store()->RespondToRead(AttachmentIdSet()); 303 store()->RespondToRead(AttachmentIdSet());
316 304
317 RunLoop(); 305 RunLoop();
318 EXPECT_EQ(1U, download_results().size()); 306 EXPECT_EQ(1U, download_results().size());
319 EXPECT_EQ(0U, last_download_attachments().size()); 307 EXPECT_EQ(0U, last_download_attachments().size());
320 } 308 }
321 309
322 TEST_F(AttachmentServiceImplTest, GetOrDownload_Local) { 310 TEST_F(AttachmentServiceImplTest, GetOrDownload_Local) {
323 AttachmentIdList attachment_ids; 311 AttachmentIdList attachment_ids;
324 attachment_ids.push_back(AttachmentId::Create()); 312 attachment_ids.push_back(AttachmentId::Create());
325 attachment_service()->GetOrDownloadAttachments(attachment_ids, 313 attachment_service()->GetOrDownloadAttachments(attachment_ids,
326 download_callback()); 314 download_callback());
327 AttachmentIdSet local_attachments; 315 AttachmentIdSet local_attachments;
328 local_attachments.insert(attachment_ids[0]); 316 local_attachments.insert(attachment_ids[0]);
329 RunLoop();
330 store()->RespondToRead(local_attachments); 317 store()->RespondToRead(local_attachments);
331 318
332 RunLoop(); 319 RunLoop();
333 EXPECT_EQ(1U, download_results().size()); 320 EXPECT_EQ(1U, download_results().size());
334 EXPECT_EQ(1U, last_download_attachments().size()); 321 EXPECT_EQ(1U, last_download_attachments().size());
335 EXPECT_TRUE(last_download_attachments().find(attachment_ids[0]) != 322 EXPECT_TRUE(last_download_attachments().find(attachment_ids[0]) !=
336 last_download_attachments().end()); 323 last_download_attachments().end());
337 } 324 }
338 325
339 TEST_F(AttachmentServiceImplTest, GetOrDownload_LocalRemoteUnavailable) { 326 TEST_F(AttachmentServiceImplTest, GetOrDownload_LocalRemoteUnavailable) {
340 // Create attachment list with 4 ids. 327 // Create attachment list with 4 ids.
341 AttachmentIdList attachment_ids; 328 AttachmentIdList attachment_ids;
342 attachment_ids.push_back(AttachmentId::Create()); 329 attachment_ids.push_back(AttachmentId::Create());
343 attachment_ids.push_back(AttachmentId::Create()); 330 attachment_ids.push_back(AttachmentId::Create());
344 attachment_ids.push_back(AttachmentId::Create()); 331 attachment_ids.push_back(AttachmentId::Create());
345 attachment_ids.push_back(AttachmentId::Create()); 332 attachment_ids.push_back(AttachmentId::Create());
346 // Call attachment service. 333 // Call attachment service.
347 attachment_service()->GetOrDownloadAttachments(attachment_ids, 334 attachment_service()->GetOrDownloadAttachments(attachment_ids,
348 download_callback()); 335 download_callback());
349 RunLoop();
350 // Ensure AttachmentStore is called. 336 // Ensure AttachmentStore is called.
351 EXPECT_FALSE(store()->read_ids.empty()); 337 EXPECT_FALSE(store()->read_ids.empty());
352 338
353 // Make AttachmentStore return only attachment 0. 339 // Make AttachmentStore return only attachment 0.
354 AttachmentIdSet local_attachments; 340 AttachmentIdSet local_attachments;
355 local_attachments.insert(attachment_ids[0]); 341 local_attachments.insert(attachment_ids[0]);
356 store()->RespondToRead(local_attachments); 342 store()->RespondToRead(local_attachments);
357 RunLoop(); 343 RunLoop();
358 // Ensure Downloader called with right attachment ids 344 // Ensure Downloader called with right attachment ids
359 EXPECT_EQ(3U, downloader()->download_requests.size()); 345 EXPECT_EQ(3U, downloader()->download_requests.size());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 // No downloader. 391 // No downloader.
406 InitializeAttachmentService( 392 InitializeAttachmentService(
407 make_scoped_ptr<MockAttachmentUploader>(new MockAttachmentUploader()), 393 make_scoped_ptr<MockAttachmentUploader>(new MockAttachmentUploader()),
408 make_scoped_ptr<MockAttachmentDownloader>(NULL), 394 make_scoped_ptr<MockAttachmentDownloader>(NULL),
409 this); 395 this);
410 396
411 AttachmentIdList attachment_ids; 397 AttachmentIdList attachment_ids;
412 attachment_ids.push_back(AttachmentId::Create()); 398 attachment_ids.push_back(AttachmentId::Create());
413 attachment_service()->GetOrDownloadAttachments(attachment_ids, 399 attachment_service()->GetOrDownloadAttachments(attachment_ids,
414 download_callback()); 400 download_callback());
415 RunLoop();
416 EXPECT_FALSE(store()->read_ids.empty()); 401 EXPECT_FALSE(store()->read_ids.empty());
417 402
418 AttachmentIdSet local_attachments; 403 AttachmentIdSet local_attachments;
419 store()->RespondToRead(local_attachments); 404 store()->RespondToRead(local_attachments);
420 RunLoop(); 405 RunLoop();
421 ASSERT_EQ(1U, download_results().size()); 406 ASSERT_EQ(1U, download_results().size());
422 EXPECT_EQ(AttachmentService::GET_UNSPECIFIED_ERROR, download_results()[0]); 407 EXPECT_EQ(AttachmentService::GET_UNSPECIFIED_ERROR, download_results()[0]);
423 EXPECT_TRUE(last_download_attachments().empty()); 408 EXPECT_TRUE(last_download_attachments().empty());
424 } 409 }
425 410
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 net::NetworkChangeNotifier::NotifyObserversOfNetworkChangeForTests( 586 net::NetworkChangeNotifier::NotifyObserversOfNetworkChangeForTests(
602 net::NetworkChangeNotifier::CONNECTION_WIFI); 587 net::NetworkChangeNotifier::CONNECTION_WIFI);
603 RunLoop(); 588 RunLoop();
604 589
605 // No longer in backoff. 590 // No longer in backoff.
606 ASSERT_TRUE(mock_timer()->IsRunning()); 591 ASSERT_TRUE(mock_timer()->IsRunning());
607 ASSERT_EQ(base::TimeDelta(), mock_timer()->GetCurrentDelay()); 592 ASSERT_EQ(base::TimeDelta(), mock_timer()->GetCurrentDelay());
608 } 593 }
609 594
610 } // namespace syncer 595 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/attachments/attachment_service_impl.cc ('k') | sync/internal_api/attachments/attachment_service_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698