OLD | NEW |
---|---|
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" |
(...skipping 27 matching lines...) Expand all Loading... | |
38 blink::WebString::fromUTF8(kNotificationLang), | 38 blink::WebString::fromUTF8(kNotificationLang), |
39 blink::WebString::fromUTF8(kNotificationBody), | 39 blink::WebString::fromUTF8(kNotificationBody), |
40 blink::WebString::fromUTF8(kNotificationTag), | 40 blink::WebString::fromUTF8(kNotificationTag), |
41 blink::WebURL(GURL(kNotificationIconUrl)), | 41 blink::WebURL(GURL(kNotificationIconUrl)), |
42 blink::WebVector<int>(vibration_pattern), | 42 blink::WebVector<int>(vibration_pattern), |
43 true /* silent */, | 43 true /* silent */, |
44 blink::WebVector<char>(developer_data)); | 44 blink::WebVector<char>(developer_data)); |
45 | 45 |
46 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); | 46 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); |
47 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title); | 47 EXPECT_EQ(base::ASCIIToUTF16(kNotificationTitle), platform_data.title); |
48 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, | 48 EXPECT_EQ(PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT, |
49 platform_data.direction); | 49 platform_data.direction); |
50 EXPECT_EQ(kNotificationLang, platform_data.lang); | 50 EXPECT_EQ(kNotificationLang, platform_data.lang); |
51 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body); | 51 EXPECT_EQ(base::ASCIIToUTF16(kNotificationBody), platform_data.body); |
52 EXPECT_EQ(kNotificationTag, platform_data.tag); | 52 EXPECT_EQ(kNotificationTag, platform_data.tag); |
53 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec()); | 53 EXPECT_EQ(kNotificationIconUrl, platform_data.icon.spec()); |
54 EXPECT_TRUE(platform_data.silent); | 54 EXPECT_TRUE(platform_data.silent); |
55 | 55 |
56 EXPECT_THAT(platform_data.vibration_pattern, | 56 EXPECT_THAT(platform_data.vibration_pattern, |
57 testing::ElementsAreArray(kNotificationVibrationPattern)); | 57 testing::ElementsAreArray(kNotificationVibrationPattern)); |
58 | 58 |
59 ASSERT_EQ(developer_data.size(), platform_data.data.size()); | 59 ASSERT_EQ(developer_data.size(), platform_data.data.size()); |
60 for (size_t i = 0; i < developer_data.size(); ++i) | 60 for (size_t i = 0; i < developer_data.size(); ++i) |
61 EXPECT_EQ(developer_data[i], platform_data.data[i]); | 61 EXPECT_EQ(developer_data[i], platform_data.data[i]); |
62 } | 62 } |
63 | 63 |
64 TEST(NotificationDataConversionsTest, | |
65 ToPlatformNotificationDataDirectionality) { | |
66 blink::WebNotificationData web_data; | |
67 web_data.direction = blink::WebNotificationData::DirectionLeftToRight; | |
68 | |
69 PlatformNotificationData platform_data = ToPlatformNotificationData(web_data); | |
70 EXPECT_EQ(PlatformNotificationData::NotificationDirectionLeftToRight, | |
71 platform_data.direction); | |
72 | |
73 web_data.direction = blink::WebNotificationData::DirectionRightToLeft; | |
74 | |
75 platform_data = ToPlatformNotificationData(web_data); | |
76 EXPECT_EQ(PlatformNotificationData::NotificationDirectionRightToLeft, | |
77 platform_data.direction); | |
78 } | |
79 | |
80 TEST(NotificationDataConversionsTest, ToWebNotificationData) { | 64 TEST(NotificationDataConversionsTest, ToWebNotificationData) { |
81 std::vector<int> vibration_pattern( | 65 std::vector<int> vibration_pattern( |
82 kNotificationVibrationPattern, | 66 kNotificationVibrationPattern, |
83 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern)); | 67 kNotificationVibrationPattern + arraysize(kNotificationVibrationPattern)); |
84 | 68 |
85 std::vector<char> developer_data( | 69 std::vector<char> developer_data( |
86 kNotificationData, kNotificationData + arraysize(kNotificationData)); | 70 kNotificationData, kNotificationData + arraysize(kNotificationData)); |
87 | 71 |
88 PlatformNotificationData platform_data; | 72 PlatformNotificationData platform_data; |
89 platform_data.title = base::ASCIIToUTF16(kNotificationTitle); | 73 platform_data.title = base::ASCIIToUTF16(kNotificationTitle); |
90 platform_data.direction = | 74 platform_data.direction = |
91 PlatformNotificationData::NotificationDirectionLeftToRight; | 75 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT; |
92 platform_data.lang = kNotificationLang; | 76 platform_data.lang = kNotificationLang; |
93 platform_data.body = base::ASCIIToUTF16(kNotificationBody); | 77 platform_data.body = base::ASCIIToUTF16(kNotificationBody); |
94 platform_data.tag = kNotificationTag; | 78 platform_data.tag = kNotificationTag; |
95 platform_data.icon = GURL(kNotificationIconUrl); | 79 platform_data.icon = GURL(kNotificationIconUrl); |
96 platform_data.vibration_pattern = vibration_pattern; | 80 platform_data.vibration_pattern = vibration_pattern; |
97 platform_data.silent = true; | 81 platform_data.silent = true; |
98 platform_data.data = developer_data; | 82 platform_data.data = developer_data; |
99 | 83 |
100 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); | 84 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); |
101 EXPECT_EQ(kNotificationTitle, web_data.title); | 85 EXPECT_EQ(kNotificationTitle, web_data.title); |
102 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, | 86 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, |
103 web_data.direction); | 87 web_data.direction); |
104 EXPECT_EQ(kNotificationLang, web_data.lang); | 88 EXPECT_EQ(kNotificationLang, web_data.lang); |
105 EXPECT_EQ(kNotificationBody, web_data.body); | 89 EXPECT_EQ(kNotificationBody, web_data.body); |
106 EXPECT_EQ(kNotificationTag, web_data.tag); | 90 EXPECT_EQ(kNotificationTag, web_data.tag); |
107 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string()); | 91 EXPECT_EQ(kNotificationIconUrl, web_data.icon.string()); |
108 | 92 |
109 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size()); | 93 ASSERT_EQ(vibration_pattern.size(), web_data.vibrate.size()); |
110 for (size_t i = 0; i < vibration_pattern.size(); ++i) | 94 for (size_t i = 0; i < vibration_pattern.size(); ++i) |
111 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]); | 95 EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]); |
112 | 96 |
113 EXPECT_TRUE(web_data.silent); | 97 EXPECT_TRUE(web_data.silent); |
114 | 98 |
115 ASSERT_EQ(developer_data.size(), web_data.data.size()); | 99 ASSERT_EQ(developer_data.size(), web_data.data.size()); |
116 for (size_t i = 0; i < developer_data.size(); ++i) | 100 for (size_t i = 0; i < developer_data.size(); ++i) |
117 EXPECT_EQ(developer_data[i], web_data.data[i]); | 101 EXPECT_EQ(developer_data[i], web_data.data[i]); |
118 } | 102 } |
119 | 103 |
120 TEST(NotificationDataConversionsTest, ToWebNotificationDataDirectionality) { | 104 TEST(NotificationDataConversionsTest, NotificationDataDirectionality) { |
121 PlatformNotificationData platform_data; | 105 std::map<blink::WebNotificationData::Direction, |
122 platform_data.direction = | 106 PlatformNotificationData::Direction> mappings; |
123 PlatformNotificationData::NotificationDirectionLeftToRight; | |
124 | 107 |
125 blink::WebNotificationData web_data = ToWebNotificationData(platform_data); | 108 mappings[blink::WebNotificationData::DirectionLeftToRight] = |
126 EXPECT_EQ(blink::WebNotificationData::DirectionLeftToRight, | 109 PlatformNotificationData::DIRECTION_LEFT_TO_RIGHT; |
127 web_data.direction); | 110 mappings[blink::WebNotificationData::DirectionRightToLeft] = |
111 PlatformNotificationData::DIRECTION_RIGHT_TO_LEFT; | |
112 mappings[blink::WebNotificationData::DirectionAuto] = | |
113 PlatformNotificationData::DIRECTION_AUTO; | |
palmer
2015/08/03 20:42:46
Maybe a negative test case.
| |
128 | 114 |
129 platform_data.direction = | 115 for (const auto& pair : mappings) { |
130 PlatformNotificationData::NotificationDirectionRightToLeft; | 116 { |
117 blink::WebNotificationData web_data; | |
118 web_data.direction = pair.first; | |
131 | 119 |
132 web_data = ToWebNotificationData(platform_data); | 120 PlatformNotificationData platform_data = |
133 EXPECT_EQ(blink::WebNotificationData::DirectionRightToLeft, | 121 ToPlatformNotificationData(web_data); |
134 web_data.direction); | 122 EXPECT_EQ(pair.second, platform_data.direction); |
123 } | |
124 { | |
125 PlatformNotificationData platform_data; | |
126 platform_data.direction = pair.second; | |
127 | |
128 blink::WebNotificationData web_data = | |
129 ToWebNotificationData(platform_data); | |
130 EXPECT_EQ(pair.first, web_data.direction); | |
131 } | |
132 } | |
135 } | 133 } |
136 | 134 |
137 } // namespace content | 135 } // namespace content |
OLD | NEW |