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

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

Issue 3078022: Unplumb AllStatus from SyncerThread. (Closed)
Patch Set: parens Created 10 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
« no previous file with comments | « chrome/browser/sync/engine/syncer_thread.cc ('k') | chrome/browser/sync/sessions/sync_session_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/engine/syncer_thread_unittest.cc
diff --git a/chrome/browser/sync/engine/syncer_thread_unittest.cc b/chrome/browser/sync/engine/syncer_thread_unittest.cc
index 6ce377ef0b8e3b5005f8425f0db7977e3399fca9..16328bdf12685f65e8ba4e4bf08763647c431bf2 100644
--- a/chrome/browser/sync/engine/syncer_thread_unittest.cc
+++ b/chrome/browser/sync/engine/syncer_thread_unittest.cc
@@ -28,7 +28,10 @@ using testing::AnyNumber;
using testing::Field;
namespace browser_sync {
+using sessions::ErrorCounters;
using sessions::SyncSessionContext;
+using sessions::SyncSessionSnapshot;
+using sessions::SyncerStatus;
typedef testing::Test SyncerThreadTest;
typedef SyncerThread::WaitInterval WaitInterval;
@@ -37,6 +40,14 @@ ACTION_P(SignalEvent, event) {
event->Signal();
}
+SyncSessionSnapshot SessionSnapshotForTest(
+ int64 num_server_changes_remaining, int64 max_local_timestamp,
+ int64 unsynced_count) {
+ return SyncSessionSnapshot(SyncerStatus(), ErrorCounters(),
+ num_server_changes_remaining, max_local_timestamp, false,
+ syncable::ModelTypeBitSet(), false, false, unsynced_count, 0, false);
+}
+
class ListenerMock : public ChannelEventHandler<SyncerEvent> {
public:
MOCK_METHOD1(HandleChannelEvent, void(const SyncerEvent&));
@@ -53,14 +64,12 @@ class SyncerThreadWithSyncerTest : public testing::Test,
metadb_.SetUp();
connection_.reset(new MockConnectionManager(metadb_.manager(),
metadb_.name()));
- allstatus_.reset(new AllStatus());
worker_ = new ModelSafeWorker();
SyncSessionContext* context = new SyncSessionContext(connection_.get(),
NULL, metadb_.manager(), this);
- syncer_thread_ = new SyncerThread(context, allstatus_.get());
+ syncer_thread_ = new SyncerThread(context);
syncer_event_hookup_.reset(
syncer_thread_->relay_channel()->AddObserver(this));
- allstatus_->WatchSyncerThread(syncer_thread_);
syncer_thread_->SetConnected(true);
syncable::ModelTypeBitSet expected_types;
expected_types[syncable::BOOKMARKS] = true;
@@ -68,7 +77,6 @@ class SyncerThreadWithSyncerTest : public testing::Test,
}
virtual void TearDown() {
syncer_event_hookup_.reset();
- allstatus_.reset();
syncer_thread_ = NULL;
connection_.reset();
metadb_.TearDown();
@@ -159,7 +167,6 @@ class SyncerThreadWithSyncerTest : public testing::Test,
private:
ManuallyOpenedTestDirectorySetterUpper metadb_;
scoped_ptr<MockConnectionManager> connection_;
- scoped_ptr<AllStatus> allstatus_;
scoped_refptr<SyncerThread> syncer_thread_;
scoped_refptr<ModelSafeWorker> worker_;
scoped_ptr<ChannelHookup<SyncerEvent> > syncer_event_hookup_;
@@ -211,12 +218,12 @@ class SyncShareIntercept
TEST_F(SyncerThreadTest, Construction) {
SyncSessionContext* context = new SyncSessionContext(NULL, NULL, NULL, NULL);
- scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context, NULL));
+ scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context));
}
TEST_F(SyncerThreadTest, StartStop) {
SyncSessionContext* context = new SyncSessionContext(NULL, NULL, NULL, NULL);
- scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context, NULL));
+ scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context));
EXPECT_TRUE(syncer_thread->Start());
EXPECT_TRUE(syncer_thread->Stop(2000));
@@ -226,9 +233,22 @@ TEST_F(SyncerThreadTest, StartStop) {
EXPECT_TRUE(syncer_thread->Stop(2000));
}
+TEST(SyncerThread, GetRecommendedDelay) {
+ EXPECT_LE(0, SyncerThread::GetRecommendedDelaySeconds(0));
+ EXPECT_LE(1, SyncerThread::GetRecommendedDelaySeconds(1));
+ EXPECT_LE(50, SyncerThread::GetRecommendedDelaySeconds(50));
+ EXPECT_LE(10, SyncerThread::GetRecommendedDelaySeconds(10));
+ EXPECT_EQ(SyncerThread::kMaxBackoffSeconds,
+ SyncerThread::GetRecommendedDelaySeconds(
+ SyncerThread::kMaxBackoffSeconds));
+ EXPECT_EQ(SyncerThread::kMaxBackoffSeconds,
+ SyncerThread::GetRecommendedDelaySeconds(
+ SyncerThread::kMaxBackoffSeconds+1));
+}
+
TEST_F(SyncerThreadTest, CalculateSyncWaitTime) {
SyncSessionContext* context = new SyncSessionContext(NULL, NULL, NULL, NULL);
- scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context, NULL));
+ scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context));
syncer_thread->DisableIdleDetection();
// Syncer_polling_interval_ is less than max poll interval.
@@ -288,7 +308,7 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// Set up the environment.
int user_idle_milliseconds_param = 0;
SyncSessionContext* context = new SyncSessionContext(NULL, NULL, NULL, NULL);
- scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context, NULL));
+ scoped_refptr<SyncerThread> syncer_thread(new SyncerThread(context));
syncer_thread->DisableIdleDetection();
// Hold the lock to appease asserts in code.
AutoLock lock(syncer_thread->lock_);
@@ -296,13 +316,11 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// Notifications disabled should result in a polling interval of
// kDefaultShortPollInterval.
{
- AllStatus::Status status = {};
- status.notifications_enabled = 0;
+ context->set_notifications_enabled(false);
bool continue_sync_cycle_param = false;
// No work and no backoff.
WaitInterval interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -317,7 +335,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// In this case the continue_sync_cycle is turned off.
continue_sync_cycle_param = true;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -333,13 +350,11 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// Notifications enabled should result in a polling interval of
// SyncerThread::kDefaultLongPollIntervalSeconds.
{
- AllStatus::Status status = {};
- status.notifications_enabled = 1;
+ context->set_notifications_enabled(true);
bool continue_sync_cycle_param = false;
// No work and no backoff.
WaitInterval interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -354,7 +369,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// In this case the continue_sync_cycle is turned off.
continue_sync_cycle_param = true;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -371,13 +385,11 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// available do not match the updates received, or the unsynced count is
// non-zero.
{
- AllStatus::Status status = {};
- status.updates_available = 1;
- status.updates_received = 0;
+ // More server changes remaining to download.
+ context->set_last_snapshot(SessionSnapshotForTest(1, 0, 0));
bool continue_sync_cycle_param = false;
WaitInterval interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -390,7 +402,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
continue_sync_cycle_param = false;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -402,7 +413,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_TRUE(continue_sync_cycle_param);
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -413,7 +423,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_FALSE(interval.had_nudge_during_backoff);
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -424,15 +433,15 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_FALSE(interval.had_nudge_during_backoff);
ASSERT_TRUE(continue_sync_cycle_param);
- status.updates_received = 1;
+ // Now simulate no more server changes remaining.
+ context->set_last_snapshot(SessionSnapshotForTest(1, 1, 0));
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
false);
- ASSERT_EQ(SyncerThread::kDefaultShortPollIntervalSeconds,
+ ASSERT_EQ(SyncerThread::kDefaultLongPollIntervalSeconds,
interval.poll_delta.InSeconds());
ASSERT_EQ(WaitInterval::NORMAL, interval.mode);
ASSERT_FALSE(interval.had_nudge_during_backoff);
@@ -440,12 +449,12 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
}
{
- AllStatus::Status status = {};
- status.unsynced_count = 1;
+
+ // Now try with unsynced local items.
+ context->set_last_snapshot(SessionSnapshotForTest(0, 0, 1));
bool continue_sync_cycle_param = false;
WaitInterval interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -458,7 +467,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
continue_sync_cycle_param = false;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
0,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -469,15 +477,14 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_FALSE(interval.had_nudge_during_backoff);
ASSERT_TRUE(continue_sync_cycle_param);
- status.unsynced_count = 0;
+ context->set_last_snapshot(SessionSnapshotForTest(0, 0, 0));
interval = syncer_thread->CalculatePollingWaitTime(
- status,
4,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
false);
- ASSERT_EQ(SyncerThread::kDefaultShortPollIntervalSeconds,
+ ASSERT_EQ(SyncerThread::kDefaultLongPollIntervalSeconds,
interval.poll_delta.InSeconds());
ASSERT_EQ(WaitInterval::NORMAL, interval.mode);
ASSERT_FALSE(interval.had_nudge_during_backoff);
@@ -486,14 +493,13 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// Regression for exponential backoff reset when the syncer is nudged.
{
- AllStatus::Status status = {};
- status.unsynced_count = 1;
+
+ context->set_last_snapshot(SessionSnapshotForTest(0, 0, 1));
bool continue_sync_cycle_param = false;
// Expect move from default polling interval to exponential backoff due to
// unsynced_count != 0.
WaitInterval interval = syncer_thread->CalculatePollingWaitTime(
- status,
3600,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -506,7 +512,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
continue_sync_cycle_param = false;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
3600,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -519,7 +524,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// Expect exponential backoff.
interval = syncer_thread->CalculatePollingWaitTime(
- status,
2,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -531,7 +535,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_TRUE(continue_sync_cycle_param);
interval = syncer_thread->CalculatePollingWaitTime(
- status,
2,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -545,7 +548,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
syncer_thread->vault_.current_wait_interval_ = interval;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
static_cast<int>(interval.poll_delta.InSeconds()),
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -562,7 +564,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// backoff.
syncer_thread->vault_.current_wait_interval_.mode = WaitInterval::NORMAL;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
2,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -577,7 +578,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// And if another interval expires, we get a bigger backoff.
WaitInterval new_interval = syncer_thread->CalculatePollingWaitTime(
- status,
static_cast<int>(interval.poll_delta.InSeconds()),
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -593,7 +593,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
// should return to the minimum.
continue_sync_cycle_param = false;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
3600,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -606,7 +605,6 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
continue_sync_cycle_param = false;
interval = syncer_thread->CalculatePollingWaitTime(
- status,
3600,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
@@ -618,15 +616,14 @@ TEST_F(SyncerThreadTest, CalculatePollingWaitTime) {
ASSERT_TRUE(continue_sync_cycle_param);
// Setting unsynced_count = 0 returns us to the default polling interval.
- status.unsynced_count = 0;
+ context->set_last_snapshot(SessionSnapshotForTest(0, 0, 0));
interval = syncer_thread->CalculatePollingWaitTime(
- status,
4,
&user_idle_milliseconds_param,
&continue_sync_cycle_param,
true);
- ASSERT_EQ(SyncerThread::kDefaultShortPollIntervalSeconds,
+ ASSERT_EQ(SyncerThread::kDefaultLongPollIntervalSeconds,
interval.poll_delta.InSeconds());
ASSERT_EQ(WaitInterval::NORMAL, interval.mode);
ASSERT_FALSE(interval.had_nudge_during_backoff);
« no previous file with comments | « chrome/browser/sync/engine/syncer_thread.cc ('k') | chrome/browser/sync/sessions/sync_session_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698