Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: content/browser/notifications/notification_database_data_unittest.cc

Issue 1003843002: Add the NotificationDatabaseData structure and protobuf (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@n-db-GetNextNotificationId
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698