Chromium Code Reviews| 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 |