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

Unified Diff: chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc

Issue 12717010: Widen Data Pipes and newer protobufs (Closed) Base URL: http://git.chromium.org/chromium/src.git@newProtobufs
Patch Set: Synced Notifications newer protobufs - improve unit test robustness Created 7 years, 9 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
Index: chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc
diff --git a/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc b/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc
index f77af5e53281618b03082c17036b3def5d3abbb0..3cc936d27544a3d6632d77c9fab83ae099f5be3b 100644
--- a/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc
+++ b/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc
@@ -19,6 +19,7 @@ using sync_pb::SyncedNotificationSpecifics;
namespace {
const int64 kFakeCreationTime = 42;
+const int kPriority = 1;
const char kTitle1[] = "New appointment at 2:15";
const char kTitle2[] = "Email from Mark: Upcoming Ski trip";
@@ -36,6 +37,22 @@ const char kIconUrl3[] = "http://www.google.com/icon3.jpg";
const char kImageUrl1[] = "http://www.google.com/image1.jpg";
const char kImageUrl2[] = "http://www.google.com/image2.jpg";
const char kImageUrl3[] = "http://www.google.com/image3.jpg";
+const char kDefaultDestinationTitle[] = "Open web page";
+const char kDefaultDestinationIconUrl[] = "http://www.google.com/image4.jpg";
+const char kDefaultDestinationUrl[] = "http://www.google.com";
+const char kButtonOneTitle[] = "Read";
+const char kButtonOneIconUrl[] = "http://www.google.com/image5.jpg";
+const char kButtonOneUrl[] = "http://www.google.com/do-something1";
+const char kButtonTwoTitle[] = "Reply";
+const char kButtonTwoIconUrl[] = "http://www.google.com/image6.jpg";
+const char kButtonTwoUrl[] = "http://www.google.com/do-something2";
+const char kContainedTitle1[] = "Today's Picnic moved";
+const char kContainedTitle2[] = "Group Run Today";
+const char kContainedTitle3[] = "Starcraft Tonight";
+const char kContainedMessage1[] = "Due to rain, we will be inside the cafe.";
+const char kContainedMessage2[] = "Meet at noon in the Gym.";
+const char kContainedMessage3[] = "Let's play starcraft tonight on the LAN.";
+
const sync_pb::CoalescedSyncedNotification_ReadState kRead =
sync_pb::CoalescedSyncedNotification_ReadState_READ;
const sync_pb::CoalescedSyncedNotification_ReadState kUnread =
@@ -54,11 +71,11 @@ class SyncedNotificationTest : public testing::Test {
virtual void SetUp() OVERRIDE {
sync_data1_ = CreateSyncData(kTitle1, kText1, kIconUrl1, kImageUrl1,
kAppId1, kKey1, kUnread);
- sync_data2_ = CreateSyncData(kTitle2, kText2, kIconUrl2, kImageUrl1,
+ sync_data2_ = CreateSyncData(kTitle2, kText2, kIconUrl2, kImageUrl2,
kAppId2, kKey2, kUnread);
// Notification 3 will have the same ID as notification1, but different
// data inside.
- sync_data3_ = CreateSyncData(kTitle3, kText3, kIconUrl3, kImageUrl1,
+ sync_data3_ = CreateSyncData(kTitle3, kText3, kIconUrl3, kImageUrl3,
kAppId1, kKey1, kUnread);
// Notification 4 will be the same as 1, but the read state will be 'read'.
sync_data4_ = CreateSyncData(kTitle1, kText1, kIconUrl1, kImageUrl1,
@@ -108,17 +125,24 @@ class SyncedNotificationTest : public testing::Test {
set_key(key);
specifics->mutable_coalesced_notification()->
+ set_priority(static_cast<sync_pb::CoalescedSyncedNotification_Priority>(
+ kPriority));
+
+ // Set the title.
+ specifics->mutable_coalesced_notification()->
mutable_render_info()->
mutable_expanded_info()->
mutable_simple_expanded_layout()->
set_title(title);
+ // Set the text.
specifics->mutable_coalesced_notification()->
mutable_render_info()->
mutable_expanded_info()->
mutable_simple_expanded_layout()->
set_text(text);
+ // Add the collapsed info and set the app_icon_url on it.
specifics->mutable_coalesced_notification()->
mutable_render_info()->
mutable_expanded_info()->
@@ -131,6 +155,7 @@ class SyncedNotificationTest : public testing::Test {
mutable_app_icon()->
set_url(app_icon_url);
+ // Add the media object and set the image url on it.
specifics->mutable_coalesced_notification()->
mutable_render_info()->
mutable_expanded_info()->
@@ -148,13 +173,150 @@ class SyncedNotificationTest : public testing::Test {
set_creation_time_msec(kFakeCreationTime);
specifics->mutable_coalesced_notification()->
- add_notification();
+ set_read_state(read_state);
+ // Contained notification one.
+ // We re-use the collapsed info we added for the app_icon_url,
+ // so no need to create another one here.
specifics->mutable_coalesced_notification()->
- set_read_state(read_state);
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(0)->
+ mutable_simple_collapsed_layout()->
+ set_heading(kContainedTitle1);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(0)->
+ mutable_simple_collapsed_layout()->
+ set_description(kContainedMessage1);
+
+ // Contained notification two.
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ add_collapsed_info();
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(1)->
+ mutable_simple_collapsed_layout()->
+ set_heading(kContainedTitle2);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(1)->
+ mutable_simple_collapsed_layout()->
+ set_description(kContainedMessage2);
+
+ // Contained notification three.
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ add_collapsed_info();
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(2)->
+ mutable_simple_collapsed_layout()->
+ set_heading(kContainedTitle3);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_expanded_info()->
+ mutable_collapsed_info(2)->
+ mutable_simple_collapsed_layout()->
+ set_description(kContainedMessage3);
+
+ // Default Destination.
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_default_destination()->
+ set_text(kDefaultDestinationTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_default_destination()->
+ mutable_icon()->
+ set_url(kDefaultDestinationIconUrl);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_default_destination()->
+ mutable_icon()->
+ set_alt_text(kDefaultDestinationTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_default_destination()->
+ set_url(kDefaultDestinationUrl);
+
+ // Buttons are represented as targets.
+
+ // Button One.
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ add_target();
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(0)->
+ mutable_action()->
+ set_text(kButtonOneTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(0)->
+ mutable_action()->
+ mutable_icon()->
+ set_url(kButtonOneIconUrl);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(0)->
+ mutable_action()->
+ mutable_icon()->
+ set_alt_text(kButtonOneTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(0)->
+ mutable_action()->
+ set_url(kButtonOneUrl);
+
+ // Button Two.
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ add_target();
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(1)->
+ mutable_action()->
+ set_text(kButtonTwoTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(1)->
+ mutable_action()->
+ mutable_icon()->
+ set_url(kButtonTwoIconUrl);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(1)->
+ mutable_action()->
+ mutable_icon()->
+ set_alt_text(kButtonTwoTitle);
+ specifics->mutable_coalesced_notification()->
+ mutable_render_info()->
+ mutable_collapsed_info()->
+ mutable_target(1)->
+ mutable_action()->
+ set_url(kButtonTwoUrl);
- // TODO(petewil): Improve ctor to pass in an image and type so this test can
- // pass on actual data.
SyncData sync_data = SyncData::CreateLocalData(
"syncer::SYNCED_NOTIFICATIONS",
"SyncedNotificationTest",
@@ -170,28 +332,28 @@ class SyncedNotificationTest : public testing::Test {
// test simple accessors
TEST_F(SyncedNotificationTest, GetAppIdTest) {
- std::string found_app_id = notification1_->app_id();
+ std::string found_app_id = notification1_->GetAppId();
std::string expected_app_id(kAppId1);
EXPECT_EQ(found_app_id, expected_app_id);
}
TEST_F(SyncedNotificationTest, GetKeyTest) {
- std::string found_key = notification1_->key();
+ std::string found_key = notification1_->GetKey();
std::string expected_key(kKey1);
EXPECT_EQ(expected_key, found_key);
}
TEST_F(SyncedNotificationTest, GetTitleTest) {
- std::string found_title = notification1_->title();
+ std::string found_title = notification1_->GetTitle();
std::string expected_title(kTitle1);
EXPECT_EQ(expected_title, found_title);
}
TEST_F(SyncedNotificationTest, GetIconURLTest) {
- std::string found_icon_url = notification1_->app_icon_url().spec();
+ std::string found_icon_url = notification1_->GetAppIconUrl().spec();
std::string expected_icon_url(kIconUrl1);
EXPECT_EQ(expected_icon_url, found_icon_url);
@@ -199,13 +361,13 @@ TEST_F(SyncedNotificationTest, GetIconURLTest) {
TEST_F(SyncedNotificationTest, GetReadStateTest) {
SyncedNotification::ReadState found_state1 =
- notification1_->read_state();
+ notification1_->GetReadState();
SyncedNotification::ReadState expected_state1(SyncedNotification::kUnread);
EXPECT_EQ(expected_state1, found_state1);
SyncedNotification::ReadState found_state2 =
- notification4_->read_state();
+ notification4_->GetReadState();
SyncedNotification::ReadState expected_state2(SyncedNotification::kDismissed);
EXPECT_EQ(expected_state2, found_state2);
@@ -214,7 +376,7 @@ TEST_F(SyncedNotificationTest, GetReadStateTest) {
// TODO(petewil): Improve ctor to pass in an image and type so this test can
// pass on actual data.
TEST_F(SyncedNotificationTest, GetImageURLTest) {
- std::string found_image_url = notification1_->image_url().spec();
+ std::string found_image_url = notification1_->GetImageUrl().spec();
std::string expected_image_url = kImageUrl1;
EXPECT_EQ(expected_image_url, found_image_url);
@@ -222,26 +384,80 @@ TEST_F(SyncedNotificationTest, GetImageURLTest) {
// TODO(petewil): test with a multi-line body
TEST_F(SyncedNotificationTest, GetTextTest) {
- std::string found_text = notification1_->text();
+ std::string found_text = notification1_->GetText();
std::string expected_text(kText1);
EXPECT_EQ(expected_text, found_text);
}
-TEST_F(SyncedNotificationTest, GetNotificationIdTest) {
- std::string found_id = notification1_->notification_id();
- std::string expected_id(kKey1);
+TEST_F(SyncedNotificationTest, GetCreationTimeTest) {
+ uint64 found_time = notification1_->GetCreationTime();
+ EXPECT_EQ(kFakeCreationTime, found_time);
+}
+
+TEST_F(SyncedNotificationTest, GetPriorityTest) {
+ double found_priority = notification1_->GetPriority();
+ EXPECT_EQ(static_cast<double>(kPriority), found_priority);
+}
+
+TEST_F(SyncedNotificationTest, GetButtonCountTest) {
+ int found_button_count = notification1_->GetButtonCount();
+ EXPECT_EQ(2, found_button_count);
+}
+
+TEST_F(SyncedNotificationTest, GetNotificationCountTest) {
+ int found_notification_count = notification1_->GetNotificationCount();
+ EXPECT_EQ(3, found_notification_count);
+}
+
+TEST_F(SyncedNotificationTest, GetDefaultDestinationDataTest) {
+ std::string default_destination_title =
+ notification1_->GetDefaultDestinationTitle();
+ std::string default_destination_icon_url =
+ notification1_->GetDefaultDestinationIconUrl();
+ std::string default_destination_url =
+ notification1_->GetDefaultDestinationUrl();
+ EXPECT_EQ(std::string(kDefaultDestinationTitle), default_destination_title);
+ EXPECT_EQ(std::string(kDefaultDestinationIconUrl),
+ default_destination_icon_url);
+ EXPECT_EQ(std::string(kDefaultDestinationUrl), default_destination_url);
+}
- EXPECT_EQ(expected_id, found_id);
+TEST_F(SyncedNotificationTest, GetButtonDataTest) {
+ std::string button_one_title = notification1_->GetButtonOneTitle();
+ std::string button_one_icon_url = notification1_->GetButtonOneIconUrl();
+ std::string button_one_url = notification1_->GetButtonOneUrl();
+ std::string button_two_title = notification1_->GetButtonTwoTitle();
+ std::string button_two_icon_url = notification1_->GetButtonTwoIconUrl();
+ std::string button_two_url = notification1_->GetButtonTwoUrl();
+ EXPECT_EQ(std::string(kButtonOneTitle), button_one_title);
+ EXPECT_EQ(std::string(kButtonOneIconUrl), button_one_icon_url);
+ EXPECT_EQ(std::string(kButtonOneUrl), button_one_url);
+ EXPECT_EQ(std::string(kButtonTwoTitle), button_two_title);
+ EXPECT_EQ(std::string(kButtonTwoIconUrl), button_two_icon_url);
+ EXPECT_EQ(std::string(kButtonTwoUrl), button_two_url);
}
-// test that the ID match function works as we expect
-TEST_F(SyncedNotificationTest, IdMatchesTest) {
- EXPECT_TRUE(notification1_->IdMatches(*notification1_));
- EXPECT_TRUE(notification2_->IdMatches(*notification2_));
- EXPECT_FALSE(notification1_->IdMatches(*notification2_));
- EXPECT_TRUE(notification1_->IdMatches(*notification3_));
- EXPECT_TRUE(notification1_->IdMatches(*notification4_));
+TEST_F(SyncedNotificationTest, ContainedNotificationTest) {
+ std::string notification_title1 =
+ notification1_->GetContainedNotificationTitle(0);
+ std::string notification_title2 =
+ notification1_->GetContainedNotificationTitle(1);
+ std::string notification_title3 =
+ notification1_->GetContainedNotificationTitle(2);
+ std::string notification_message1 =
+ notification1_->GetContainedNotificationMessage(0);
+ std::string notification_message2 =
+ notification1_->GetContainedNotificationMessage(1);
+ std::string notification_message3 =
+ notification1_->GetContainedNotificationMessage(2);
+
+ EXPECT_EQ(std::string(kContainedTitle1), notification_title1);
+ EXPECT_EQ(std::string(kContainedTitle2), notification_title2);
+ EXPECT_EQ(std::string(kContainedTitle3), notification_title3);
+ EXPECT_EQ(std::string(kContainedMessage1), notification_message1);
+ EXPECT_EQ(std::string(kContainedMessage2), notification_message2);
+ EXPECT_EQ(std::string(kContainedMessage3), notification_message3);
}
// test that EqualsIgnoringReadState works as we expect
@@ -260,9 +476,8 @@ TEST_F(SyncedNotificationTest, UpdateTest) {
// update with the sync data from notification2, and ensure they are equal.
notification5->Update(sync_data2_);
EXPECT_TRUE(notification5->EqualsIgnoringReadState(*notification2_));
- EXPECT_EQ(notification5->read_state(), notification2_->read_state());
+ EXPECT_EQ(notification5->GetReadState(), notification2_->GetReadState());
EXPECT_FALSE(notification5->EqualsIgnoringReadState(*notification1_));
}
-// Add a test for set_local_changes and has_local_changes together
-// Add a test for a notification being read and or deleted
+// Add a test for a notification being read and or deleted.

Powered by Google App Engine
This is Rietveld 408576698