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 |