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

Unified Diff: chrome/browser/sync/engine/sync_scheduler_unittest.cc

Issue 7655055: [Sync] Make BackendMigrator not wait for full sync cycles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix race condition Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/engine/sync_scheduler_unittest.cc
diff --git a/chrome/browser/sync/engine/sync_scheduler_unittest.cc b/chrome/browser/sync/engine/sync_scheduler_unittest.cc
index 4f1058d78498938535b0fd62a2846e6520035ee7..f56b6c92cd464c12349c289cb1ae794a656f48ba 100644
--- a/chrome/browser/sync/engine/sync_scheduler_unittest.cc
+++ b/chrome/browser/sync/engine/sync_scheduler_unittest.cc
@@ -5,7 +5,7 @@
#include "base/bind.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
-#include "base/memory/scoped_callback_factory.h"
+#include "base/memory/weak_ptr.h"
#include "base/message_loop.h"
#include "base/task.h"
#include "base/test/test_timeouts.h"
@@ -74,7 +74,7 @@ static const size_t kMinNumSamples = 5;
class SyncSchedulerTest : public testing::Test {
public:
SyncSchedulerTest()
- : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
context_(NULL),
syncer_(NULL),
delay_(NULL) {}
@@ -141,7 +141,8 @@ class SyncSchedulerTest : public testing::Test {
void StartSyncScheduler(SyncScheduler::Mode mode) {
scheduler()->Start(
mode,
- callback_factory_.NewCallback(&SyncSchedulerTest::DoQuitLoopNow));
+ base::Bind(&SyncSchedulerTest::DoQuitLoopNow,
+ weak_ptr_factory_.GetWeakPtr()));
}
bool GetBackoffAndResetTest() {
@@ -191,7 +192,7 @@ class SyncSchedulerTest : public testing::Test {
SyncSessionContext* context() { return context_; }
private:
- base::ScopedCallbackFactory<SyncSchedulerTest> callback_factory_;
+ base::WeakPtrFactory<SyncSchedulerTest> weak_ptr_factory_;
MessageLoop message_loop_;
scoped_ptr<SyncScheduler> scheduler_;
scoped_ptr<MockConnectionManager> connection_;
@@ -959,6 +960,15 @@ TEST_F(SyncSchedulerTest, GetRecommendedDelay) {
TimeDelta::FromSeconds(kMaxBackoffSeconds + 1)));
}
+namespace {
+
+class MockCallback : public base::SupportsWeakPtr<MockCallback> {
+ public:
+ MOCK_METHOD0(Run, void());
+};
+
+} // namespace
+
// Test that appropriate syncer steps are requested for each job type.
TEST_F(SyncSchedulerTest, SyncerSteps) {
// Nudges.
@@ -1008,7 +1018,10 @@ TEST_F(SyncSchedulerTest, SyncerSteps) {
StartSyncScheduler(SyncScheduler::NORMAL_MODE);
RunLoop();
- scheduler()->ScheduleCleanupDisabledTypes();
+ MockCallback mock_callback;
+ EXPECT_CALL(mock_callback, Run());
+ scheduler()->ScheduleCleanupDisabledTypes(
+ base::Bind(&MockCallback::Run, mock_callback.AsWeakPtr()));
PumpLoop();
PumpLoop();

Powered by Google App Engine
This is Rietveld 408576698