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

Unified Diff: chrome/browser/notifications/notification_conversion_helper_unittest.cc

Issue 441753002: Route newly created notifications to notification provider API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comments, deleted browser tests for onUpdated and onCleared Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/notifications/notification_conversion_helper.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/notifications/notification_conversion_helper_unittest.cc
diff --git a/chrome/browser/notifications/notification_conversion_helper_unittest.cc b/chrome/browser/notifications/notification_conversion_helper_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..febf0d5f0eca21b1e48a39a937cb9ecaefeb1a7a
--- /dev/null
+++ b/chrome/browser/notifications/notification_conversion_helper_unittest.cc
@@ -0,0 +1,126 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/notifications/notification_conversion_helper.h"
+
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/notifications/notification.h"
+#include "chrome/browser/notifications/notification_test_util.h"
+#include "chrome/common/extensions/api/notifications.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/message_center/notification.h"
+#include "ui/message_center/notification_types.h"
+#include "url/gurl.h"
+
+class NotificationConversionHelperTest : public testing::Test {
+ public:
+ NotificationConversionHelperTest() {}
+
+ virtual void SetUp() OVERRIDE {}
+
+ virtual void TearDown() OVERRIDE {}
+
+ protected:
+ scoped_ptr<Notification> CreateNotification(
+ message_center::NotificationType type) {
+ message_center::RichNotificationData optional_fields;
+ optional_fields.priority = 1;
+ optional_fields.context_message =
+ base::UTF8ToUTF16("I am a context message.");
+ optional_fields.timestamp = base::Time::FromDoubleT(12345678.9);
+ optional_fields.buttons.push_back(
+ message_center::ButtonInfo(base::UTF8ToUTF16("Button 1")));
+ optional_fields.buttons.push_back(
+ message_center::ButtonInfo(base::UTF8ToUTF16("Button 2")));
+ optional_fields.clickable = false;
+
+ if (type == message_center::NOTIFICATION_TYPE_IMAGE)
+ optional_fields.image = gfx::Image();
+ if (type == message_center::NOTIFICATION_TYPE_MULTIPLE) {
+ optional_fields.items.push_back(message_center::NotificationItem(
+ base::UTF8ToUTF16("Item 1 Title"),
+ base::UTF8ToUTF16("Item 1 Message")));
+ optional_fields.items.push_back(message_center::NotificationItem(
+ base::UTF8ToUTF16("Item 2 Title"),
+ base::UTF8ToUTF16("Item 2 Message")));
+ }
+ if (type == message_center::NOTIFICATION_TYPE_PROGRESS)
+ optional_fields.progress = 50;
+
+ NotificationDelegate* delegate(new MockNotificationDelegate("id1"));
+
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(1, 1);
+ bitmap.eraseColor(SkColorSetRGB(1, 2, 3));
+ gfx::Image icon = gfx::Image::CreateFrom1xBitmap(bitmap);
+
+ scoped_ptr<Notification> notification(new Notification(
+ type,
+ GURL(),
+ base::UTF8ToUTF16("Title"),
+ base::UTF8ToUTF16("This is a message."),
+ icon,
+ blink::WebTextDirectionDefault,
+ message_center::NotifierId(message_center::NotifierId::APPLICATION,
+ "Notifier 1"),
+ base::UTF8ToUTF16("Notifier's Name"),
+ base::UTF8ToUTF16("id1"),
+ optional_fields,
+ delegate));
+
+ return notification.Pass();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NotificationConversionHelperTest);
+};
+
+TEST_F(NotificationConversionHelperTest, NotificationToNotificationOptions) {
+ // Create a notification of image type
+ scoped_ptr<Notification> notification1 =
+ CreateNotification(message_center::NOTIFICATION_TYPE_IMAGE);
+ scoped_ptr<extensions::api::notifications::NotificationOptions> options1(
+ new extensions::api::notifications::NotificationOptions());
+ NotificationConversionHelper::NotificationToNotificationOptions(
+ *(notification1), options1.get());
+
+ EXPECT_EQ(options1->type,
+ extensions::api::notifications::TEMPLATE_TYPE_IMAGE);
+ EXPECT_EQ(*(options1->title), "Title");
+ EXPECT_EQ(*(options1->message), "This is a message.");
+ EXPECT_EQ(*(options1->priority), 1);
+ EXPECT_EQ(*(options1->context_message), "I am a context message.");
+ EXPECT_FALSE(*(options1->is_clickable));
+ EXPECT_EQ(*(options1->event_time), 12345678.9);
+ EXPECT_EQ(options1->buttons->at(0)->title, "Button 1");
+ EXPECT_EQ(options1->buttons->at(1)->title, "Button 2");
+
+ EXPECT_EQ(options1->icon_bitmap->width, 1);
+ EXPECT_EQ(options1->icon_bitmap->height, 1);
+
+ // Create a notification of progress type
+ scoped_ptr<Notification> notification2 =
+ CreateNotification(message_center::NOTIFICATION_TYPE_PROGRESS);
+ scoped_ptr<extensions::api::notifications::NotificationOptions> options2(
+ new extensions::api::notifications::NotificationOptions());
+ NotificationConversionHelper::NotificationToNotificationOptions(
+ *(notification2), options2.get());
+ EXPECT_EQ(options2->type,
+ extensions::api::notifications::TEMPLATE_TYPE_PROGRESS);
+ EXPECT_EQ(*(options2->progress), 50);
+
+ // Create a notification of multiple type
+ scoped_ptr<Notification> notification3 =
+ CreateNotification(message_center::NOTIFICATION_TYPE_MULTIPLE);
+ scoped_ptr<extensions::api::notifications::NotificationOptions> options3(
+ new extensions::api::notifications::NotificationOptions());
+ NotificationConversionHelper::NotificationToNotificationOptions(
+ *(notification3), options3.get());
+ EXPECT_EQ(options3->type, extensions::api::notifications::TEMPLATE_TYPE_LIST);
+ EXPECT_EQ(options3->items->at(0)->title, "Item 1 Title");
+ EXPECT_EQ(options3->items->at(0)->message, "Item 1 Message");
+ EXPECT_EQ(options3->items->at(1)->title, "Item 2 Title");
+ EXPECT_EQ(options3->items->at(1)->message, "Item 2 Message");
+}
« no previous file with comments | « chrome/browser/notifications/notification_conversion_helper.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698