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

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

Issue 1267673003: Plumb Blink notification actions to button UI on desktop (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix size_t Created 5 years, 4 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 <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "content/public/common/platform_notification_data.h" 10 #include "content/public/common/platform_notification_data.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "third_party/WebKit/public/platform/WebString.h" 13 #include "third_party/WebKit/public/platform/WebString.h"
14 #include "third_party/WebKit/public/platform/WebURL.h" 14 #include "third_party/WebKit/public/platform/WebURL.h"
15 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h" 15 #include "third_party/WebKit/public/platform/modules/notifications/WebNotificati onData.h"
16 16
17 namespace content { 17 namespace content {
18 18
19 const char kNotificationTitle[] = "My Notification"; 19 const char kNotificationTitle[] = "My Notification";
20 const char kNotificationLang[] = "nl"; 20 const char kNotificationLang[] = "nl";
21 const char kNotificationBody[] = "Hello, world!"; 21 const char kNotificationBody[] = "Hello, world!";
22 const char kNotificationTag[] = "my_tag"; 22 const char kNotificationTag[] = "my_tag";
23 const char kNotificationIconUrl[] = "https://example.com/icon.png"; 23 const char kNotificationIconUrl[] = "https://example.com/icon.png";
24 const int kNotificationVibrationPattern[] = { 100, 200, 300 }; 24 const int kNotificationVibrationPattern[] = { 100, 200, 300 };
25 const unsigned char kNotificationData[] = { 0xdf, 0xff, 0x0, 0x0, 0xff, 0xdf }; 25 const unsigned char kNotificationData[] = { 0xdf, 0xff, 0x0, 0x0, 0xff, 0xdf };
26 const char kAction1Name[] = "btn1";
27 const char kAction1Title[] = "Button 1";
28 const char kAction2Name[] = "btn2";
29 const char kAction2Title[] = "Button 2";
26 30
27 TEST(NotificationDataConversionsTest, ToPlatformNotificationData) { 31 TEST(NotificationDataConversionsTest, ToPlatformNotificationData) {
28 std::vector<int> vibration_pattern( 32 std::vector<int> vibration_pattern(
29 kNotificationVibrationPattern, 33 kNotificationVibrationPattern,
30 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern)); 34 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern));
31 35
32 std::vector<char> developer_data( 36 std::vector<char> developer_data(
33 kNotificationData, kNotificationData + arraysize(kNotificationData)); 37 kNotificationData, kNotificationData + arraysize(kNotificationData));
34 38
39 blink::WebVector<blink::WebNotificationAction> web_actions(
40 static_cast<size_t>(2));
41 web_actions[0].action = blink::WebString::fromUTF8(kAction1Name);
42 web_actions[0].title = blink::WebString::fromUTF8(kAction1Title);
43 web_actions[1].action = blink::WebString::fromUTF8(kAction2Name);
44 web_actions[1].title = blink::WebString::fromUTF8(kAction2Title);
45
35 blink::WebNotificationData web_data( 46 blink::WebNotificationData web_data(
36 blink::WebString::fromUTF8(kNotificationTitle), 47 blink::WebString::fromUTF8(kNotificationTitle),
37 blink::WebNotificationData::DirectionLeftToRight, 48 blink::WebNotificationData::DirectionLeftToRight,
38 blink::WebString::fromUTF8(kNotificationLang), 49 blink::WebString::fromUTF8(kNotificationLang),
39 blink::WebString::fromUTF8(kNotificationBody), 50 blink::WebString::fromUTF8(kNotificationBody),
40 blink::WebString::fromUTF8(kNotificationTag), 51 blink::WebString::fromUTF8(kNotificationTag),
41 blink::WebURL(GURL(kNotificationIconUrl)), 52 blink::WebURL(GURL(kNotificationIconUrl)),
42 blink::WebVector<int>(vibration_pattern), 53 blink::WebVector<int>(vibration_pattern),
43 true /* silent */, 54 true /* silent */,
44 blink::WebVector<char>(developer_data)); 55 blink::WebVector<char>(developer_data),
56 web_actions);
45 57
46 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); 58 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data);
47 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title); 59 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title);
48 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, 60 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight,
49 platform_data.direction); 61 platform_data.direction);
50 EXPECT_EQ(kNotificationLang, platform_data.lang); 62 EXPECT_EQ(kNotificationLang, platform_data.lang);
51 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body); 63 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body);
52 EXPECT_EQ(kNotificationTag, platform_data.tag); 64 EXPECT_EQ(kNotificationTag, platform_data.tag);
53 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec()); 65 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec());
54 EXPECT_TRUE(platform_data.silent); 66 EXPECT_TRUE(platform_data.silent);
55 67
56 EXPECT_THAT(platform_data.vibration_pattern, 68 EXPECT_THAT(platform_data.vibration_pattern,
57 testing::ElementsAreArray(kNotificationVibrationPattern)); 69 testing::ElementsAreArray(kNotificationVibrationPattern));
58 70
59 ASSERT_EQ(developer_data.size(), platform_data.data.size()); 71 ASSERT_EQ(developer_data.size(), platform_data.data.size());
60 for (size_t i = 0; i < developer_data.size(); ++i) 72 for (size_t i = 0; i < developer_data.size(); ++i)
61 EXPECT_EQ(developer_data[i], platform_data.data[i]); 73 EXPECT_EQ(developer_data[i], platform_data.data[i]);
74 ASSERT_EQ(web_actions.size(), platform_data.actions.size());
75 EXPECT_EQ(kAction1Name, platform_data.actions[0].action);
76 EXPECT_EQ(base::ASCIIToUTF16(kAction1Title), platform_data.actions[0].title);
77 EXPECT_EQ(kAction2Name, platform_data.actions[1].action);
78 EXPECT_EQ(base::ASCIIToUTF16(kAction2Title), platform_data.actions[1].title);
62 } 79 }
63 80
64 TEST(NotificationDataConversionsTest, 81 TEST(NotificationDataConversionsTest,
65 ToPlatformNotificationDataDirectionality) { 82 ToPlatformNotificationDataDirectionality) {
66 blink::WebNotificationData web_data; 83 blink::WebNotificationData web_data;
67 web_data.direction = blink::WebNotificationData::DirectionLeftToRight; 84 web_data.direction = blink::WebNotificationData::DirectionLeftToRight;
68 85
69 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); 86 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data);
70 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, 87 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight,
71 platform_data.direction); 88 platform_data.direction);
(...skipping 17 matching lines...) Expand all
89 platform_data.title = base::ASCIIToUTF16(kNotificationTitle); 106 platform_data.title = base::ASCIIToUTF16(kNotificationTitle);
90 platform_data.direction = 107 platform_data.direction =
91 PlatformNotificationData::NotificationDirectionLeftToRight; 108 PlatformNotificationData::NotificationDirectionLeftToRight;
92 platform_data.lang = kNotificationLang; 109 platform_data.lang = kNotificationLang;
93 platform_data.body = base::ASCIIToUTF16(kNotificationBody); 110 platform_data.body = base::ASCIIToUTF16(kNotificationBody);
94 platform_data.tag = kNotificationTag; 111 platform_data.tag = kNotificationTag;
95 platform_data.icon = GURL(kNotificationIconUrl); 112 platform_data.icon = GURL(kNotificationIconUrl);
96 platform_data.vibration_pattern = vibration_pattern; 113 platform_data.vibration_pattern = vibration_pattern;
97 platform_data.silent = true; 114 platform_data.silent = true;
98 platform_data.data = developer_data; 115 platform_data.data = developer_data;
116 platform_data.actions.resize(2);
117 platform_data.actions[0].action = kAction1Name;
118 platform_data.actions[0].title = base::ASCIIToUTF16(kAction1Title);
119 platform_data.actions[1].action = kAction2Name;
120 platform_data.actions[1].title = base::ASCIIToUTF16(kAction2Title);
99 121
100 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); 122 blink::WebNotificationData web_data = ToWebNotificationData(platform_data);
101 EXPECT_EQ(kNotificationTitle, web_data.title); 123 EXPECT_EQ(kNotificationTitle, web_data.title);
102 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, 124 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight,
103 web_data.direction); 125 web_data.direction);
104 EXPECT_EQ(kNotificationLang, web_data.lang); 126 EXPECT_EQ(kNotificationLang, web_data.lang);
105 EXPECT_EQ(kNotificationBody, web_data.body); 127 EXPECT_EQ(kNotificationBody, web_data.body);
106 EXPECT_EQ(kNotificationTag, web_data.tag); 128 EXPECT_EQ(kNotificationTag, web_data.tag);
107 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string()); 129 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string());
108 130
109 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size()); 131 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size());
110 for (size_t i = 0; i < vibration_pattern.size(); ++i) 132 for (size_t i = 0; i < vibration_pattern.size(); ++i)
111 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]); 133 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]);
112 134
113 EXPECT_TRUE(web_data.silent); 135 EXPECT_TRUE(web_data.silent);
114 136
115 ASSERT_EQ(developer_data.size(), web_data.data.size()); 137 ASSERT_EQ(developer_data.size(), web_data.data.size());
116 for (size_t i = 0; i < developer_data.size(); ++i) 138 for (size_t i = 0; i < developer_data.size(); ++i)
117 EXPECT_EQ(developer_data[i], web_data.data[i]); 139 EXPECT_EQ(developer_data[i], web_data.data[i]);
140
141 ASSERT_EQ(platform_data.actions.size(), web_data.actions.size());
142 EXPECT_EQ(kAction1Name, web_data.actions[0].action);
143 EXPECT_EQ(kAction1Title, web_data.actions[0].title);
144 EXPECT_EQ(kAction2Name, web_data.actions[1].action);
145 EXPECT_EQ(kAction2Title, web_data.actions[1].title);
118 } 146 }
119 147
120 TEST(NotificationDataConversionsTest, ToWebNotificationDataDirectionality) { 148 TEST(NotificationDataConversionsTest, ToWebNotificationDataDirectionality) {
121 PlatformNotificationData platform_data; 149 PlatformNotificationData platform_data;
122 platform_data.direction = 150 platform_data.direction =
123 PlatformNotificationData::NotificationDirectionLeftToRight; 151 PlatformNotificationData::NotificationDirectionLeftToRight;
124 152
125 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); 153 blink::WebNotificationData web_data = ToWebNotificationData(platform_data);
126 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, 154 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight,
127 web_data.direction); 155 web_data.direction);
128 156
129 platform_data.direction = 157 platform_data.direction =
130 PlatformNotificationData::NotificationDirectionRightToLeft; 158 PlatformNotificationData::NotificationDirectionRightToLeft;
131 159
132 web_data = ToWebNotificationData(platform_data); 160 web_data = ToWebNotificationData(platform_data);
133 EXPECT_EQ(blink::WebNotificationData::DirectionRightToLeft, 161 EXPECT_EQ(blink::WebNotificationData::DirectionRightToLeft,
134 web_data.direction); 162 web_data.direction);
135 } 163 }
136 164
137 } // namespace content 165 } // namespace content
OLDNEW
« no previous file with comments | « content/child/notifications/notification_data_conversions.cc ('k') | content/child/notifications/notification_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698