| Index: chrome/browser/sync/glue/chrome_sync_notification_bridge_unittest.cc
|
| diff --git a/chrome/browser/sync/glue/chrome_sync_notification_bridge_unittest.cc b/chrome/browser/sync/glue/chrome_sync_notification_bridge_unittest.cc
|
| index a2054c2131732040062aaff821bf8fdfbae8578d..1b097ebab2eab9e148563651563360cf50ef2442 100644
|
| --- a/chrome/browser/sync/glue/chrome_sync_notification_bridge_unittest.cc
|
| +++ b/chrome/browser/sync/glue/chrome_sync_notification_bridge_unittest.cc
|
| @@ -126,6 +126,49 @@ class ChromeSyncNotificationBridgeTest : public testing::Test {
|
| ADD_FAILURE() << "Sync Observer did not receive proper notification.";
|
| }
|
|
|
| + void VerifyAndDestroyObserver() {
|
| + ASSERT_TRUE(sync_thread_.message_loop_proxy()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&ChromeSyncNotificationBridgeTest::
|
| + VerifyAndDestroyObserverOnSyncThread,
|
| + base::Unretained(this))));
|
| + BlockForSyncThread();
|
| + }
|
| +
|
| + void CreateObserverWithExpectations(
|
| + syncer::ModelTypePayloadMap expected_payloads,
|
| + syncer::IncomingNotificationSource expected_source) {
|
| + ASSERT_TRUE(sync_thread_.message_loop_proxy()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(
|
| + &ChromeSyncNotificationBridgeTest::CreateObserverOnSyncThread,
|
| + base::Unretained(this),
|
| + expected_payloads,
|
| + expected_source)));
|
| + BlockForSyncThread();
|
| + }
|
| +
|
| + void UpdateBridgeEnabledTypes(syncer::ModelTypeSet enabled_types) {
|
| + ASSERT_TRUE(sync_thread_.message_loop_proxy()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(
|
| + &ChromeSyncNotificationBridgeTest::
|
| + UpdateBridgeEnabledTypesOnSyncThread,
|
| + base::Unretained(this),
|
| + enabled_types)));
|
| + BlockForSyncThread();
|
| + }
|
| +
|
| + void TriggerRefreshNotification(
|
| + int type,
|
| + const syncer::ModelTypePayloadMap& payload_map) {
|
| + content::NotificationService::current()->Notify(
|
| + type,
|
| + content::Source<Profile>(&mock_profile_),
|
| + content::Details<const syncer::ModelTypePayloadMap>(&payload_map));
|
| + }
|
| +
|
| + private:
|
| void VerifyAndDestroyObserverOnSyncThread() {
|
| DCHECK(sync_thread_.message_loop_proxy()->RunsTasksOnCurrentThread());
|
| if (!sync_observer_) {
|
| @@ -138,15 +181,6 @@ class ChromeSyncNotificationBridgeTest : public testing::Test {
|
| }
|
| }
|
|
|
| - void VerifyAndDestroyObserver() {
|
| - ASSERT_TRUE(sync_thread_.message_loop_proxy()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeSyncNotificationBridgeTest::
|
| - VerifyAndDestroyObserverOnSyncThread,
|
| - base::Unretained(this))));
|
| - BlockForSyncThread();
|
| - }
|
| -
|
| void CreateObserverOnSyncThread(
|
| syncer::ModelTypePayloadMap expected_payloads,
|
| syncer::IncomingNotificationSource expected_source) {
|
| @@ -158,17 +192,10 @@ class ChromeSyncNotificationBridgeTest : public testing::Test {
|
| expected_source);
|
| }
|
|
|
| - void CreateObserverWithExpectations(
|
| - syncer::ModelTypePayloadMap expected_payloads,
|
| - syncer::IncomingNotificationSource expected_source) {
|
| - ASSERT_TRUE(sync_thread_.message_loop_proxy()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(
|
| - &ChromeSyncNotificationBridgeTest::CreateObserverOnSyncThread,
|
| - base::Unretained(this),
|
| - expected_payloads,
|
| - expected_source)));
|
| - BlockForSyncThread();
|
| + void UpdateBridgeEnabledTypesOnSyncThread(
|
| + syncer::ModelTypeSet enabled_types) {
|
| + DCHECK(sync_thread_.message_loop_proxy()->RunsTasksOnCurrentThread());
|
| + bridge_->UpdateEnabledTypes(enabled_types);
|
| }
|
|
|
| void SignalOnSyncThread() {
|
| @@ -184,19 +211,9 @@ class ChromeSyncNotificationBridgeTest : public testing::Test {
|
| base::Unretained(this))));
|
| done_.TimedWait(TestTimeouts::action_timeout());
|
| if (!done_.IsSignaled())
|
| - ADD_FAILURE() << "Timed out waiting for IO thread.";
|
| + ADD_FAILURE() << "Timed out waiting for sync thread.";
|
| }
|
|
|
| - void TriggerRefreshNotification(
|
| - int type,
|
| - const syncer::ModelTypePayloadMap& payload_map) {
|
| - content::NotificationService::current()->Notify(
|
| - type,
|
| - content::Source<Profile>(&mock_profile_),
|
| - content::Details<const syncer::ModelTypePayloadMap>(&payload_map));
|
| - }
|
| -
|
| - private:
|
| content::TestBrowserThread ui_thread_;
|
| base::Thread sync_thread_;
|
| NiceMock<ProfileMock> mock_profile_;
|
| @@ -241,8 +258,9 @@ TEST_F(ChromeSyncNotificationBridgeTest, LocalNotificationEmptyPayloadMap) {
|
| syncer::ModelTypePayloadMapFromEnumSet(enabled_types, std::string());
|
| CreateObserverWithExpectations(
|
| enabled_types_payload_map, syncer::LOCAL_NOTIFICATION);
|
| + UpdateBridgeEnabledTypes(enabled_types);
|
| TriggerRefreshNotification(chrome::NOTIFICATION_SYNC_REFRESH_LOCAL,
|
| - enabled_types_payload_map);
|
| + syncer::ModelTypePayloadMap());
|
| VerifyAndDestroyObserver();
|
| }
|
|
|
| @@ -256,8 +274,9 @@ TEST_F(ChromeSyncNotificationBridgeTest, RemoteNotificationEmptyPayloadMap) {
|
| syncer::ModelTypePayloadMapFromEnumSet(enabled_types, std::string());
|
| CreateObserverWithExpectations(
|
| enabled_types_payload_map, syncer::REMOTE_NOTIFICATION);
|
| + UpdateBridgeEnabledTypes(enabled_types);
|
| TriggerRefreshNotification(chrome::NOTIFICATION_SYNC_REFRESH_REMOTE,
|
| - enabled_types_payload_map);
|
| + syncer::ModelTypePayloadMap());
|
| VerifyAndDestroyObserver();
|
| }
|
|
|
|
|