Commit 1f4ad234 authored by Richard Knoll's avatar Richard Knoll Committed by Commit Bot

Invalidate notification content view on update.

We need to recalculate the layout as the right content might add or
remove the icon view on update.

Bug: 937862
Change-Id: Ibc96cb0580c9fcd3f6446d5a969b63ed6dcbf5f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1523391Reviewed-by: default avatarPeter Beverloo <peter@chromium.org>
Reviewed-by: default avatarYoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Richard Knoll <knollr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#641129}
parent 86ac38b4
...@@ -1209,6 +1209,7 @@ void NotificationViewMD::UpdateViewForExpandedState(bool expanded) { ...@@ -1209,6 +1209,7 @@ void NotificationViewMD::UpdateViewForExpandedState(bool expanded) {
if (message_view_) if (message_view_)
message_view_->SizeToFit(kMessageViewWidth); message_view_->SizeToFit(kMessageViewWidth);
} }
content_row_->InvalidateLayout();
} }
void NotificationViewMD::ToggleInlineSettings(const ui::Event& event) { void NotificationViewMD::ToggleInlineSettings(const ui::Event& event) {
...@@ -1270,7 +1271,6 @@ void NotificationViewMD::SetExpanded(bool expanded) { ...@@ -1270,7 +1271,6 @@ void NotificationViewMD::SetExpanded(bool expanded) {
expanded_ = expanded; expanded_ = expanded;
UpdateViewForExpandedState(expanded_); UpdateViewForExpandedState(expanded_);
content_row_->InvalidateLayout();
PreferredSizeChanged(); PreferredSizeChanged();
} }
......
...@@ -209,24 +209,25 @@ class MESSAGE_CENTER_EXPORT NotificationViewMD ...@@ -209,24 +209,25 @@ class MESSAGE_CENTER_EXPORT NotificationViewMD
private: private:
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, CreateOrUpdateTest); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, CreateOrUpdateTest);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestIconSizing); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, ExpandLongMessage);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateButtonsStateTest); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, InlineSettings);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateButtonCountTest); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, NotificationWithoutIcon);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestAccentColor);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestActionButtonClick);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestClick); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestClick);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestClickExpanded); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestClickExpanded);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestActionButtonClick); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest,
TestDeleteOnDisableNotification);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestDeleteOnToggleExpanded);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestIconSizing);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestInlineReply); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestInlineReply);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest,
TestInlineReplyRemovedByUpdate); TestInlineReplyRemovedByUpdate);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, ExpandLongMessage); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateAddingIcon);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestAccentColor); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateButtonCountTest);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UseImageAsIcon); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateButtonsStateTest);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, NotificationWithoutIcon);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, InlineSettings);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateViewsOrderingTest); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UpdateViewsOrderingTest);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, TestDeleteOnToggleExpanded); FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest, UseImageAsIcon);
FRIEND_TEST_ALL_PREFIXES(NotificationViewMDTest,
TestDeleteOnDisableNotification);
friend class NotificationViewMDTest; friend class NotificationViewMDTest;
......
...@@ -1033,6 +1033,31 @@ TEST_F(NotificationViewMDTest, NotificationWithoutIcon) { ...@@ -1033,6 +1033,31 @@ TEST_F(NotificationViewMDTest, NotificationWithoutIcon) {
EXPECT_FALSE(notification_view()->right_content_->visible()); EXPECT_FALSE(notification_view()->right_content_->visible());
} }
TEST_F(NotificationViewMDTest, UpdateAddingIcon) {
const int kNotificationIconSize = 30;
// Create a notification without an icon.
std::unique_ptr<Notification> notification = CreateSimpleNotification();
notification->set_icon(gfx::Image());
notification->set_image(gfx::Image());
UpdateNotificationViews(*notification);
// Capture the width of the left content without an icon.
const int left_content_width = notification_view()->left_content_->width();
// Update the notification, adding an icon.
notification->set_icon(
CreateTestImage(kNotificationIconSize, kNotificationIconSize));
UpdateNotificationViews(*notification);
// Notification should now have an icon.
EXPECT_TRUE(notification_view()->icon_view_->visible());
EXPECT_TRUE(notification_view()->right_content_->visible());
// There should be some space now to show the icon.
EXPECT_LT(notification_view()->left_content_->width(), left_content_width);
}
TEST_F(NotificationViewMDTest, InlineSettings) { TEST_F(NotificationViewMDTest, InlineSettings) {
std::unique_ptr<Notification> notification = CreateSimpleNotification(); std::unique_ptr<Notification> notification = CreateSimpleNotification();
notification->set_type(NOTIFICATION_TYPE_SIMPLE); notification->set_type(NOTIFICATION_TYPE_SIMPLE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment