Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "content/browser/notifications/notification_database_data.h" | |
| 6 | |
| 7 #include "base/strings/utf_string_conversions.h" | |
| 8 #include "content/browser/notifications/notification_database_data.pb.h" | |
| 9 #include "testing/gtest/include/gtest/gtest.h" | |
| 10 | |
| 11 namespace content { | |
| 12 namespace { | |
|
Bernhard Bauer
2015/03/12 18:11:14
Nit: You don't strictly need the anonymous namespa
Peter Beverloo
2015/03/12 21:09:52
Do they have internal linkage unless they've been
Bernhard Bauer
2015/03/13 12:27:19
Exactly. (This allows you to declare a constant in
| |
| 13 | |
| 14 const int64_t kNotificationId = 42; | |
| 15 const int64_t kServiceWorkerRegistrationId = 9001; | |
| 16 | |
| 17 const char kOrigin[] = "https://example.com/"; | |
| 18 const char kNotificationTitle[] = "My Notification"; | |
| 19 const char kNotificationLang[] = "nl"; | |
| 20 const char kNotificationBody[] = "Hello, world!"; | |
| 21 const char kNotificationTag[] = "my_tag"; | |
| 22 const char kNotificationIconUrl[] = "https://example.com/icon.png"; | |
| 23 | |
| 24 } // namespace | |
| 25 | |
| 26 using NotificationDatabaseDataTest = ::testing::Test; | |
| 27 | |
| 28 TEST_F(NotificationDatabaseDataTest, ToProtocolBufferMessage) { | |
| 29 PlatformNotificationData notification_data; | |
| 30 notification_data.title = base::ASCIIToUTF16(kNotificationTitle); | |
| 31 notification_data.direction = | |
| 32 PlatformNotificationData::NotificationDirectionRightToLeft; | |
| 33 notification_data.lang = kNotificationLang; | |
| 34 notification_data.body = base::ASCIIToUTF16(kNotificationBody); | |
| 35 notification_data.tag = kNotificationTag; | |
| 36 notification_data.icon = GURL(kNotificationIconUrl); | |
| 37 notification_data.silent = true; | |
| 38 | |
| 39 NotificationDatabaseData database_data; | |
| 40 database_data.notification_id = kNotificationId; | |
| 41 database_data.origin = GURL(kOrigin); | |
| 42 database_data.service_worker_registration_id = kServiceWorkerRegistrationId; | |
| 43 database_data.notification_data = notification_data; | |
| 44 | |
| 45 NotificationDatabaseDataProto message = | |
| 46 ToNotificationDatabaseDataProto(database_data); | |
| 47 | |
| 48 EXPECT_EQ(kNotificationId, message.notification_id()); | |
| 49 EXPECT_EQ(kOrigin, message.origin()); | |
| 50 EXPECT_EQ(kServiceWorkerRegistrationId, | |
| 51 message.service_worker_registration_id()); | |
| 52 | |
| 53 const NotificationDatabaseDataProto::NotificationData& payload = | |
| 54 message.notification_data(); | |
| 55 | |
| 56 EXPECT_EQ(kNotificationTitle, payload.title()); | |
| 57 EXPECT_EQ(NotificationDatabaseDataProto::NotificationData::RIGHT_TO_LEFT, | |
| 58 payload.direction()); | |
| 59 EXPECT_EQ(kNotificationLang, payload.lang()); | |
| 60 EXPECT_EQ(kNotificationBody, payload.body()); | |
| 61 EXPECT_EQ(kNotificationTag, payload.tag()); | |
| 62 EXPECT_EQ(kNotificationIconUrl, payload.icon()); | |
| 63 EXPECT_TRUE(payload.silent()); | |
| 64 } | |
| 65 | |
| 66 TEST_F(NotificationDatabaseDataTest, FromProtocolBuffer) { | |
| 67 scoped_ptr<NotificationDatabaseDataProto::NotificationData> payload( | |
| 68 new NotificationDatabaseDataProto::NotificationData()); | |
| 69 | |
| 70 payload->set_title(kNotificationTitle); | |
| 71 payload->set_direction( | |
| 72 NotificationDatabaseDataProto::NotificationData::RIGHT_TO_LEFT); | |
| 73 payload->set_lang(kNotificationLang); | |
| 74 payload->set_body(kNotificationBody); | |
| 75 payload->set_tag(kNotificationTag); | |
| 76 payload->set_icon(kNotificationIconUrl); | |
| 77 payload->set_silent(true); | |
| 78 | |
| 79 NotificationDatabaseDataProto message; | |
| 80 message.set_notification_id(kNotificationId); | |
| 81 message.set_origin(kOrigin); | |
| 82 message.set_service_worker_registration_id(kServiceWorkerRegistrationId); | |
| 83 message.set_allocated_notification_data(payload.release()); | |
| 84 | |
| 85 NotificationDatabaseData database_data = ToNotificationDatabaseData(message); | |
| 86 | |
| 87 EXPECT_EQ(kNotificationId, database_data.notification_id); | |
| 88 EXPECT_EQ(kOrigin, database_data.origin.spec()); | |
| 89 EXPECT_EQ(kServiceWorkerRegistrationId, | |
| 90 database_data.service_worker_registration_id); | |
| 91 | |
| 92 const PlatformNotificationData& notification_data = | |
| 93 database_data.notification_data; | |
| 94 | |
| 95 EXPECT_EQ(kNotificationTitle, base::UTF16ToASCII(notification_data.title)); | |
| 96 EXPECT_EQ(PlatformNotificationData::NotificationDirectionRightToLeft, | |
| 97 notification_data.direction); | |
| 98 EXPECT_EQ(kNotificationLang, notification_data.lang); | |
| 99 EXPECT_EQ(kNotificationBody, base::UTF16ToASCII(notification_data.body)); | |
| 100 EXPECT_EQ(kNotificationTag, notification_data.tag); | |
| 101 EXPECT_EQ(kNotificationIconUrl, notification_data.icon.spec()); | |
| 102 EXPECT_TRUE(notification_data.silent); | |
| 103 } | |
| 104 | |
| 105 } // namespace content | |
| OLD | NEW |