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

Side by Side Diff: content/child/notifications/pending_notifications_tracker_unittest.cc

Issue 1750083004: Add badge to web notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test. Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/notifications/pending_notifications_tracker.h" 5 #include "content/child/notifications/pending_notifications_tracker.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 19 matching lines...) Expand all
30 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h" 30 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h"
31 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onDelegate.h" 31 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onDelegate.h"
32 #include "third_party/skia/include/core/SkBitmap.h" 32 #include "third_party/skia/include/core/SkBitmap.h"
33 #include "url/gurl.h" 33 #include "url/gurl.h"
34 34
35 namespace content { 35 namespace content {
36 36
37 namespace { 37 namespace {
38 38
39 const char kBaseUrl[] = "http://test.com/"; 39 const char kBaseUrl[] = "http://test.com/";
40 const char kIcon48x48[] = "48x48.png";
40 const char kIcon100x100[] = "100x100.png"; 41 const char kIcon100x100[] = "100x100.png";
41 const char kIcon110x110[] = "110x110.png"; 42 const char kIcon110x110[] = "110x110.png";
42 const char kIcon120x120[] = "120x120.png"; 43 const char kIcon120x120[] = "120x120.png";
43 const char kIcon500x500[] = "500x500.png"; 44 const char kIcon500x500[] = "500x500.png";
44 45
45 class FakeNotificationDelegate : public blink::WebNotificationDelegate { 46 class FakeNotificationDelegate : public blink::WebNotificationDelegate {
46 public: 47 public:
47 void dispatchClickEvent() override {} 48 void dispatchClickEvent() override {}
48 void dispatchShowEvent() override {} 49 void dispatchShowEvent() override {}
49 void dispatchErrorEvent() override {} 50 void dispatchErrorEvent() override {}
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 base::MessageLoop message_loop_; 135 base::MessageLoop message_loop_;
135 scoped_ptr<PendingNotificationsTracker> tracker_; 136 scoped_ptr<PendingNotificationsTracker> tracker_;
136 std::vector<NotificationResources> resources_; 137 std::vector<NotificationResources> resources_;
137 138
138 DISALLOW_COPY_AND_ASSIGN(PendingNotificationsTrackerTest); 139 DISALLOW_COPY_AND_ASSIGN(PendingNotificationsTrackerTest);
139 }; 140 };
140 141
141 TEST_F(PendingNotificationsTrackerTest, OneNotificationMultipleResources) { 142 TEST_F(PendingNotificationsTrackerTest, OneNotificationMultipleResources) {
142 blink::WebNotificationData notification_data; 143 blink::WebNotificationData notification_data;
143 notification_data.icon = RegisterMockedURL(kIcon100x100); 144 notification_data.icon = RegisterMockedURL(kIcon100x100);
145 notification_data.badge = RegisterMockedURL(kIcon48x48);
144 notification_data.actions = 146 notification_data.actions =
145 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(2)); 147 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(2));
146 notification_data.actions[0].icon = RegisterMockedURL(kIcon110x110); 148 notification_data.actions[0].icon = RegisterMockedURL(kIcon110x110);
147 notification_data.actions[1].icon = RegisterMockedURL(kIcon120x120); 149 notification_data.actions[1].icon = RegisterMockedURL(kIcon120x120);
148 150
149 tracker()->FetchResources( 151 tracker()->FetchResources(
150 notification_data, nullptr /* delegate */, 152 notification_data, nullptr /* delegate */,
151 base::Bind(&PendingNotificationsTrackerTest::DidFetchResources, 153 base::Bind(&PendingNotificationsTrackerTest::DidFetchResources,
152 base::Unretained(this), 0 /* index */)); 154 base::Unretained(this), 0 /* index */));
153 155
154 ASSERT_EQ(1u, CountPendingNotifications()); 156 ASSERT_EQ(1u, CountPendingNotifications());
155 ASSERT_EQ(0u, CountResources()); 157 ASSERT_EQ(0u, CountResources());
156 158
157 base::RunLoop().RunUntilIdle(); 159 base::RunLoop().RunUntilIdle();
158 UnitTestSupport()->serveAsynchronousMockedRequests(); 160 UnitTestSupport()->serveAsynchronousMockedRequests();
159 161
160 ASSERT_EQ(0u, CountPendingNotifications()); 162 ASSERT_EQ(0u, CountPendingNotifications());
161 ASSERT_EQ(1u, CountResources()); 163 ASSERT_EQ(1u, CountResources());
162 164
163 ASSERT_FALSE(GetResources(0u)->notification_icon.drawsNothing()); 165 NotificationResources* resources = GetResources(0u);
164 ASSERT_EQ(100, GetResources(0u)->notification_icon.width());
165 166
166 ASSERT_EQ(2u, GetResources(0u)->action_icons.size()); 167 ASSERT_FALSE(resources->notification_icon.drawsNothing());
167 ASSERT_FALSE(GetResources(0u)->action_icons[0].drawsNothing()); 168 ASSERT_EQ(100, resources->notification_icon.width());
168 ASSERT_EQ(110, GetResources(0u)->action_icons[0].width()); 169
169 ASSERT_FALSE(GetResources(0u)->action_icons[1].drawsNothing()); 170 ASSERT_FALSE(resources->badge.drawsNothing());
170 ASSERT_EQ(120, GetResources(0u)->action_icons[1].width()); 171 ASSERT_EQ(48, resources->badge.width());
172
173 ASSERT_EQ(2u, resources->action_icons.size());
174 ASSERT_FALSE(resources->action_icons[0].drawsNothing());
175 ASSERT_EQ(110, resources->action_icons[0].width());
176 ASSERT_FALSE(resources->action_icons[1].drawsNothing());
177 ASSERT_EQ(120, resources->action_icons[1].width());
171 } 178 }
172 179
173 TEST_F(PendingNotificationsTrackerTest, LargeIconsAreScaledDown) { 180 TEST_F(PendingNotificationsTrackerTest, LargeIconsAreScaledDown) {
174 blink::WebNotificationData notification_data; 181 blink::WebNotificationData notification_data;
175 notification_data.icon = RegisterMockedURL(kIcon500x500); 182 notification_data.icon = RegisterMockedURL(kIcon500x500);
183 notification_data.badge = notification_data.icon;
176 notification_data.actions = 184 notification_data.actions =
177 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(1)); 185 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(1));
178 notification_data.actions[0].icon = notification_data.icon; 186 notification_data.actions[0].icon = notification_data.icon;
179 187
180 tracker()->FetchResources( 188 tracker()->FetchResources(
181 notification_data, nullptr /* delegate */, 189 notification_data, nullptr /* delegate */,
182 base::Bind(&PendingNotificationsTrackerTest::DidFetchResources, 190 base::Bind(&PendingNotificationsTrackerTest::DidFetchResources,
183 base::Unretained(this), 0 /* index */)); 191 base::Unretained(this), 0 /* index */));
184 192
185 ASSERT_EQ(1u, CountPendingNotifications()); 193 ASSERT_EQ(1u, CountPendingNotifications());
186 ASSERT_EQ(0u, CountResources()); 194 ASSERT_EQ(0u, CountResources());
187 195
188 base::RunLoop().RunUntilIdle(); 196 base::RunLoop().RunUntilIdle();
189 UnitTestSupport()->serveAsynchronousMockedRequests(); 197 UnitTestSupport()->serveAsynchronousMockedRequests();
190 198
191 ASSERT_EQ(0u, CountPendingNotifications()); 199 ASSERT_EQ(0u, CountPendingNotifications());
192 ASSERT_EQ(1u, CountResources()); 200 ASSERT_EQ(1u, CountResources());
193 201
194 ASSERT_FALSE(GetResources(0u)->notification_icon.drawsNothing()); 202 NotificationResources* resources = GetResources(0u);
203
204 ASSERT_FALSE(resources->notification_icon.drawsNothing());
195 ASSERT_EQ(kPlatformNotificationMaxIconSizePx, 205 ASSERT_EQ(kPlatformNotificationMaxIconSizePx,
196 GetResources(0u)->notification_icon.width()); 206 resources->notification_icon.width());
197 ASSERT_EQ(kPlatformNotificationMaxIconSizePx, 207 ASSERT_EQ(kPlatformNotificationMaxIconSizePx,
198 GetResources(0u)->notification_icon.height()); 208 resources->notification_icon.height());
199 209
200 ASSERT_EQ(1u, GetResources(0u)->action_icons.size()); 210 ASSERT_FALSE(resources->badge.drawsNothing());
201 ASSERT_FALSE(GetResources(0u)->action_icons[0].drawsNothing()); 211 ASSERT_EQ(kPlatformNotificationMaxBadgeSizePx, resources->badge.width());
212 ASSERT_EQ(kPlatformNotificationMaxBadgeSizePx, resources->badge.height());
213
214 ASSERT_EQ(1u, resources->action_icons.size());
215 ASSERT_FALSE(resources->action_icons[0].drawsNothing());
202 ASSERT_EQ(kPlatformNotificationMaxActionIconSizePx, 216 ASSERT_EQ(kPlatformNotificationMaxActionIconSizePx,
203 GetResources(0u)->action_icons[0].width()); 217 resources->action_icons[0].width());
204 ASSERT_EQ(kPlatformNotificationMaxActionIconSizePx, 218 ASSERT_EQ(kPlatformNotificationMaxActionIconSizePx,
205 GetResources(0u)->action_icons[0].height()); 219 resources->action_icons[0].height());
206 } 220 }
207 221
208 TEST_F(PendingNotificationsTrackerTest, TwoNotifications) { 222 TEST_F(PendingNotificationsTrackerTest, TwoNotifications) {
209 blink::WebNotificationData notification_data; 223 blink::WebNotificationData notification_data;
210 notification_data.icon = RegisterMockedURL(kIcon100x100); 224 notification_data.icon = RegisterMockedURL(kIcon100x100);
211 225
212 blink::WebNotificationData notification_data_2; 226 blink::WebNotificationData notification_data_2;
213 notification_data_2.icon = RegisterMockedURL(kIcon110x110); 227 notification_data_2.icon = RegisterMockedURL(kIcon110x110);
214 228
215 tracker()->FetchResources( 229 tracker()->FetchResources(
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 290
277 base::RunLoop().RunUntilIdle(); 291 base::RunLoop().RunUntilIdle();
278 tracker()->CancelResourceFetches(&delegate); 292 tracker()->CancelResourceFetches(&delegate);
279 293
280 ASSERT_EQ(0u, CountPendingNotifications()); 294 ASSERT_EQ(0u, CountPendingNotifications());
281 ASSERT_EQ(0u, CountDelegates()); 295 ASSERT_EQ(0u, CountDelegates());
282 ASSERT_EQ(0u, CountResources()); 296 ASSERT_EQ(0u, CountResources());
283 } 297 }
284 298
285 } // namespace content 299 } // namespace content
OLDNEW
« no previous file with comments | « content/child/notifications/pending_notification.cc ('k') | content/common/notification_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698