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

Unified Diff: chrome/browser/notifications/notification_builder_mac_unittest.mm

Issue 2080733002: Revert of Make the notification builder more XPC friendly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
Index: chrome/browser/notifications/notification_builder_mac_unittest.mm
diff --git a/chrome/browser/notifications/notification_builder_mac_unittest.mm b/chrome/browser/notifications/notification_builder_mac_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..910c41df82f7bc1086fbcad78541eddf5bdaa3f1
--- /dev/null
+++ b/chrome/browser/notifications/notification_builder_mac_unittest.mm
@@ -0,0 +1,152 @@
+// Copyright 2016 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.
+
+#import <AppKit/AppKit.h>
+
+#include "base/mac/foundation_util.h"
+#include "base/mac/scoped_nsobject.h"
+#include "base/strings/sys_string_conversions.h"
+#include "chrome/browser/notifications/notification_builder_mac.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+TEST(NotificationBuilderMacTest, TestNotificationNoButtons) {
+ base::scoped_nsobject<NotificationBuilder> builder(
+ [[NotificationBuilder alloc] init]);
+ [builder setTitle:@"Title"];
+ [builder setSubTitle:@"https://www.miguel.com"];
+ [builder setContextMessage:@""];
+ [builder setTag:@"tag1"];
+ [builder setIcon:[NSImage imageNamed:@"NSApplicationIcon"]];
+ [builder setNotificationId:@"notificationId"];
+ [builder setProfileId:@"profileId"];
+ [builder setIncognito:false];
+
+ NSUserNotification* notification = [builder buildUserNotification];
+ EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
+ EXPECT_EQ(nullptr, [notification informativeText]);
+ EXPECT_EQ("https://www.miguel.com",
+ base::SysNSStringToUTF8([notification subtitle]));
+ EXPECT_EQ("tag1",
+ base::SysNSStringToUTF8([notification valueForKey:@"identifier"]));
+
+ EXPECT_TRUE([notification hasActionButton]);
+ EXPECT_EQ("Settings",
+ base::SysNSStringToUTF8([notification actionButtonTitle]));
+ EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
+}
+
+TEST(NotificationBuilderMacTest, TestNotificationOneButton) {
+ base::scoped_nsobject<NotificationBuilder> builder(
+ [[NotificationBuilder alloc] init]);
+ [builder setTitle:@"Title"];
+ [builder setSubTitle:@"https://www.miguel.com"];
+ [builder setContextMessage:@"SubTitle"];
+ [builder setButtons:@"Button1" secondaryButton:@""];
+ [builder setNotificationId:@"notificationId"];
+ [builder setProfileId:@"profileId"];
+ [builder setIncognito:false];
+
+ NSUserNotification* notification = [builder buildUserNotification];
+
+ EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
+ EXPECT_EQ("SubTitle",
+ base::SysNSStringToUTF8([notification informativeText]));
+ EXPECT_EQ("https://www.miguel.com",
+ base::SysNSStringToUTF8([notification subtitle]));
+
+ EXPECT_TRUE([notification hasActionButton]);
+
+ EXPECT_EQ("Options",
+ base::SysNSStringToUTF8([notification actionButtonTitle]));
+ EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
+
+ NSArray* buttons = [notification valueForKey:@"_alternateActionButtonTitles"];
+ ASSERT_EQ(2u, buttons.count);
+ EXPECT_EQ("Button1", base::SysNSStringToUTF8([buttons objectAtIndex:0]));
+ EXPECT_EQ("Settings", base::SysNSStringToUTF8([buttons objectAtIndex:1]));
+}
+
+TEST(NotificationBuilderMacTest, TestNotificationTwoButtons) {
+ base::scoped_nsobject<NotificationBuilder> builder(
+ [[NotificationBuilder alloc] init]);
+ [builder setTitle:@"Title"];
+ [builder setSubTitle:@"https://www.miguel.com"];
+ [builder setContextMessage:@"SubTitle"];
+ [builder setButtons:@"Button1" secondaryButton:@"Button2"];
+ [builder setNotificationId:@"notificationId"];
+ [builder setProfileId:@"profileId"];
+ [builder setIncognito:false];
+
+ NSUserNotification* notification = [builder buildUserNotification];
+
+ EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
+ EXPECT_EQ("SubTitle",
+ base::SysNSStringToUTF8([notification informativeText]));
+ EXPECT_EQ("https://www.miguel.com",
+ base::SysNSStringToUTF8([notification subtitle]));
+
+ EXPECT_TRUE([notification hasActionButton]);
+
+ EXPECT_EQ("Options",
+ base::SysNSStringToUTF8([notification actionButtonTitle]));
+ EXPECT_EQ("Close", base::SysNSStringToUTF8([notification otherButtonTitle]));
+
+ NSArray* buttons = [notification valueForKey:@"_alternateActionButtonTitles"];
+ ASSERT_EQ(3u, buttons.count);
+ EXPECT_EQ("Button1", base::SysNSStringToUTF8([buttons objectAtIndex:0]));
+ EXPECT_EQ("Button2", base::SysNSStringToUTF8([buttons objectAtIndex:1]));
+ EXPECT_EQ("Settings", base::SysNSStringToUTF8([buttons objectAtIndex:2]));
+}
+
+TEST(NotificationBuilderMacTest, TestUserInfo) {
+ base::scoped_nsobject<NotificationBuilder> builder(
+ [[NotificationBuilder alloc] init]);
+ [builder setTitle:@"Title"];
+ [builder setProfileId:@"Profile1"];
+ [builder setOrigin:@"https://www.miguel.com"];
+ [builder setNotificationId:@"Notification1"];
+ [builder setIncognito:true];
+
+ NSUserNotification* notification = [builder buildUserNotification];
+ EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
+
+ NSDictionary* userInfo = [notification userInfo];
+
+ EXPECT_EQ("https://www.miguel.com",
+ base::SysNSStringToUTF8([userInfo
+ objectForKey:notification_builder::kNotificationOrigin]));
+ EXPECT_EQ("Notification1",
+ base::SysNSStringToUTF8(
+ [userInfo objectForKey:notification_builder::kNotificationId]));
+ EXPECT_EQ("Profile1",
+ base::SysNSStringToUTF8([userInfo
+ objectForKey:notification_builder::kNotificationProfileId]));
+ EXPECT_TRUE([[userInfo
+ objectForKey:notification_builder::kNotificationIncognito] boolValue]);
+}
+
+TEST(NotificationBuilderMacTest, TestBuildDictionary) {
+ NSDictionary* notificationData;
+ {
+ base::scoped_nsobject<NotificationBuilder> sourceBuilder(
+ [[NotificationBuilder alloc] init]);
+ [sourceBuilder setTitle:@"Title"];
+ [sourceBuilder setSubTitle:@"https://www.miguel.com"];
+ [sourceBuilder setContextMessage:@"SubTitle"];
+ [sourceBuilder setNotificationId:@"notificationId"];
+ [sourceBuilder setProfileId:@"profileId"];
+ [sourceBuilder setIncognito:false];
+ notificationData = [sourceBuilder buildDictionary];
+ }
+ base::scoped_nsobject<NotificationBuilder> finalBuilder(
+ [[NotificationBuilder alloc] initWithDictionary:notificationData]);
+
+ NSUserNotification* notification = [finalBuilder buildUserNotification];
+
+ EXPECT_EQ("Title", base::SysNSStringToUTF8([notification title]));
+ EXPECT_EQ("SubTitle",
+ base::SysNSStringToUTF8([notification informativeText]));
+ EXPECT_EQ("https://www.miguel.com",
+ base::SysNSStringToUTF8([notification subtitle]));
+}

Powered by Google App Engine
This is Rietveld 408576698