| Index: chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc
|
| diff --git a/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc b/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc
|
| index 06650ae9f3d75424939a0524ac9348678d3229f3..555db87840178dbc428df4e47015cd010a60270c 100644
|
| --- a/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc
|
| +++ b/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc
|
| @@ -16,6 +16,9 @@
|
| #include "chrome/browser/notifications/sync_notifier/chrome_notifier_service.h"
|
| #include "chrome/browser/notifications/sync_notifier/sync_notifier_test_utils.h"
|
| #include "chrome/browser/notifications/sync_notifier/synced_notification.h"
|
| +#include "chrome/browser/notifications/sync_notifier/synced_notification_app_info.h"
|
| +#include "chrome/browser/notifications/sync_notifier/synced_notification_app_info_service.h"
|
| +#include "chrome/browser/notifications/sync_notifier/synced_notification_app_info_service_factory.h"
|
| #include "chrome/browser/prefs/browser_prefs.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -124,6 +127,9 @@ class ChromeNotifierServiceTest : public testing::Test {
|
|
|
| // Set up a profile for the unit tests to use.
|
| profile_.reset(new TestingProfile());
|
| +
|
| + // Set up the testing SyncedNotificationAppInfoService with some test data.
|
| + AddTestingAppInfos();
|
| }
|
|
|
| virtual void TearDown() {
|
| @@ -170,6 +176,30 @@ class ChromeNotifierServiceTest : public testing::Test {
|
| ChromeNotifierService::CreateSyncDataFromNotification(*notification));
|
| }
|
|
|
| + void AddTestingAppInfos() {
|
| + // Get the SyncedNotificationAppInfoService from the browser object.
|
| + SyncedNotificationAppInfoService* synced_notification_app_info_service =
|
| + SyncedNotificationAppInfoServiceFactory::GetForProfile(
|
| + profile_.get(), Profile::EXPLICIT_ACCESS);
|
| +
|
| + // Create a notification to add.
|
| + // The sending_service_infos_ list will take ownership of this pointer.
|
| + scoped_ptr<SyncedNotificationAppInfo> test_service1(
|
| + new SyncedNotificationAppInfo(profile_.get(),
|
| + std::string(kSendingService1Name),
|
| + synced_notification_app_info_service));
|
| +
|
| + // Add some App IDs.
|
| + test_service1->AddAppId(kAppId1);
|
| + test_service1->AddAppId(kAppId2);
|
| +
|
| + // Set this icon GURL.
|
| + test_service1->SetSettingsIcon(GURL(kTestIconUrl));
|
| +
|
| + // Call AddForTest.
|
| + synced_notification_app_info_service->AddForTest(test_service1.Pass());
|
| + }
|
| +
|
| protected:
|
| scoped_ptr<TestingProfile> profile_;
|
|
|
| @@ -182,9 +212,6 @@ class ChromeNotifierServiceTest : public testing::Test {
|
| DISALLOW_COPY_AND_ASSIGN(ChromeNotifierServiceTest);
|
| };
|
|
|
| -// TODO(petewil): Add more tests as I add functionalty. Tests are based on
|
| -// chrome/browser/extensions/app_notification_manager_sync_unittest.cc
|
| -
|
| // Create a Notification, convert it to SyncData and convert it back.
|
| TEST_F(ChromeNotifierServiceTest, NotificationToSyncDataToNotification) {
|
| scoped_ptr<SyncedNotification> notification1(
|
| @@ -533,7 +560,7 @@ TEST_F(ChromeNotifierServiceTest, ServiceEnabledTest) {
|
| ChromeNotifierService notifier(profile_.get(), notification_manager());
|
| std::set<std::string>::iterator iter;
|
| std::string first_synced_notification_service_id(
|
| - kFirstSyncedNotificationServiceId);
|
| + kSendingService1Name);
|
|
|
| // Create some local fake data.
|
| scoped_ptr<SyncedNotification> n1(CreateNotification(
|
| @@ -542,7 +569,7 @@ TEST_F(ChromeNotifierServiceTest, ServiceEnabledTest) {
|
|
|
| // Enable the service and ensure the service is in the list.
|
| // Initially the service starts in the disabled state.
|
| - notifier.OnSyncedNotificationServiceEnabled(kFirstSyncedNotificationServiceId,
|
| + notifier.OnSyncedNotificationServiceEnabled(kSendingService1Name,
|
| true);
|
| iter = find(notifier.enabled_sending_services_.begin(),
|
| notifier.enabled_sending_services_.end(),
|
| @@ -552,7 +579,7 @@ TEST_F(ChromeNotifierServiceTest, ServiceEnabledTest) {
|
|
|
| // Disable the service and ensure it is gone from the list and the
|
| // notification_manager.
|
| - notifier.OnSyncedNotificationServiceEnabled(kFirstSyncedNotificationServiceId,
|
| + notifier.OnSyncedNotificationServiceEnabled(kSendingService1Name,
|
| false);
|
| iter = find(notifier.enabled_sending_services_.begin(),
|
| notifier.enabled_sending_services_.end(),
|
| @@ -586,7 +613,7 @@ TEST_F(ChromeNotifierServiceTest, MAYBE_AddNewSendingServicesTest) {
|
| kText1,
|
| kIconUrl1,
|
| kImageUrl1,
|
| - kFirstSyncedNotificationServiceId,
|
| + kAppId1,
|
| kKey1,
|
| kUnread)));
|
|
|
| @@ -596,7 +623,7 @@ TEST_F(ChromeNotifierServiceTest, MAYBE_AddNewSendingServicesTest) {
|
|
|
| // Verify that the first synced notification service is enabled in memory.
|
| std::set<std::string>::iterator iter;
|
| - std::string first_notification_service_id(kFirstSyncedNotificationServiceId);
|
| + std::string first_notification_service_id(kSendingService1Name);
|
| iter = find(notifier.enabled_sending_services_.begin(),
|
| notifier.enabled_sending_services_.end(),
|
| first_notification_service_id);
|
| @@ -614,7 +641,7 @@ TEST_F(ChromeNotifierServiceTest, MAYBE_AddNewSendingServicesTest) {
|
| kText2,
|
| kIconUrl2,
|
| kImageUrl2,
|
| - kFirstSyncedNotificationServiceId,
|
| + kAppId1,
|
| kKey2,
|
| kUnread)));
|
| notifier.ProcessSyncChanges(FROM_HERE, changes);
|
| @@ -630,8 +657,7 @@ TEST_F(ChromeNotifierServiceTest, CheckInitializedServicesTest) {
|
| notifier.set_avoid_bitmap_fetching_for_test(true);
|
|
|
| // Initialize but do not enable the sending service.
|
| - notifier.initialized_sending_services_.insert(
|
| - kFirstSyncedNotificationServiceId);
|
| + notifier.initialized_sending_services_.insert(kSendingService1Name);
|
| ASSERT_EQ(0U, notifier.enabled_sending_services_.size());
|
| ASSERT_EQ(1U, notifier.initialized_sending_services_.size());
|
|
|
| @@ -640,8 +666,7 @@ TEST_F(ChromeNotifierServiceTest, CheckInitializedServicesTest) {
|
| EXPECT_EQ(0U, notifier.GetAllSyncData(SYNCED_NOTIFICATIONS).size());
|
|
|
| // Set up an ADD.
|
| - std::string first_synced_notification_service_id(
|
| - kFirstSyncedNotificationServiceId);
|
| + std::string first_synced_notification_service_id(kSendingService1Name);
|
|
|
| SyncChangeList changes;
|
| changes.push_back(
|
| @@ -650,7 +675,7 @@ TEST_F(ChromeNotifierServiceTest, CheckInitializedServicesTest) {
|
| kText1,
|
| kIconUrl1,
|
| kImageUrl1,
|
| - kFirstSyncedNotificationServiceId,
|
| + kAppId1,
|
| kKey1,
|
| kUnread)));
|
|
|
| @@ -663,13 +688,48 @@ TEST_F(ChromeNotifierServiceTest, CheckInitializedServicesTest) {
|
| EXPECT_EQ(0U, notification_manager()->added_notifications());
|
| }
|
|
|
| -TEST_F(ChromeNotifierServiceTest, CheckFindAppInfo) {
|
| +TEST_F(ChromeNotifierServiceTest, SetAddedAppIdsTest) {
|
| ChromeNotifierService notifier(profile_.get(), notification_manager());
|
| notifier.set_avoid_bitmap_fetching_for_test(true);
|
|
|
| - SyncedNotificationAppInfoTemp* app_info =
|
| - notifier.FindAppInfo(kFirstSyncedNotificationServiceId);
|
| - EXPECT_TRUE(app_info != NULL);
|
| + // Add some notifications to our notification list.
|
| + scoped_ptr<SyncedNotification> n1(CreateNotification(
|
| + kTitle1, kText1, kIconUrl1, kImageUrl1, kAppId1, kKey1, kUnread));
|
| + notifier.AddForTest(n1.Pass());
|
| +
|
| + EXPECT_EQ(static_cast<size_t>(0),
|
| + notification_manager()->added_notifications());
|
| +
|
| + // Call SetAddedAppIds.
|
| + std::vector<std::string> added_app_ids;
|
| + added_app_ids.push_back(std::string(kAppId1));
|
| + notifier.SetAddedAppIds(added_app_ids);
|
| +
|
| + // Verify the notification was added by the notification_manager.
|
| + // We see one welcome notification and one new notification.
|
| + EXPECT_EQ(static_cast<size_t>(2),
|
| + notification_manager()->added_notifications());
|
| }
|
|
|
| +TEST_F(ChromeNotifierServiceTest, SetRemovedAppIdsTest) {
|
| + ChromeNotifierService notifier(profile_.get(), notification_manager());
|
| + notifier.set_avoid_bitmap_fetching_for_test(true);
|
| +
|
| + // Add some notifications to our notification list.
|
| + scoped_ptr<SyncedNotification> n1(CreateNotification(
|
| + kTitle1, kText1, kIconUrl1, kImageUrl1, kAppId1, kKey1, kUnread));
|
| + notifier.AddForTest(n1.Pass());
|
| +
|
| + // Call SetRemovedAppIds.
|
| + std::vector<std::string> removed_app_ids;
|
| + removed_app_ids.push_back(std::string(kAppId1));
|
| + notifier.SetRemovedAppIds(removed_app_ids);
|
| +
|
| + // Verify the notification was "removed" in the notification manager.
|
| + EXPECT_EQ(std::string(kKey1), notification_manager()->dismissed_id());
|
| +}
|
| +
|
| +// TODO(petewil): Add a test that we do *not* get a welcome dialog unless we
|
| +// have a valid app info for the notification.
|
| +
|
| } // namespace notifier
|
|
|