OLD | NEW |
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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/location.h" |
11 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
12 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 14 #include "base/single_thread_task_runner.h" |
13 #include "base/test/test_timeouts.h" | 15 #include "base/test/test_timeouts.h" |
| 16 #include "base/threading/thread_task_runner_handle.h" |
14 #include "sync/engine/backoff_delay_provider.h" | 17 #include "sync/engine/backoff_delay_provider.h" |
15 #include "sync/engine/sync_scheduler_impl.h" | 18 #include "sync/engine/sync_scheduler_impl.h" |
16 #include "sync/engine/syncer.h" | 19 #include "sync/engine/syncer.h" |
17 #include "sync/internal_api/public/base/cancelation_signal.h" | 20 #include "sync/internal_api/public/base/cancelation_signal.h" |
18 #include "sync/internal_api/public/base/model_type_test_util.h" | 21 #include "sync/internal_api/public/base/model_type_test_util.h" |
19 #include "sync/sessions/test_util.h" | 22 #include "sync/sessions/test_util.h" |
20 #include "sync/test/callback_counter.h" | 23 #include "sync/test/callback_counter.h" |
21 #include "sync/test/engine/fake_model_worker.h" | 24 #include "sync/test/engine/fake_model_worker.h" |
22 #include "sync/test/engine/mock_connection_manager.h" | 25 #include "sync/test/engine/mock_connection_manager.h" |
23 #include "sync/test/engine/mock_nudge_handler.h" | 26 #include "sync/test/engine/mock_nudge_handler.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 } | 75 } |
73 | 76 |
74 void RunLoop() { | 77 void RunLoop() { |
75 base::MessageLoop::current()->Run(); | 78 base::MessageLoop::current()->Run(); |
76 } | 79 } |
77 | 80 |
78 void PumpLoop() { | 81 void PumpLoop() { |
79 // Do it this way instead of RunAllPending to pump loop exactly once | 82 // Do it this way instead of RunAllPending to pump loop exactly once |
80 // (necessary in the presence of timers; see comment in | 83 // (necessary in the presence of timers; see comment in |
81 // QuitLoopNow). | 84 // QuitLoopNow). |
82 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(&QuitLoopNow)); | 85 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| 86 base::Bind(&QuitLoopNow)); |
83 RunLoop(); | 87 RunLoop(); |
84 } | 88 } |
85 | 89 |
86 void PumpLoopFor(base::TimeDelta time) { | 90 void PumpLoopFor(base::TimeDelta time) { |
87 // Allow the loop to run for the specified amount of time. | 91 // Allow the loop to run for the specified amount of time. |
88 base::MessageLoop::current()->PostDelayedTask( | 92 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
89 FROM_HERE, base::Bind(&QuitLoopNow), time); | 93 FROM_HERE, base::Bind(&QuitLoopNow), time); |
90 RunLoop(); | 94 RunLoop(); |
91 } | 95 } |
92 | 96 |
93 ModelSafeRoutingInfo TypesToRoutingInfo(ModelTypeSet types) { | 97 ModelSafeRoutingInfo TypesToRoutingInfo(ModelTypeSet types) { |
94 ModelSafeRoutingInfo routes; | 98 ModelSafeRoutingInfo routes; |
95 for (ModelTypeSet::Iterator iter = types.First(); iter.Good(); iter.Inc()) { | 99 for (ModelTypeSet::Iterator iter = types.First(); iter.Good(); iter.Inc()) { |
96 routes[iter.Get()] = GROUP_PASSIVE; | 100 routes[iter.Get()] = GROUP_PASSIVE; |
97 } | 101 } |
98 return routes; | 102 return routes; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 void StartSyncConfiguration() { | 204 void StartSyncConfiguration() { |
201 scheduler()->Start(SyncScheduler::CONFIGURATION_MODE, base::Time()); | 205 scheduler()->Start(SyncScheduler::CONFIGURATION_MODE, base::Time()); |
202 } | 206 } |
203 | 207 |
204 void StartSyncScheduler(base::Time last_poll_time) { | 208 void StartSyncScheduler(base::Time last_poll_time) { |
205 scheduler()->Start(SyncScheduler::NORMAL_MODE, last_poll_time); | 209 scheduler()->Start(SyncScheduler::NORMAL_MODE, last_poll_time); |
206 } | 210 } |
207 | 211 |
208 // This stops the scheduler synchronously. | 212 // This stops the scheduler synchronously. |
209 void StopSyncScheduler() { | 213 void StopSyncScheduler() { |
210 base::MessageLoop::current()->PostTask( | 214 base::ThreadTaskRunnerHandle::Get()->PostTask( |
211 FROM_HERE, | 215 FROM_HERE, base::Bind(&SyncSchedulerTest::DoQuitLoopNow, |
212 base::Bind(&SyncSchedulerTest::DoQuitLoopNow, | 216 weak_ptr_factory_.GetWeakPtr())); |
213 weak_ptr_factory_.GetWeakPtr())); | |
214 RunLoop(); | 217 RunLoop(); |
215 } | 218 } |
216 | 219 |
217 bool RunAndGetBackoff() { | 220 bool RunAndGetBackoff() { |
218 ModelTypeSet nudge_types(THEMES); | 221 ModelTypeSet nudge_types(THEMES); |
219 StartSyncScheduler(base::Time()); | 222 StartSyncScheduler(base::Time()); |
220 | 223 |
221 scheduler()->ScheduleLocalNudge(nudge_types, FROM_HERE); | 224 scheduler()->ScheduleLocalNudge(nudge_types, FROM_HERE); |
222 RunLoop(); | 225 RunLoop(); |
223 | 226 |
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1467 ASSERT_TRUE(scheduler()->IsBackingOff()); | 1470 ASSERT_TRUE(scheduler()->IsBackingOff()); |
1468 | 1471 |
1469 // Now succeed. | 1472 // Now succeed. |
1470 connection()->SetServerReachable(); | 1473 connection()->SetServerReachable(); |
1471 PumpLoopFor(2 * delta); | 1474 PumpLoopFor(2 * delta); |
1472 ASSERT_EQ(1, success_counter.times_called()); | 1475 ASSERT_EQ(1, success_counter.times_called()); |
1473 ASSERT_FALSE(scheduler()->IsBackingOff()); | 1476 ASSERT_FALSE(scheduler()->IsBackingOff()); |
1474 } | 1477 } |
1475 | 1478 |
1476 } // namespace syncer | 1479 } // namespace syncer |
OLD | NEW |