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

Unified Diff: ui/message_center/views/notification_view_md.cc

Issue 2966343002: Port NotificationViewMD unit tests from NotificationViewTest. (Closed)
Patch Set: Added Slide tests. Created 3 years, 5 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: ui/message_center/views/notification_view_md.cc
diff --git a/ui/message_center/views/notification_view_md.cc b/ui/message_center/views/notification_view_md.cc
index 7a86c5bc7e9e7e2414f81900eaea6e48f5110a06..00f8776a1e046a9466d2226cce85fbf802f96cce 100644
--- a/ui/message_center/views/notification_view_md.cc
+++ b/ui/message_center/views/notification_view_md.cc
@@ -116,6 +116,8 @@ class ItemView : public views::View {
explicit ItemView(const message_center::NotificationItem& item);
~ItemView() override;
+ const char* GetClassName() const override;
+
private:
DISALLOW_COPY_AND_ASSIGN(ItemView);
};
@@ -142,6 +144,10 @@ ItemView::ItemView(const message_center::NotificationItem& item) {
ItemView::~ItemView() = default;
+const char* ItemView::GetClassName() const {
+ return "ItemView";
+}
+
// CompactTitleMessageView /////////////////////////////////////////////////////
// CompactTitleMessageView shows notification title and message in a single
@@ -151,6 +157,8 @@ class CompactTitleMessageView : public views::View {
explicit CompactTitleMessageView();
~CompactTitleMessageView() override;
+ const char* GetClassName() const override;
+
void OnPaint(gfx::Canvas* canvas) override;
void set_title(const base::string16& title) { title_ = title; }
@@ -166,7 +174,11 @@ class CompactTitleMessageView : public views::View {
views::Label* message_view_ = nullptr;
};
-CompactTitleMessageView::~CompactTitleMessageView() {}
+CompactTitleMessageView::~CompactTitleMessageView() = default;
+
+const char* CompactTitleMessageView::GetClassName() const {
+ return "CompactTitleMessageView";
+}
CompactTitleMessageView::CompactTitleMessageView() {
SetLayoutManager(new views::FillLayout());
@@ -227,6 +239,8 @@ class NotificationButtonMD : public views::LabelButton {
const base::string16& text);
~NotificationButtonMD() override;
+ const char* GetClassName() const override;
+
std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
const override;
@@ -249,6 +263,10 @@ NotificationButtonMD::NotificationButtonMD(views::ButtonListener* listener,
NotificationButtonMD::~NotificationButtonMD() = default;
+const char* NotificationButtonMD::GetClassName() const {
+ return "NotificationButtonMD";
+}
+
std::unique_ptr<views::InkDropHighlight>
NotificationButtonMD::CreateInkDropHighlight() const {
std::unique_ptr<views::InkDropHighlight> highlight =
@@ -304,10 +322,12 @@ void NotificationViewMD::CreateOrUpdateViews(const Notification& notification) {
CreateOrUpdateIconView(notification);
CreateOrUpdateSmallIconView(notification);
CreateOrUpdateImageView(notification);
- CreateOrUpdateActionButtonViews(notification);
CreateOrUpdateCloseButtonView(notification);
CreateOrUpdateSettingsButtonView(notification);
UpdateViewForExpandedState(expanded_);
+ // Should be called at the last because SynthesizeMouseMoveEvent() requires
+ // everything is in the right location when called.
+ CreateOrUpdateActionButtonViews(notification);
}
NotificationViewMD::NotificationViewMD(MessageCenterController* controller,
@@ -472,8 +492,10 @@ void NotificationViewMD::CreateOrUpdateContextTitleView(
void NotificationViewMD::CreateOrUpdateTitleView(
const Notification& notification) {
- if (notification.type() == NOTIFICATION_TYPE_PROGRESS) {
- left_content_->RemoveChildView(title_view_);
+ if (notification.title().empty() ||
+ notification.type() == NOTIFICATION_TYPE_PROGRESS) {
+ if (title_view_ != nullptr)
fukino 2017/07/06 12:44:10 nit: "if (title_view_)" is sufficient and consiste
tetsui 2017/07/07 01:52:41 Done.
+ left_content_->RemoveChildView(title_view_);
title_view_ = nullptr;
return;
}
@@ -528,7 +550,8 @@ void NotificationViewMD::CreateOrUpdateMessageView(
void NotificationViewMD::CreateOrUpdateCompactTitleMessageView(
const Notification& notification) {
if (notification.type() != NOTIFICATION_TYPE_PROGRESS) {
- left_content_->RemoveChildView(compact_title_message_view_);
+ if (compact_title_message_view_ != nullptr)
fukino 2017/07/06 12:44:11 ditto
tetsui 2017/07/07 01:52:41 Done.
+ left_content_->RemoveChildView(compact_title_message_view_);
compact_title_message_view_ = nullptr;
return;
}
@@ -545,7 +568,8 @@ void NotificationViewMD::CreateOrUpdateCompactTitleMessageView(
void NotificationViewMD::CreateOrUpdateProgressBarView(
const Notification& notification) {
if (notification.type() != NOTIFICATION_TYPE_PROGRESS) {
- left_content_->RemoveChildView(progress_bar_view_);
+ if (progress_bar_view_ != nullptr)
fukino 2017/07/06 12:44:10 ditto
tetsui 2017/07/07 01:52:41 Done.
+ left_content_->RemoveChildView(progress_bar_view_);
progress_bar_view_ = nullptr;
header_row_->ClearProgress();
return;
@@ -593,7 +617,8 @@ void NotificationViewMD::CreateOrUpdateIconView(
const Notification& notification) {
if (notification.type() == NOTIFICATION_TYPE_PROGRESS ||
notification.type() == NOTIFICATION_TYPE_MULTIPLE) {
- right_content_->RemoveChildView(icon_view_);
+ if (icon_view_ != nullptr)
fukino 2017/07/06 12:44:11 ditto
tetsui 2017/07/07 01:52:41 Done.
+ right_content_->RemoveChildView(icon_view_);
icon_view_ = nullptr;
return;
}
@@ -685,11 +710,14 @@ void NotificationViewMD::CreateOrUpdateActionButtonViews(
}
}
- if (new_buttons) {
- // TODO(fukino): Investigate if this Layout() is necessary.
- Layout();
+ // Inherit mouse hover state when action button views reset.
+ // If the view is not expanded, there should be no hover state.
+ if (new_buttons && expanded_) {
views::Widget* widget = GetWidget();
- if (widget != NULL) {
+ if (widget != nullptr) {
fukino 2017/07/06 12:44:11 ditto
tetsui 2017/07/07 01:52:41 Done.
+ // This Layout() is needed because button should be in the right location
+ // in the view hierarchy when SynthesizeMouseMoveEvent() is called.
+ Layout();
widget->SetSize(widget->GetContentsView()->GetPreferredSize());
GetWidget()->SynthesizeMouseMoveEvent();
}
« no previous file with comments | « ui/message_center/views/notification_view_md.h ('k') | ui/message_center/views/notification_view_md_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698