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

Side by Side Diff: chrome/browser/notifier/synced_notification_unittest.cc

Issue 11745024: Synced Notification Sync Change Processor (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: SyncedNotifications - first round of CR comment fixes. Created 7 years, 11 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <string>
6
7 #include "chrome/browser/notifier/synced_notification.h"
8
9 #include "sync/api/sync_data.h"
10 #include "sync/protocol/sync.pb.h"
11 #include "sync/protocol/synced_notification_specifics.pb.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 using std::string;
dcheng 2013/01/18 21:56:13 Optional/preference/nit: I'd prefer not to have th
Pete Williamson 2013/01/23 01:45:55 Done.
15 using syncer::SyncData;
16 using sync_pb::SyncedNotification;
17 using sync_pb::EntitySpecifics;
18 using sync_pb::SyncedNotificationSpecifics;
19 using sync_pb::SyncedNotificationRenderInfo_Layout_LayoutType_TITLE_AND_SUBTEXT;
20
21 namespace {
22
23 const unsigned long long FAKE_CREATION_TIME = 42;
dcheng 2013/01/18 21:56:13 Constants are named kFoo. Also use int64 instead o
Pete Williamson 2013/01/23 01:45:55 Done.
24
25 const char TITLE1[] = "New appointment at 2:15";
26 const char TITLE2[] = "Email from Mark: Upcoming Ski trip";
27 const char APP_ID1[] = "fboilmbenheemaomgaeehigklolhkhnf";
28 const char APP_ID2[] = "fbcmoldooppoahjhfflnmljoanccekpf";
29 const char COALESCING_KEY1[] = "foo";
30 const char COALESCING_KEY2[] = "bar";
31 const char BODY1[] = "Space Needle, 12:00 pm";
32 const char BODY2[] = "Stevens Pass is our first choice.";
33 const char ICON_URL1[] = "http://www.google.com/icon1.jpg";
34 const char ICON_URL2[]= "http://www.google.com/icon2.jpg";
35
36 } // namespace
37
38 class SyncedNotificationTest : public testing::Test {
39
dcheng 2013/01/18 21:56:13 Unneeded newline.
Pete Williamson 2013/01/23 01:45:55 Done.
40 public:
41 SyncedNotificationTest() : notification1(NULL),
42 notification2(NULL) {}
43 ~SyncedNotificationTest() {}
44
45 // Methods from testing::Test.
46
47 virtual void SetUp() {
48 syncer::SyncData sync_data1 = CreateSyncData(TITLE1, BODY1, ICON_URL1,
49 APP_ID1, COALESCING_KEY1);
50 syncer::SyncData sync_data2 = CreateSyncData(TITLE2, BODY2, ICON_URL2,
51 APP_ID2, COALESCING_KEY2);
52
53 notification1 = new SyncedNotification(sync_data1);
54 notification2 = new SyncedNotification(sync_data2);
55 }
56
57 virtual void TearDown() {
dcheng 2013/01/18 21:56:13 OVERRIDE on SetUp() and TearDown()?
Pete Williamson 2013/01/23 01:45:55 Done.
Pete Williamson 2013/01/23 01:45:55 Done.
58 }
59
60 // TODO: convert to scoped_ptr
dcheng 2013/01/18 21:56:13 Please fix this before checking in. This will prob
Pete Williamson 2013/01/23 01:45:55 Done.
61 SyncedNotification* notification1;
62 SyncedNotification* notification2;
63
64 private:
65
dcheng 2013/01/18 21:56:13 Remove unnecessary newlines please.
66 // Helper to create syncer::SyncData.
67 static SyncData CreateSyncData(const std::string& title,
68 const std::string& body,
69 const std::string& icon_url,
70 const std::string& app_id,
71 const std::string& coalescing_key) {
72
dcheng 2013/01/18 21:56:13 Ditto on newlines.
Pete Williamson 2013/01/23 01:45:55 Done.
73 // CreateLocalData makes a copy of this, so this can safely live
74 // on the stack.
dcheng 2013/01/18 21:56:13 Unneeded comments.
Pete Williamson 2013/01/23 01:45:55 Removed most of the comments, left a few of the on
75 EntitySpecifics entity_specifics;
76
77 // Get a writeable pointer to the sync notifications specifics inside the
78 // entity specifics.
79 SyncedNotificationSpecifics* specifics =
80 entity_specifics.mutable_synced_notification();
81
82 // Fill out as much of SyncedNotificationSpecifics as the tests need.
83
84 // Set the layout type to Title and Subtext.
85 specifics->mutable_coalesced_notification()->
86 mutable_render_info()->
87 mutable_layout()->
88 set_layout_type(
89 SyncedNotificationRenderInfo_Layout_LayoutType_TITLE_AND_SUBTEXT);
90
91 // Set the APP_ID field in the ID.
92 specifics->mutable_coalesced_notification()->
93 mutable_id()->
94 set_app_id(app_id);
95
96 // Set the coalescing key in the ID.
97 specifics->mutable_coalesced_notification()->
98 mutable_id()->
99 set_coalescing_key(coalescing_key);
100
101 // Set the title (of a title and subtext).
102 specifics->mutable_coalesced_notification()->
103 mutable_render_info()->
104 mutable_layout()->
105 mutable_title_and_subtext_data()->
106 set_title(title);
107
108 // Set the body text.
109 specifics->mutable_coalesced_notification()->
110 mutable_render_info()->
111 mutable_layout()->
112 mutable_title_and_subtext_data()->
113 add_subtext(body);
114
115 // Set the icon URL (of a title and subtext).
116 specifics->mutable_coalesced_notification()->
117 mutable_render_info()->
118 mutable_layout()->
119 mutable_title_and_subtext_data()->
120 mutable_icon()->
121 set_url(icon_url);
122
123 // Set the creation time.
124 specifics->mutable_coalesced_notification()->
125 set_creation_time_msec(FAKE_CREATION_TIME);
126
127 // Set the first notification.
128 specifics->mutable_coalesced_notification()->
129 add_notification();
130
131 SyncData sync_data = SyncData::CreateLocalData(
132 "syncer::SYNCED_NOTIFICATIONS",
133 "SyncedNotificationTest",
134 entity_specifics);
135
136 return sync_data;
137 }
138
139 private:
140 DISALLOW_COPY_AND_ASSIGN(SyncedNotificationTest);
141 };
142
143 // test simple accessors
144
145 TEST_F(SyncedNotificationTest, GetAppIdTest) {
146 string found_app_id = notification1->get_app_id();
147 string expected_app_id(APP_ID1);
148
149 EXPECT_TRUE(found_app_id == expected_app_id);
dcheng 2013/01/18 21:56:13 EXPECT_EQ
150 }
151
152 TEST_F(SyncedNotificationTest, GetCoalescingKeyTest) {
153 string found_key = notification1->get_coalescing_key();
154 string expected_key(COALESCING_KEY1);
155
156 EXPECT_TRUE(found_key == expected_key);
157 }
158
159 TEST_F(SyncedNotificationTest, GetTitleTest) {
160 string found_title = notification1->get_title();
161 string expected_title(TITLE1);
162
163 EXPECT_TRUE(found_title == expected_title);
dcheng 2013/01/18 21:56:13 EXPECT_EQ
164 }
165
166 TEST_F(SyncedNotificationTest, GetIconURLTest) {
167 string found_icon_url = notification1->get_icon_url();
168 string expected_icon_url(ICON_URL1);
169
170 EXPECT_TRUE(found_icon_url == expected_icon_url);
dcheng 2013/01/18 21:56:13 EXPECT_EQ.
Pete Williamson 2013/01/23 01:45:55 Done.
171 }
172
173 // TODO: test with a multi-line body
174 TEST_F(SyncedNotificationTest, GetBodyTest) {
175 string found_body = notification1->get_body();
176 string expected_body(BODY1);
177
178 EXPECT_TRUE(found_body == expected_body);
179 }
180
181 TEST_F(SyncedNotificationTest, GetNotificationIdTest) {
182 string found_id = notification1->get_notification_id();
183 string expected_id(APP_ID1);
184 expected_id += "/";
185 expected_id += COALESCING_KEY1;
186
187 EXPECT_TRUE(found_id == expected_id);
dcheng 2013/01/18 21:56:13 EXPECT_EQ.
Pete Williamson 2013/01/23 01:45:55 Done.
188 }
189
190 // test that equals works as we expect
191 TEST_F(SyncedNotificationTest, EqualsTest) {
192 EXPECT_TRUE(notification1->Equals(*notification1));
193 EXPECT_TRUE(notification2->Equals(*notification2));
194 EXPECT_FALSE(notification1->Equals(*notification2));
195 }
196
197 // Add a test for set_local_changes and has_local_changes together
198 // Add a test for a notification being read and or deleted
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698