Chromium Code Reviews| Index: chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc |
| diff --git a/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc b/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc |
| index a92d231679d2de0d1e0d548deb359675edbb92ef..89cc356e971d1800c3a0378f9e4526bbdb997b28 100644 |
| --- a/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc |
| +++ b/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc |
| @@ -53,6 +53,11 @@ class NotificationBuilder { |
| return *this; |
| } |
| + NotificationBuilder& SetNeverTimeout(bool never_timeout) { |
| + notification_.set_never_timeout(never_timeout); |
| + return *this; |
| + } |
| + |
| NotificationBuilder& SetProgress(int progress) { |
| notification_.set_progress(progress); |
| return *this; |
| @@ -75,6 +80,7 @@ class NotificationBuilder { |
| struct NotificationRequest { |
| std::string summary; |
| std::string body; |
| + int32_t expire_timeout; |
|
Peter Beverloo
2017/05/11 15:47:01
nit: initialize to 0 since it's a scalar
Tom (Use chromium acct)
2017/05/11 18:15:05
Done.
|
| }; |
| NotificationRequest ParseRequest(dbus::MethodCall* method_call) { |
| @@ -85,7 +91,6 @@ NotificationRequest ParseRequest(dbus::MethodCall* method_call) { |
| dbus::MessageReader reader(method_call); |
| std::string str; |
| uint32_t uint32; |
| - int32_t int32; |
| EXPECT_TRUE(reader.PopString(&str)); // app_name |
| EXPECT_TRUE(reader.PopUint32(&uint32)); // replaces_id |
| EXPECT_TRUE(reader.PopString(&str)); // app_icon |
| @@ -115,7 +120,7 @@ NotificationRequest ParseRequest(dbus::MethodCall* method_call) { |
| } |
| } |
| - EXPECT_TRUE(reader.PopInt32(&int32)); // expire_timeout |
| + EXPECT_TRUE(reader.PopInt32(&request.expire_timeout)); |
| EXPECT_FALSE(reader.HasMoreData()); |
| return request; |
| @@ -299,3 +304,28 @@ TEST_F(NotificationPlatformBridgeLinuxTest, NotificationListItemsInBody) { |
| {base::UTF8ToUTF16("def"), base::UTF8ToUTF16("456")}}) |
| .GetResult()); |
| } |
| + |
| +TEST_F(NotificationPlatformBridgeLinuxTest, NotificationTimeouts) { |
| + const int32_t kExpireTimeoutDefault = -1; |
| + const int32_t kExpireTimeoutNever = 0; |
| + EXPECT_CALL(*mock_notification_proxy_.get(), |
| + MockCallMethodAndBlock(Calls("Notify"), _)) |
| + .WillOnce(OnNotify( |
| + [=](const NotificationRequest& request) { |
| + EXPECT_EQ(kExpireTimeoutDefault, request.expire_timeout); |
| + }, |
| + 1)) |
| + .WillOnce(OnNotify( |
| + [=](const NotificationRequest& request) { |
| + EXPECT_EQ(kExpireTimeoutNever, request.expire_timeout); |
| + }, |
| + 2)); |
| + |
| + CreateNotificationBridgeLinux(); |
| + notification_bridge_linux_->Display( |
| + NotificationCommon::PERSISTENT, "", "", false, |
| + NotificationBuilder("1").SetNeverTimeout(false).GetResult()); |
| + notification_bridge_linux_->Display( |
| + NotificationCommon::PERSISTENT, "", "", false, |
| + NotificationBuilder("2").SetNeverTimeout(true).GetResult()); |
| +} |