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

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

Issue 488843002: [Sync] Add support for server controlled nudge delays (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Self review Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 // Syncer unit tests. Unfortunately a lot of these tests 5 // Syncer unit tests. Unfortunately a lot of these tests
6 // are outdated and need to be reworked and updated. 6 // are outdated and need to be reworked and updated.
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <limits> 9 #include <limits>
10 #include <list> 10 #include <list>
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 return false; 205 return false;
206 } 206 }
207 virtual void OnReceivedLongPollIntervalUpdate( 207 virtual void OnReceivedLongPollIntervalUpdate(
208 const base::TimeDelta& new_interval) OVERRIDE { 208 const base::TimeDelta& new_interval) OVERRIDE {
209 last_long_poll_interval_received_ = new_interval; 209 last_long_poll_interval_received_ = new_interval;
210 } 210 }
211 virtual void OnReceivedShortPollIntervalUpdate( 211 virtual void OnReceivedShortPollIntervalUpdate(
212 const base::TimeDelta& new_interval) OVERRIDE { 212 const base::TimeDelta& new_interval) OVERRIDE {
213 last_short_poll_interval_received_ = new_interval; 213 last_short_poll_interval_received_ = new_interval;
214 } 214 }
215 virtual void OnReceivedSessionsCommitDelay( 215 virtual void OnReceivedCustomNudgeDelays(
216 const base::TimeDelta& new_delay) OVERRIDE { 216 const std::map<ModelType, int>& delay_map) OVERRIDE {
217 last_sessions_commit_delay_seconds_ = new_delay; 217 base::TimeDelta sessions_delay =
218 base::TimeDelta::FromMilliseconds(delay_map.find(SESSIONS)->second);
219 if (sessions_delay > base::TimeDelta())
220 last_sessions_commit_delay_ = sessions_delay;
221 base::TimeDelta bookmarks_delay =
222 base::TimeDelta::FromMilliseconds(delay_map.find(BOOKMARKS)->second);
223 if (bookmarks_delay > base::TimeDelta())
224 last_bookmarks_commit_delay_ = bookmarks_delay;
218 } 225 }
219 virtual void OnReceivedClientInvalidationHintBufferSize( 226 virtual void OnReceivedClientInvalidationHintBufferSize(
220 int size) OVERRIDE { 227 int size) OVERRIDE {
221 last_client_invalidation_hint_buffer_size_ = size; 228 last_client_invalidation_hint_buffer_size_ = size;
222 } 229 }
223 virtual void OnReceivedGuRetryDelay(const base::TimeDelta& delay) OVERRIDE {} 230 virtual void OnReceivedGuRetryDelay(const base::TimeDelta& delay) OVERRIDE {}
224 virtual void OnReceivedMigrationRequest(ModelTypeSet types) OVERRIDE {} 231 virtual void OnReceivedMigrationRequest(ModelTypeSet types) OVERRIDE {}
225 virtual void OnProtocolEvent(const ProtocolEvent& event) OVERRIDE {} 232 virtual void OnProtocolEvent(const ProtocolEvent& event) OVERRIDE {}
226 virtual void OnSyncProtocolError(const SyncProtocolError& error) OVERRIDE {} 233 virtual void OnSyncProtocolError(const SyncProtocolError& error) OVERRIDE {}
227 234
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 Syncer* syncer_; 592 Syncer* syncer_;
586 593
587 scoped_ptr<SyncSession> session_; 594 scoped_ptr<SyncSession> session_;
588 TypeDebugInfoCache debug_info_cache_; 595 TypeDebugInfoCache debug_info_cache_;
589 MockNudgeHandler mock_nudge_handler_; 596 MockNudgeHandler mock_nudge_handler_;
590 scoped_ptr<ModelTypeRegistry> model_type_registry_; 597 scoped_ptr<ModelTypeRegistry> model_type_registry_;
591 scoped_ptr<SyncSessionContext> context_; 598 scoped_ptr<SyncSessionContext> context_;
592 bool saw_syncer_event_; 599 bool saw_syncer_event_;
593 base::TimeDelta last_short_poll_interval_received_; 600 base::TimeDelta last_short_poll_interval_received_;
594 base::TimeDelta last_long_poll_interval_received_; 601 base::TimeDelta last_long_poll_interval_received_;
595 base::TimeDelta last_sessions_commit_delay_seconds_; 602 base::TimeDelta last_sessions_commit_delay_;
603 base::TimeDelta last_bookmarks_commit_delay_;
596 int last_client_invalidation_hint_buffer_size_; 604 int last_client_invalidation_hint_buffer_size_;
597 std::vector<scoped_refptr<ModelSafeWorker> > workers_; 605 std::vector<scoped_refptr<ModelSafeWorker> > workers_;
598 606
599 ModelTypeSet enabled_datatypes_; 607 ModelTypeSet enabled_datatypes_;
600 sessions::NudgeTracker nudge_tracker_; 608 sessions::NudgeTracker nudge_tracker_;
601 scoped_ptr<MockDebugInfoGetter> debug_info_getter_; 609 scoped_ptr<MockDebugInfoGetter> debug_info_getter_;
602 610
603 DISALLOW_COPY_AND_ASSIGN(SyncerTest); 611 DISALLOW_COPY_AND_ASSIGN(SyncerTest);
604 }; 612 };
605 613
(...skipping 2993 matching lines...) Expand 10 before | Expand all | Expand 10 after
3599 } 3607 }
3600 } 3608 }
3601 3609
3602 TEST_F(SyncerTest, TestClientCommandDuringUpdate) { 3610 TEST_F(SyncerTest, TestClientCommandDuringUpdate) {
3603 using sync_pb::ClientCommand; 3611 using sync_pb::ClientCommand;
3604 3612
3605 ClientCommand* command = new ClientCommand(); 3613 ClientCommand* command = new ClientCommand();
3606 command->set_set_sync_poll_interval(8); 3614 command->set_set_sync_poll_interval(8);
3607 command->set_set_sync_long_poll_interval(800); 3615 command->set_set_sync_long_poll_interval(800);
3608 command->set_sessions_commit_delay_seconds(3141); 3616 command->set_sessions_commit_delay_seconds(3141);
3617 sync_pb::CustomNudgeDelay* bookmark_delay =
3618 command->add_custom_nudge_delays();
3619 bookmark_delay->set_datatype_id(
3620 GetSpecificsFieldNumberFromModelType(BOOKMARKS));
3621 bookmark_delay->set_delay_ms(950);
3609 command->set_client_invalidation_hint_buffer_size(11); 3622 command->set_client_invalidation_hint_buffer_size(11);
3610 mock_server_->AddUpdateDirectory(1, 0, "in_root", 1, 1, 3623 mock_server_->AddUpdateDirectory(1, 0, "in_root", 1, 1,
3611 foreign_cache_guid(), "-1"); 3624 foreign_cache_guid(), "-1");
3612 mock_server_->SetGUClientCommand(command); 3625 mock_server_->SetGUClientCommand(command);
3613 SyncShareNudge(); 3626 SyncShareNudge();
3614 3627
3615 EXPECT_TRUE(TimeDelta::FromSeconds(8) == 3628 EXPECT_EQ(TimeDelta::FromSeconds(8), last_short_poll_interval_received_);
3616 last_short_poll_interval_received_); 3629 EXPECT_EQ(TimeDelta::FromSeconds(800), last_long_poll_interval_received_);
3617 EXPECT_TRUE(TimeDelta::FromSeconds(800) == 3630 EXPECT_EQ(TimeDelta::FromSeconds(3141), last_sessions_commit_delay_);
3618 last_long_poll_interval_received_); 3631 EXPECT_EQ(TimeDelta::FromMilliseconds(950), last_bookmarks_commit_delay_);
3619 EXPECT_TRUE(TimeDelta::FromSeconds(3141) ==
3620 last_sessions_commit_delay_seconds_);
3621 EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_); 3632 EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_);
3622 3633
3623 command = new ClientCommand(); 3634 command = new ClientCommand();
3624 command->set_set_sync_poll_interval(180); 3635 command->set_set_sync_poll_interval(180);
3625 command->set_set_sync_long_poll_interval(190); 3636 command->set_set_sync_long_poll_interval(190);
3626 command->set_sessions_commit_delay_seconds(2718); 3637 command->set_sessions_commit_delay_seconds(2718);
3638 bookmark_delay = command->add_custom_nudge_delays();
3639 bookmark_delay->set_datatype_id(
3640 GetSpecificsFieldNumberFromModelType(BOOKMARKS));
3641 bookmark_delay->set_delay_ms(1050);
3627 command->set_client_invalidation_hint_buffer_size(9); 3642 command->set_client_invalidation_hint_buffer_size(9);
3628 mock_server_->AddUpdateDirectory(1, 0, "in_root", 1, 1, 3643 mock_server_->AddUpdateDirectory(
3629 foreign_cache_guid(), "-1"); 3644 1, 0, "in_root", 1, 1, foreign_cache_guid(), "-1");
3630 mock_server_->SetGUClientCommand(command); 3645 mock_server_->SetGUClientCommand(command);
3631 SyncShareNudge(); 3646 SyncShareNudge();
3632 3647
3633 EXPECT_TRUE(TimeDelta::FromSeconds(180) == 3648 EXPECT_EQ(TimeDelta::FromSeconds(180), last_short_poll_interval_received_);
3634 last_short_poll_interval_received_); 3649 EXPECT_EQ(TimeDelta::FromSeconds(190), last_long_poll_interval_received_);
3635 EXPECT_TRUE(TimeDelta::FromSeconds(190) == 3650 EXPECT_EQ(TimeDelta::FromSeconds(2718), last_sessions_commit_delay_);
3636 last_long_poll_interval_received_); 3651 EXPECT_EQ(TimeDelta::FromMilliseconds(1050), last_bookmarks_commit_delay_);
3637 EXPECT_TRUE(TimeDelta::FromSeconds(2718) ==
3638 last_sessions_commit_delay_seconds_);
3639 EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_); 3652 EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_);
3640 } 3653 }
3641 3654
3642 TEST_F(SyncerTest, TestClientCommandDuringCommit) { 3655 TEST_F(SyncerTest, TestClientCommandDuringCommit) {
3643 using sync_pb::ClientCommand; 3656 using sync_pb::ClientCommand;
3644 3657
3645 ClientCommand* command = new ClientCommand(); 3658 ClientCommand* command = new ClientCommand();
3646 command->set_set_sync_poll_interval(8); 3659 command->set_set_sync_poll_interval(8);
3647 command->set_set_sync_long_poll_interval(800); 3660 command->set_set_sync_long_poll_interval(800);
3648 command->set_sessions_commit_delay_seconds(3141); 3661 command->set_sessions_commit_delay_seconds(3141);
3662 sync_pb::CustomNudgeDelay* bookmark_delay =
3663 command->add_custom_nudge_delays();
3664 bookmark_delay->set_datatype_id(
3665 GetSpecificsFieldNumberFromModelType(BOOKMARKS));
3666 bookmark_delay->set_delay_ms(950);
3649 command->set_client_invalidation_hint_buffer_size(11); 3667 command->set_client_invalidation_hint_buffer_size(11);
3650 CreateUnsyncedDirectory("X", "id_X"); 3668 CreateUnsyncedDirectory("X", "id_X");
3651 mock_server_->SetCommitClientCommand(command); 3669 mock_server_->SetCommitClientCommand(command);
3652 SyncShareNudge(); 3670 SyncShareNudge();
3653 3671
3654 EXPECT_TRUE(TimeDelta::FromSeconds(8) == 3672 EXPECT_EQ(TimeDelta::FromSeconds(8), last_short_poll_interval_received_);
3655 last_short_poll_interval_received_); 3673 EXPECT_EQ(TimeDelta::FromSeconds(800), last_long_poll_interval_received_);
3656 EXPECT_TRUE(TimeDelta::FromSeconds(800) == 3674 EXPECT_EQ(TimeDelta::FromSeconds(3141), last_sessions_commit_delay_);
3657 last_long_poll_interval_received_); 3675 EXPECT_EQ(TimeDelta::FromMilliseconds(950), last_bookmarks_commit_delay_);
3658 EXPECT_TRUE(TimeDelta::FromSeconds(3141) ==
3659 last_sessions_commit_delay_seconds_);
3660 EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_); 3676 EXPECT_EQ(11, last_client_invalidation_hint_buffer_size_);
3661 3677
3662 command = new ClientCommand(); 3678 command = new ClientCommand();
3663 command->set_set_sync_poll_interval(180); 3679 command->set_set_sync_poll_interval(180);
3664 command->set_set_sync_long_poll_interval(190); 3680 command->set_set_sync_long_poll_interval(190);
3665 command->set_sessions_commit_delay_seconds(2718); 3681 command->set_sessions_commit_delay_seconds(2718);
3682 bookmark_delay = command->add_custom_nudge_delays();
3683 bookmark_delay->set_datatype_id(
3684 GetSpecificsFieldNumberFromModelType(BOOKMARKS));
3685 bookmark_delay->set_delay_ms(1050);
3666 command->set_client_invalidation_hint_buffer_size(9); 3686 command->set_client_invalidation_hint_buffer_size(9);
3667 CreateUnsyncedDirectory("Y", "id_Y"); 3687 CreateUnsyncedDirectory("Y", "id_Y");
3668 mock_server_->SetCommitClientCommand(command); 3688 mock_server_->SetCommitClientCommand(command);
3669 SyncShareNudge(); 3689 SyncShareNudge();
3670 3690
3671 EXPECT_TRUE(TimeDelta::FromSeconds(180) == 3691 EXPECT_EQ(TimeDelta::FromSeconds(180), last_short_poll_interval_received_);
3672 last_short_poll_interval_received_); 3692 EXPECT_EQ(TimeDelta::FromSeconds(190), last_long_poll_interval_received_);
3673 EXPECT_TRUE(TimeDelta::FromSeconds(190) == 3693 EXPECT_EQ(TimeDelta::FromSeconds(2718), last_sessions_commit_delay_);
3674 last_long_poll_interval_received_); 3694 EXPECT_EQ(TimeDelta::FromMilliseconds(1050), last_bookmarks_commit_delay_);
3675 EXPECT_TRUE(TimeDelta::FromSeconds(2718) ==
3676 last_sessions_commit_delay_seconds_);
3677 EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_); 3695 EXPECT_EQ(9, last_client_invalidation_hint_buffer_size_);
3678 } 3696 }
3679 3697
3680 TEST_F(SyncerTest, EnsureWeSendUpOldParent) { 3698 TEST_F(SyncerTest, EnsureWeSendUpOldParent) {
3681 syncable::Id folder_one_id = ids_.FromNumber(1); 3699 syncable::Id folder_one_id = ids_.FromNumber(1);
3682 syncable::Id folder_two_id = ids_.FromNumber(2); 3700 syncable::Id folder_two_id = ids_.FromNumber(2);
3683 3701
3684 mock_server_->AddUpdateDirectory(folder_one_id, TestIdFactory::root(), 3702 mock_server_->AddUpdateDirectory(folder_one_id, TestIdFactory::root(),
3685 "folder_one", 1, 1, foreign_cache_guid(), "-1"); 3703 "folder_one", 1, 1, foreign_cache_guid(), "-1");
3686 mock_server_->AddUpdateDirectory(folder_two_id, TestIdFactory::root(), 3704 mock_server_->AddUpdateDirectory(folder_two_id, TestIdFactory::root(),
(...skipping 1344 matching lines...) Expand 10 before | Expand all | Expand 10 after
5031 EXPECT_EQ("xyz", final_monitor_records["xyz"].extension_id); 5049 EXPECT_EQ("xyz", final_monitor_records["xyz"].extension_id);
5032 EXPECT_EQ(2049U, final_monitor_records["ABC"].bookmark_write_count); 5050 EXPECT_EQ(2049U, final_monitor_records["ABC"].bookmark_write_count);
5033 EXPECT_EQ(4U, final_monitor_records["xyz"].bookmark_write_count); 5051 EXPECT_EQ(4U, final_monitor_records["xyz"].bookmark_write_count);
5034 } else { 5052 } else {
5035 EXPECT_TRUE(final_monitor_records.empty()) 5053 EXPECT_TRUE(final_monitor_records.empty())
5036 << "Should not restore records after successful bookmark commit."; 5054 << "Should not restore records after successful bookmark commit.";
5037 } 5055 }
5038 } 5056 }
5039 5057
5040 } // namespace syncer 5058 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698