Chromium Code Reviews| Index: content/child/notifications/notification_data_conversions_unittest.cc |
| diff --git a/content/child/notifications/notification_data_conversions_unittest.cc b/content/child/notifications/notification_data_conversions_unittest.cc |
| index 5c6a5decb3b78bad227b86299792579b497c97be..580d4f89c5e8c13142085114dbd6dac54c3cfd93 100644 |
| --- a/content/child/notifications/notification_data_conversions_unittest.cc |
| +++ b/content/child/notifications/notification_data_conversions_unittest.cc |
| @@ -24,6 +24,7 @@ const char kNotificationBody[] = "Hello, world!"; |
| const char kNotificationTag[] = "my_tag"; |
| const char kNotificationIconUrl[] = "https://example.com/icon.png"; |
| const int kNotificationVibrationPattern[] = {100, 200, 300}; |
| +const double kNotificationTimestamp = 621046800.; |
| const unsigned char kNotificationData[] = {0xdf, 0xff, 0x0, 0x0, 0xff, 0xdf}; |
| const char kAction1Name[] = "btn1"; |
| const char kAction1Title[] = "Button 1"; |
| @@ -40,6 +41,7 @@ TEST(NotificationDataConversionsTest, ToPlatformNotificationData) { |
| web_data.icon = blink::WebURL(GURL(kNotificationIconUrl)); |
| web_data.vibrate = blink::WebVector<int>( |
| kNotificationVibrationPattern, arraysize(kNotificationVibrationPattern)); |
| + web_data.timestamp = kNotificationTimestamp; |
| web_data.silent = true; |
| web_data.requireInteraction = true; |
| web_data.data = |
| @@ -66,6 +68,7 @@ TEST(NotificationDataConversionsTest, ToPlatformNotificationData) { |
| EXPECT_THAT(platform_data.vibration_pattern, |
| testing::ElementsAreArray(kNotificationVibrationPattern)); |
| + EXPECT_DOUBLE_EQ(kNotificationTimestamp, platform_data.timestamp.ToJsTime()); |
| ASSERT_EQ(web_data.data.size(), platform_data.data.size()); |
| for (size_t i = 0; i < web_data.data.size(); ++i) |
| EXPECT_EQ(web_data.data[i], platform_data.data[i]); |
| @@ -92,6 +95,7 @@ TEST(NotificationDataConversionsTest, ToWebNotificationData) { |
| platform_data.tag = kNotificationTag; |
| platform_data.icon = GURL(kNotificationIconUrl); |
| platform_data.vibration_pattern = vibration_pattern; |
| + platform_data.timestamp = base::Time::FromJsTime(kNotificationTimestamp); |
| platform_data.silent = true; |
| platform_data.require_interaction = true; |
| platform_data.data = developer_data; |
| @@ -114,6 +118,7 @@ TEST(NotificationDataConversionsTest, ToWebNotificationData) { |
| for (size_t i = 0; i < vibration_pattern.size(); ++i) |
| EXPECT_EQ(vibration_pattern[i], web_data.vibrate[i]); |
| + EXPECT_DOUBLE_EQ(kNotificationTimestamp, web_data.timestamp); |
| EXPECT_TRUE(web_data.silent); |
| EXPECT_TRUE(web_data.requireInteraction); |
| @@ -159,4 +164,24 @@ TEST(NotificationDataConversionsTest, NotificationDataDirectionality) { |
| } |
| } |
| +TEST(NotificationDataConversionsTest, TimeEdgeCaseValueBehaviour) { |
| + { |
| + blink::WebNotificationData web_data; |
| + web_data.timestamp = |
| + static_cast<double>(std::numeric_limits<unsigned long long>::max()); |
| + |
| + blink::WebNotificationData copied_data = |
| + ToWebNotificationData(ToPlatformNotificationData(web_data)); |
| + EXPECT_NE(web_data.timestamp, copied_data.timestamp); |
|
johnme
2016/01/28 18:16:57
Thinking about this more, is it really ok that thi
Peter Beverloo
2016/01/28 18:28:34
Our implementation will support timestamps between
johnme
2016/01/28 18:50:21
Some websites might pass MAX_ULL as a hack to make
Peter Beverloo
2016/01/28 20:52:07
Done.
|
| + } |
| + { |
| + blink::WebNotificationData web_data; |
| + web_data.timestamp = 0; |
| + |
| + blink::WebNotificationData copied_data = |
| + ToWebNotificationData(ToPlatformNotificationData(web_data)); |
| + EXPECT_EQ(web_data.timestamp, copied_data.timestamp); |
| + } |
| +} |
| + |
| } // namespace content |