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

Unified 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: Work around brittle unit test 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/internal_api/sync_manager_impl.cc ('k') | sync/internal_api/test/fake_sync_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/internal_api/sync_manager_impl_unittest.cc
diff --git a/sync/internal_api/sync_manager_impl_unittest.cc b/sync/internal_api/sync_manager_impl_unittest.cc
index bd2ffeff0ad07d9f90775a906c44fdbf12e7fc7d..841ffd05f3ea9e862115bb78c8cfa0e1defc9ae1 100644
--- a/sync/internal_api/sync_manager_impl_unittest.cc
+++ b/sync/internal_api/sync_manager_impl_unittest.cc
@@ -696,8 +696,10 @@ class SyncManagerObserverMock : public SyncManager::Observer {
class SyncNotifierMock : public SyncNotifier {
public:
+ MOCK_METHOD1(RegisterHandler, void(SyncNotifierObserver*));
MOCK_METHOD2(UpdateRegisteredIds,
void(SyncNotifierObserver*, const ObjectIdSet&));
+ MOCK_METHOD1(UnregisterHandler, void(SyncNotifierObserver*));
MOCK_METHOD1(SetUniqueId, void(const std::string&));
MOCK_METHOD1(SetStateDeprecated, void(const std::string&));
MOCK_METHOD2(UpdateCredentials,
@@ -742,6 +744,10 @@ class SyncManagerTest : public testing::Test,
EXPECT_CALL(*sync_notifier_mock_, SetStateDeprecated(""));
EXPECT_CALL(*sync_notifier_mock_,
UpdateCredentials(credentials.email, credentials.sync_token));
+ EXPECT_CALL(*sync_notifier_mock_, RegisterHandler(_));
+
+ // Called by ShutdownOnSyncThread().
+ EXPECT_CALL(*sync_notifier_mock_, UnregisterHandler(_));
sync_manager_.AddObserver(&observer_);
EXPECT_CALL(observer_, OnInitializationComplete(_, _, _)).
@@ -782,7 +788,8 @@ class SyncManagerTest : public testing::Test,
void TearDown() {
sync_manager_.RemoveObserver(&observer_);
- EXPECT_CALL(*sync_notifier_mock_, UpdateRegisteredIds(_, ObjectIdSet()));
+ // |sync_notifier_mock_| is strict, which ensures we don't do anything but
+ // unregister |sync_manager_| as a handler on shutdown.
sync_manager_.ShutdownOnSyncThread();
sync_notifier_mock_ = NULL;
PumpLoop();
@@ -956,18 +963,28 @@ TEST_F(SyncManagerTest, UpdateEnabledTypes) {
ModelSafeRoutingInfo routes;
GetModelSafeRoutingInfo(&routes);
const ModelTypeSet enabled_types = GetRoutingInfoTypes(routes);
-
EXPECT_CALL(*sync_notifier_mock_,
UpdateRegisteredIds(
_, ModelTypeSetToObjectIdSet(enabled_types)));
+
sync_manager_.UpdateEnabledTypes(enabled_types);
}
+TEST_F(SyncManagerTest, RegisterInvalidationHandler) {
+ EXPECT_CALL(*sync_notifier_mock_, RegisterHandler(NULL));
+ sync_manager_.RegisterInvalidationHandler(NULL);
+}
+
TEST_F(SyncManagerTest, UpdateRegisteredInvalidationIds) {
EXPECT_CALL(*sync_notifier_mock_, UpdateRegisteredIds(NULL, ObjectIdSet()));
sync_manager_.UpdateRegisteredInvalidationIds(NULL, ObjectIdSet());
}
+TEST_F(SyncManagerTest, UnregisterInvalidationHandler) {
+ EXPECT_CALL(*sync_notifier_mock_, UnregisterHandler(NULL));
+ sync_manager_.UnregisterInvalidationHandler(NULL);
+}
+
TEST_F(SyncManagerTest, ProcessJsMessage) {
const JsArgList kNoArgs;
« no previous file with comments | « sync/internal_api/sync_manager_impl.cc ('k') | sync/internal_api/test/fake_sync_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698