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

Side by Side Diff: sync/internal_api/sync_manager_impl_unittest.cc

Issue 10824161: [Sync] Avoid unregistering object IDs on shutdown (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use new API Created 8 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 (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 // Unit tests for the SyncApi. Note that a lot of the underlying 5 // Unit tests for the SyncApi. Note that a lot of the underlying
6 // functionality is provided by the Syncable layer, which has its own 6 // functionality is provided by the Syncable layer, which has its own
7 // unit tests. We'll test SyncApi specific things in this harness. 7 // unit tests. We'll test SyncApi specific things in this harness.
8 8
9 #include <cstddef> 9 #include <cstddef>
10 #include <map> 10 #include <map>
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 MOCK_METHOD1(OnUpdatedToken, void(const std::string&)); // NOLINT 689 MOCK_METHOD1(OnUpdatedToken, void(const std::string&)); // NOLINT
690 MOCK_METHOD2(OnEncryptedTypesChanged, 690 MOCK_METHOD2(OnEncryptedTypesChanged,
691 void(ModelTypeSet, bool)); // NOLINT 691 void(ModelTypeSet, bool)); // NOLINT
692 MOCK_METHOD0(OnEncryptionComplete, void()); // NOLINT 692 MOCK_METHOD0(OnEncryptionComplete, void()); // NOLINT
693 MOCK_METHOD1(OnActionableError, 693 MOCK_METHOD1(OnActionableError,
694 void(const SyncProtocolError&)); // NOLINT 694 void(const SyncProtocolError&)); // NOLINT
695 }; 695 };
696 696
697 class SyncNotifierMock : public SyncNotifier { 697 class SyncNotifierMock : public SyncNotifier {
698 public: 698 public:
699 MOCK_METHOD1(RegisterHandler, void(SyncNotifierObserver*));
699 MOCK_METHOD2(UpdateRegisteredIds, 700 MOCK_METHOD2(UpdateRegisteredIds,
700 void(SyncNotifierObserver*, const ObjectIdSet&)); 701 void(SyncNotifierObserver*, const ObjectIdSet&));
702 MOCK_METHOD1(UnregisterHandler, void(SyncNotifierObserver*));
701 MOCK_METHOD1(SetUniqueId, void(const std::string&)); 703 MOCK_METHOD1(SetUniqueId, void(const std::string&));
702 MOCK_METHOD1(SetStateDeprecated, void(const std::string&)); 704 MOCK_METHOD1(SetStateDeprecated, void(const std::string&));
703 MOCK_METHOD2(UpdateCredentials, 705 MOCK_METHOD2(UpdateCredentials,
704 void(const std::string&, const std::string&)); 706 void(const std::string&, const std::string&));
705 MOCK_METHOD1(SendNotification, void(ModelTypeSet)); 707 MOCK_METHOD1(SendNotification, void(ModelTypeSet));
706 }; 708 };
707 709
708 } // namespace 710 } // namespace
709 711
710 class SyncManagerTest : public testing::Test, 712 class SyncManagerTest : public testing::Test,
(...skipping 24 matching lines...) Expand all
735 737
736 SyncCredentials credentials; 738 SyncCredentials credentials;
737 credentials.email = "foo@bar.com"; 739 credentials.email = "foo@bar.com";
738 credentials.sync_token = "sometoken"; 740 credentials.sync_token = "sometoken";
739 741
740 sync_notifier_mock_ = new StrictMock<SyncNotifierMock>(); 742 sync_notifier_mock_ = new StrictMock<SyncNotifierMock>();
741 EXPECT_CALL(*sync_notifier_mock_, SetUniqueId(_)); 743 EXPECT_CALL(*sync_notifier_mock_, SetUniqueId(_));
742 EXPECT_CALL(*sync_notifier_mock_, SetStateDeprecated("")); 744 EXPECT_CALL(*sync_notifier_mock_, SetStateDeprecated(""));
743 EXPECT_CALL(*sync_notifier_mock_, 745 EXPECT_CALL(*sync_notifier_mock_,
744 UpdateCredentials(credentials.email, credentials.sync_token)); 746 UpdateCredentials(credentials.email, credentials.sync_token));
747 EXPECT_CALL(*sync_notifier_mock_, RegisterHandler(_));
748 EXPECT_CALL(*sync_notifier_mock_, UnregisterHandler(_));
745 749
746 sync_manager_.AddObserver(&observer_); 750 sync_manager_.AddObserver(&observer_);
747 EXPECT_CALL(observer_, OnInitializationComplete(_, _, _)). 751 EXPECT_CALL(observer_, OnInitializationComplete(_, _, _)).
748 WillOnce(SaveArg<0>(&js_backend_)); 752 WillOnce(SaveArg<0>(&js_backend_));
749 753
750 EXPECT_FALSE(js_backend_.IsInitialized()); 754 EXPECT_FALSE(js_backend_.IsInitialized());
751 755
752 std::vector<ModelSafeWorker*> workers; 756 std::vector<ModelSafeWorker*> workers;
753 ModelSafeRoutingInfo routing_info; 757 ModelSafeRoutingInfo routing_info;
754 GetModelSafeRoutingInfo(&routing_info); 758 GetModelSafeRoutingInfo(&routing_info);
(...skipping 20 matching lines...) Expand all
775 for (ModelSafeRoutingInfo::iterator i = routing_info.begin(); 779 for (ModelSafeRoutingInfo::iterator i = routing_info.begin();
776 i != routing_info.end(); ++i) { 780 i != routing_info.end(); ++i) {
777 type_roots_[i->first] = MakeServerNodeForType( 781 type_roots_[i->first] = MakeServerNodeForType(
778 sync_manager_.GetUserShare(), i->first); 782 sync_manager_.GetUserShare(), i->first);
779 } 783 }
780 PumpLoop(); 784 PumpLoop();
781 } 785 }
782 786
783 void TearDown() { 787 void TearDown() {
784 sync_manager_.RemoveObserver(&observer_); 788 sync_manager_.RemoveObserver(&observer_);
785 EXPECT_CALL(*sync_notifier_mock_, UpdateRegisteredIds(_, ObjectIdSet()));
786 sync_manager_.ShutdownOnSyncThread(); 789 sync_manager_.ShutdownOnSyncThread();
msw 2012/08/09 05:20:26 nit: comment that StrictMock ensures that the curr
akalin 2012/08/10 01:28:08 Done.
787 sync_notifier_mock_ = NULL; 790 sync_notifier_mock_ = NULL;
788 PumpLoop(); 791 PumpLoop();
789 } 792 }
790 793
791 void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) { 794 void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) {
792 (*out)[NIGORI] = GROUP_PASSIVE; 795 (*out)[NIGORI] = GROUP_PASSIVE;
793 (*out)[BOOKMARKS] = GROUP_PASSIVE; 796 (*out)[BOOKMARKS] = GROUP_PASSIVE;
794 (*out)[THEMES] = GROUP_PASSIVE; 797 (*out)[THEMES] = GROUP_PASSIVE;
795 (*out)[SESSIONS] = GROUP_PASSIVE; 798 (*out)[SESSIONS] = GROUP_PASSIVE;
796 (*out)[PASSWORDS] = GROUP_PASSIVE; 799 (*out)[PASSWORDS] = GROUP_PASSIVE;
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 StrictMock<SyncNotifierMock>* sync_notifier_mock_; 952 StrictMock<SyncNotifierMock>* sync_notifier_mock_;
950 SyncManagerImpl sync_manager_; 953 SyncManagerImpl sync_manager_;
951 WeakHandle<JsBackend> js_backend_; 954 WeakHandle<JsBackend> js_backend_;
952 StrictMock<SyncManagerObserverMock> observer_; 955 StrictMock<SyncManagerObserverMock> observer_;
953 }; 956 };
954 957
955 TEST_F(SyncManagerTest, UpdateEnabledTypes) { 958 TEST_F(SyncManagerTest, UpdateEnabledTypes) {
956 ModelSafeRoutingInfo routes; 959 ModelSafeRoutingInfo routes;
957 GetModelSafeRoutingInfo(&routes); 960 GetModelSafeRoutingInfo(&routes);
958 const ModelTypeSet enabled_types = GetRoutingInfoTypes(routes); 961 const ModelTypeSet enabled_types = GetRoutingInfoTypes(routes);
959
960 EXPECT_CALL(*sync_notifier_mock_, 962 EXPECT_CALL(*sync_notifier_mock_,
961 UpdateRegisteredIds( 963 UpdateRegisteredIds(
962 _, ModelTypeSetToObjectIdSet(enabled_types))); 964 _, ModelTypeSetToObjectIdSet(enabled_types)));
965
963 sync_manager_.UpdateEnabledTypes(enabled_types); 966 sync_manager_.UpdateEnabledTypes(enabled_types);
964 } 967 }
965 968
969 TEST_F(SyncManagerTest, RegisterInvalidationHandler) {
970 EXPECT_CALL(*sync_notifier_mock_, RegisterHandler(NULL));
971 sync_manager_.RegisterInvalidationHandler(NULL);
972 }
973
966 TEST_F(SyncManagerTest, UpdateRegisteredInvalidationIds) { 974 TEST_F(SyncManagerTest, UpdateRegisteredInvalidationIds) {
967 EXPECT_CALL(*sync_notifier_mock_, UpdateRegisteredIds(NULL, ObjectIdSet())); 975 EXPECT_CALL(*sync_notifier_mock_,
976 UpdateRegisteredIds(NULL, ObjectIdSet()));
968 sync_manager_.UpdateRegisteredInvalidationIds(NULL, ObjectIdSet()); 977 sync_manager_.UpdateRegisteredInvalidationIds(NULL, ObjectIdSet());
969 } 978 }
970 979
980 TEST_F(SyncManagerTest, UnregisterInvalidationHandler) {
981 EXPECT_CALL(*sync_notifier_mock_, UnregisterHandler(NULL));
982 sync_manager_.UnregisterInvalidationHandler(NULL);
983 }
984
971 TEST_F(SyncManagerTest, ProcessJsMessage) { 985 TEST_F(SyncManagerTest, ProcessJsMessage) {
972 const JsArgList kNoArgs; 986 const JsArgList kNoArgs;
973 987
974 StrictMock<MockJsReplyHandler> reply_handler; 988 StrictMock<MockJsReplyHandler> reply_handler;
975 989
976 ListValue disabled_args; 990 ListValue disabled_args;
977 disabled_args.Append( 991 disabled_args.Append(
978 Value::CreateStringValue("TRANSIENT_NOTIFICATION_ERROR")); 992 Value::CreateStringValue("TRANSIENT_NOTIFICATION_ERROR"));
979 993
980 EXPECT_CALL(reply_handler, 994 EXPECT_CALL(reply_handler,
(...skipping 1802 matching lines...) Expand 10 before | Expand all | Expand 10 after
2783 2797
2784 // Verify only the non-disabled types remain after cleanup. 2798 // Verify only the non-disabled types remain after cleanup.
2785 sync_manager_.PurgeDisabledTypes(enabled_types, new_enabled_types); 2799 sync_manager_.PurgeDisabledTypes(enabled_types, new_enabled_types);
2786 EXPECT_TRUE(new_enabled_types.Equals( 2800 EXPECT_TRUE(new_enabled_types.Equals(
2787 Union(sync_manager_.InitialSyncEndedTypes(), partial_enabled_types))); 2801 Union(sync_manager_.InitialSyncEndedTypes(), partial_enabled_types)));
2788 EXPECT_TRUE(disabled_types.Equals( 2802 EXPECT_TRUE(disabled_types.Equals(
2789 sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All()))); 2803 sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All())));
2790 } 2804 }
2791 2805
2792 } // namespace 2806 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698