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

Side by Side Diff: content/child/notifications/notification_data_conversions_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/notification_data_conversions.h" 5 #include "content/child/notifications/notification_data_conversions.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "content/public/common/platform_notification_data.h" 12 #include "content/public/common/platform_notification_data.h"
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/WebKit/public/platform/WebString.h" 15 #include "third_party/WebKit/public/platform/WebString.h"
16 #include "third_party/WebKit/public/platform/WebURL.h" 16 #include "third_party/WebKit/public/platform/WebURL.h"
17 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h" 17 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h"
18 18
19 namespace content { 19 namespace content {
20 20
21 const char kNotificationTitle[] = "My Notification"; 21 const char kNotificationTitle[] = "My Notification";
22 const char kNotificationLang[] = "nl"; 22 const char kNotificationLang[] = "nl";
23 const char kNotificationBody[] = "Hello, world!"; 23 const char kNotificationBody[] = "Hello, world!";
24 const char kNotificationTag[] = "my_tag"; 24 const char kNotificationTag[] = "my_tag";
25 const char kNotificationIconUrl[] = "https://example.com/icon.png"; 25 const char kNotificationIconUrl[] = "https://example.com/icon.png";
26 const char kNotificationBadgeUrl[] = "https://example.com/badge.png";
26 const int kNotificationVibrationPattern[] = {100, 200, 300}; 27 const int kNotificationVibrationPattern[] = {100, 200, 300};
27 const double kNotificationTimestamp = 621046800.; 28 const double kNotificationTimestamp = 621046800.;
28 const unsigned char kNotificationData[] = {0xdf, 0xff, 0x0, 0x0, 0xff, 0xdf}; 29 const unsigned char kNotificationData[] = {0xdf, 0xff, 0x0, 0x0, 0xff, 0xdf};
29 const char kAction1Name[] = "btn1"; 30 const char kAction1Name[] = "btn1";
30 const char kAction1Title[] = "Button 1"; 31 const char kAction1Title[] = "Button 1";
31 const char kAction1IconUrl[] = "https://example.com/action_icon_1.png"; 32 const char kAction1IconUrl[] = "https://example.com/action_icon_1.png";
32 const char kAction2Name[] = "btn2"; 33 const char kAction2Name[] = "btn2";
33 const char kAction2Title[] = "Button 2"; 34 const char kAction2Title[] = "Button 2";
34 const char kAction2IconUrl[] = "https://example.com/action_icon_2.png"; 35 const char kAction2IconUrl[] = "https://example.com/action_icon_2.png";
35 36
36 TEST(NotificationDataConversionsTest, ToPlatformNotificationData) { 37 TEST(NotificationDataConversionsTest, ToPlatformNotificationData) {
37 blink::WebNotificationData web_data; 38 blink::WebNotificationData web_data;
38 web_data.title = blink::WebString::fromUTF8(kNotificationTitle); 39 web_data.title = blink::WebString::fromUTF8(kNotificationTitle);
39 web_data.direction = blink::WebNotificationData::DirectionLeftToRight; 40 web_data.direction = blink::WebNotificationData::DirectionLeftToRight;
40 web_data.lang = blink::WebString::fromUTF8(kNotificationLang); 41 web_data.lang = blink::WebString::fromUTF8(kNotificationLang);
41 web_data.body = blink::WebString::fromUTF8(kNotificationBody); 42 web_data.body = blink::WebString::fromUTF8(kNotificationBody);
42 web_data.tag = blink::WebString::fromUTF8(kNotificationTag); 43 web_data.tag = blink::WebString::fromUTF8(kNotificationTag);
43 web_data.icon = blink::WebURL(GURL(kNotificationIconUrl)); 44 web_data.icon = blink::WebURL(GURL(kNotificationIconUrl));
45 web_data.badge = blink::WebURL(GURL(kNotificationBadgeUrl));
44 web_data.vibrate = blink::WebVector<int>( 46 web_data.vibrate = blink::WebVector<int>(
45 kNotificationVibrationPattern, arraysize(kNotificationVibrationPattern)); 47 kNotificationVibrationPattern, arraysize(kNotificationVibrationPattern));
46 web_data.timestamp = kNotificationTimestamp; 48 web_data.timestamp = kNotificationTimestamp;
47 web_data.renotify = true; 49 web_data.renotify = true;
48 web_data.silent = true; 50 web_data.silent = true;
49 web_data.requireInteraction = true; 51 web_data.requireInteraction = true;
50 web_data.data = 52 web_data.data =
51 blink::WebVector<char>(kNotificationData, arraysize(kNotificationData)); 53 blink::WebVector<char>(kNotificationData, arraysize(kNotificationData));
52 54
53 web_data.actions = 55 web_data.actions =
54 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(2)); 56 blink::WebVector<blink::WebNotificationAction>(static_cast<size_t>(2));
55 web_data.actions[0].action = blink::WebString::fromUTF8(kAction1Name); 57 web_data.actions[0].action = blink::WebString::fromUTF8(kAction1Name);
56 web_data.actions[0].title = blink::WebString::fromUTF8(kAction1Title); 58 web_data.actions[0].title = blink::WebString::fromUTF8(kAction1Title);
57 web_data.actions[0].icon = blink::WebURL(GURL(kAction1IconUrl)); 59 web_data.actions[0].icon = blink::WebURL(GURL(kAction1IconUrl));
58 web_data.actions[1].action = blink::WebString::fromUTF8(kAction2Name); 60 web_data.actions[1].action = blink::WebString::fromUTF8(kAction2Name);
59 web_data.actions[1].title = blink::WebString::fromUTF8(kAction2Title); 61 web_data.actions[1].title = blink::WebString::fromUTF8(kAction2Title);
60 web_data.actions[1].icon = blink::WebURL(GURL(kAction2IconUrl)); 62 web_data.actions[1].icon = blink::WebURL(GURL(kAction2IconUrl));
61 63
62 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); 64 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data);
63 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title); 65 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title);
64 EXPECT_EQ(PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT, 66 EXPECT_EQ(PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT,
65 platform_data.direction); 67 platform_data.direction);
66 EXPECT_EQ(kNotificationLang, platform_data.lang); 68 EXPECT_EQ(kNotificationLang, platform_data.lang);
67 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body); 69 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body);
68 EXPECT_EQ(kNotificationTag, platform_data.tag); 70 EXPECT_EQ(kNotificationTag, platform_data.tag);
69 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec()); 71 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec());
72 EXPECT_EQ(kNotificationBadgeUrl, platform_data.badge.spec());
70 EXPECT_TRUE(platform_data.renotify); 73 EXPECT_TRUE(platform_data.renotify);
71 EXPECT_TRUE(platform_data.silent); 74 EXPECT_TRUE(platform_data.silent);
72 EXPECT_TRUE(platform_data.require_interaction); 75 EXPECT_TRUE(platform_data.require_interaction);
73 76
74 EXPECT_THAT(platform_data.vibration_pattern, 77 EXPECT_THAT(platform_data.vibration_pattern,
75 testing::ElementsAreArray(kNotificationVibrationPattern)); 78 testing::ElementsAreArray(kNotificationVibrationPattern));
76 79
77 EXPECT_DOUBLE_EQ(kNotificationTimestamp, platform_data.timestamp.ToJsTime()); 80 EXPECT_DOUBLE_EQ(kNotificationTimestamp, platform_data.timestamp.ToJsTime());
78 ASSERT_EQ(web_data.data.size(), platform_data.data.size()); 81 ASSERT_EQ(web_data.data.size(), platform_data.data.size());
79 for (size_t i = 0; i < web_data.data.size(); ++i) 82 for (size_t i = 0; i < web_data.data.size(); ++i)
(...skipping 15 matching lines...) Expand all
95 std::vector<char> developer_data( 98 std::vector<char> developer_data(
96 kNotificationData, kNotificationData + arraysize(kNotificationData)); 99 kNotificationData, kNotificationData + arraysize(kNotificationData));
97 100
98 PlatformNotificationData platform_data; 101 PlatformNotificationData platform_data;
99 platform_data.title = base::ASCIIToUTF16(kNotificationTitle); 102 platform_data.title = base::ASCIIToUTF16(kNotificationTitle);
100 platform_data.direction = PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT; 103 platform_data.direction = PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT;
101 platform_data.lang = kNotificationLang; 104 platform_data.lang = kNotificationLang;
102 platform_data.body = base::ASCIIToUTF16(kNotificationBody); 105 platform_data.body = base::ASCIIToUTF16(kNotificationBody);
103 platform_data.tag = kNotificationTag; 106 platform_data.tag = kNotificationTag;
104 platform_data.icon = GURL(kNotificationIconUrl); 107 platform_data.icon = GURL(kNotificationIconUrl);
108 platform_data.badge = GURL(kNotificationBadgeUrl);
105 platform_data.vibration_pattern = vibration_pattern; 109 platform_data.vibration_pattern = vibration_pattern;
106 platform_data.timestamp = base::Time::FromJsTime(kNotificationTimestamp); 110 platform_data.timestamp = base::Time::FromJsTime(kNotificationTimestamp);
107 platform_data.renotify = true; 111 platform_data.renotify = true;
108 platform_data.silent = true; 112 platform_data.silent = true;
109 platform_data.require_interaction = true; 113 platform_data.require_interaction = true;
110 platform_data.data = developer_data; 114 platform_data.data = developer_data;
111 platform_data.actions.resize(2); 115 platform_data.actions.resize(2);
112 platform_data.actions[0].action = kAction1Name; 116 platform_data.actions[0].action = kAction1Name;
113 platform_data.actions[0].title = base::ASCIIToUTF16(kAction1Title); 117 platform_data.actions[0].title = base::ASCIIToUTF16(kAction1Title);
114 platform_data.actions[0].icon = GURL(kAction1IconUrl); 118 platform_data.actions[0].icon = GURL(kAction1IconUrl);
115 platform_data.actions[1].action = kAction2Name; 119 platform_data.actions[1].action = kAction2Name;
116 platform_data.actions[1].title = base::ASCIIToUTF16(kAction2Title); 120 platform_data.actions[1].title = base::ASCIIToUTF16(kAction2Title);
117 platform_data.actions[1].icon = GURL(kAction2IconUrl); 121 platform_data.actions[1].icon = GURL(kAction2IconUrl);
118 122
119 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); 123 blink::WebNotificationData web_data = ToWebNotificationData(platform_data);
120 EXPECT_EQ(kNotificationTitle, web_data.title); 124 EXPECT_EQ(kNotificationTitle, web_data.title);
121 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, 125 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight,
122 web_data.direction); 126 web_data.direction);
123 EXPECT_EQ(kNotificationLang, web_data.lang); 127 EXPECT_EQ(kNotificationLang, web_data.lang);
124 EXPECT_EQ(kNotificationBody, web_data.body); 128 EXPECT_EQ(kNotificationBody, web_data.body);
125 EXPECT_EQ(kNotificationTag, web_data.tag); 129 EXPECT_EQ(kNotificationTag, web_data.tag);
126 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string()); 130 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string());
131 EXPECT_EQ(kNotificationBadgeUrl, web_data.badge.string());
127 132
128 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size()); 133 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size());
129 for (size_t i = 0; i < vibration_pattern.size(); ++i) 134 for (size_t i = 0; i < vibration_pattern.size(); ++i)
130 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]); 135 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]);
131 136
132 EXPECT_DOUBLE_EQ(kNotificationTimestamp, web_data.timestamp); 137 EXPECT_DOUBLE_EQ(kNotificationTimestamp, web_data.timestamp);
133 EXPECT_TRUE(web_data.renotify); 138 EXPECT_TRUE(web_data.renotify);
134 EXPECT_TRUE(web_data.silent); 139 EXPECT_TRUE(web_data.silent);
135 EXPECT_TRUE(web_data.requireInteraction); 140 EXPECT_TRUE(web_data.requireInteraction);
136 141
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 blink::WebNotificationData web_data; 214 blink::WebNotificationData web_data;
210 web_data.timestamp = 0; 215 web_data.timestamp = 0;
211 216
212 blink::WebNotificationData copied_data = 217 blink::WebNotificationData copied_data =
213 ToWebNotificationData(ToPlatformNotificationData(web_data)); 218 ToWebNotificationData(ToPlatformNotificationData(web_data));
214 EXPECT_EQ(web_data.timestamp, copied_data.timestamp); 219 EXPECT_EQ(web_data.timestamp, copied_data.timestamp);
215 } 220 }
216 } 221 }
217 222
218 } // namespace content 223 } // namespace content
OLDNEW
« no previous file with comments | « content/child/notifications/notification_data_conversions.cc ('k') | content/child/notifications/notification_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698