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

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: 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(2);
40 web_actions[0].action = kAction1Name;
Peter Beverloo 2015/07/30 17:02:05 Did you compile this? You're assigning a char* to
johnme 2015/07/31 18:21:31 Done.
41 web_actions[0].title = kAction1Title;
42 web_actions[1].action = kAction2Name;
43 web_actions[1].title = kAction2Title;
44
35 blink::WebNotificationData web_data( 45 blink::WebNotificationData web_data(
36 blink::WebString::fromUTF8(kNotificationTitle), 46 blink::WebString::fromUTF8(kNotificationTitle),
37 blink::WebNotificationData::DirectionLeftToRight, 47 blink::WebNotificationData::DirectionLeftToRight,
38 blink::WebString::fromUTF8(kNotificationLang), 48 blink::WebString::fromUTF8(kNotificationLang),
39 blink::WebString::fromUTF8(kNotificationBody), 49 blink::WebString::fromUTF8(kNotificationBody),
40 blink::WebString::fromUTF8(kNotificationTag), 50 blink::WebString::fromUTF8(kNotificationTag),
41 blink::WebURL(GURL(kNotificationIconUrl)), 51 blink::WebURL(GURL(kNotificationIconUrl)),
42 blink::WebVector<int>(vibration_pattern), 52 blink::WebVector<int>(vibration_pattern),
43 true /* silent */, 53 true /* silent */,
44 blink::WebVector<char>(developer_data)); 54 blink::WebVector<char>(developer_data),
55 web_actions);
45 56
46 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); 57 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data);
47 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title); 58 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title);
48 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, 59 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight,
49 platform_data.direction); 60 platform_data.direction);
50 EXPECT_EQ(kNotificationLang, platform_data.lang); 61 EXPECT_EQ(kNotificationLang, platform_data.lang);
51 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body); 62 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body);
52 EXPECT_EQ(kNotificationTag, platform_data.tag); 63 EXPECT_EQ(kNotificationTag, platform_data.tag);
53 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec()); 64 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec());
54 EXPECT_TRUE(platform_data.silent); 65 EXPECT_TRUE(platform_data.silent);
55 66
56 EXPECT_THAT(platform_data.vibration_pattern, 67 EXPECT_THAT(platform_data.vibration_pattern,
57 testing::ElementsAreArray(kNotificationVibrationPattern)); 68 testing::ElementsAreArray(kNotificationVibrationPattern));
58 69
59 ASSERT_EQ(developer_data.size(), platform_data.data.size()); 70 ASSERT_EQ(developer_data.size(), platform_data.data.size());
60 for (size_t i = 0; i < developer_data.size(); ++i) 71 for (size_t i = 0; i < developer_data.size(); ++i)
61 EXPECT_EQ(developer_data[i], platform_data.data[i]); 72 EXPECT_EQ(developer_data[i], platform_data.data[i]);
73 ASSERT_EQ(web_actions.size(), platform_data.actions.size());
74 EXPECT_EQ(web_actions[0].action, platform_data.actions[0].action);
75 EXPECT_EQ(web_actions[0].title, platform_data.actions[0].title);
76 EXPECT_EQ(web_actions[1].action, platform_data.actions[1].action);
77 EXPECT_EQ(web_actions[1].title, platform_data.actions[1].title);
62 } 78 }
63 79
64 TEST(NotificationDataConversionsTest, 80 TEST(NotificationDataConversionsTest,
65 ToPlatformNotificationDataDirectionality) { 81 ToPlatformNotificationDataDirectionality) {
66 blink::WebNotificationData web_data; 82 blink::WebNotificationData web_data;
67 web_data.direction = blink::WebNotificationData::DirectionLeftToRight; 83 web_data.direction = blink::WebNotificationData::DirectionLeftToRight;
68 84
69 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); 85 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data);
70 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, 86 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight,
71 platform_data.direction); 87 platform_data.direction);
72 88
73 web_data.direction = blink::WebNotificationData::DirectionRightToLeft; 89 web_data.direction = blink::WebNotificationData::DirectionRightToLeft;
74 90
75 platform_data = ToPlatformNotificationData(web_data); 91 platform_data = ToPlatformNotificationData(web_data);
76 EXPECT_EQ(PlatformNotificationData::NotificationDirectionRightToLeft, 92 EXPECT_EQ(PlatformNotificationData::NotificationDirectionRightToLeft,
77 platform_data.direction); 93 platform_data.direction);
78 } 94 }
79 95
80 TEST(NotificationDataConversionsTest, ToWebNotificationData) { 96 TEST(NotificationDataConversionsTest, ToWebNotificationData) {
81 std::vector<int> vibration_pattern( 97 std::vector<int> vibration_pattern(
82 kNotificationVibrationPattern, 98 kNotificationVibrationPattern,
83 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern)); 99 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern));
84 100
85 std::vector<char> developer_data( 101 std::vector<char> developer_data(
86 kNotificationData, kNotificationData + arraysize(kNotificationData)); 102 kNotificationData, kNotificationData + arraysize(kNotificationData));
87 103
104 std::vector<PlatformNotificationAction> actions(2);
105 actions[0].action = kAction1Name;
106 actions[0].title = kAction1Title;
107 actions[1].action = kAction2Name;
108 actions[1].title = kAction2Title;
109
88 PlatformNotificationData platform_data; 110 PlatformNotificationData platform_data;
89 platform_data.title = base::ASCIIToUTF16(kNotificationTitle); 111 platform_data.title = base::ASCIIToUTF16(kNotificationTitle);
90 platform_data.direction = 112 platform_data.direction =
91 PlatformNotificationData::NotificationDirectionLeftToRight; 113 PlatformNotificationData::NotificationDirectionLeftToRight;
92 platform_data.lang = kNotificationLang; 114 platform_data.lang = kNotificationLang;
93 platform_data.body = base::ASCIIToUTF16(kNotificationBody); 115 platform_data.body = base::ASCIIToUTF16(kNotificationBody);
94 platform_data.tag = kNotificationTag; 116 platform_data.tag = kNotificationTag;
95 platform_data.icon = GURL(kNotificationIconUrl); 117 platform_data.icon = GURL(kNotificationIconUrl);
96 platform_data.vibration_pattern = vibration_pattern; 118 platform_data.vibration_pattern = vibration_pattern;
97 platform_data.silent = true; 119 platform_data.silent = true;
(...skipping 10 matching lines...) Expand all
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(actions.size(), web_data.actions.size());
142 EXPECT_EQ(actions[0].action, web_data.actions[0].action);
143 EXPECT_EQ(actions[0].title, web_data.actions[0].title);
144 EXPECT_EQ(actions[1].action, web_data.actions[1].action);
145 EXPECT_EQ(actions[1].title, 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

Powered by Google App Engine
This is Rietveld 408576698