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

Side by Side Diff: ui/message_center/views/message_center_view_unittest.cc

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/message_center/views/message_center_view.h" 5 #include "ui/message_center/views/message_center_view.h"
6 6
7 #include <map> 7 #include <map>
8 #include <memory>
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/macros.h" 12 #include "base/macros.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/message_center/fake_message_center.h" 15 #include "ui/message_center/fake_message_center.h"
16 #include "ui/message_center/message_center_style.h" 16 #include "ui/message_center/message_center_style.h"
17 #include "ui/message_center/notification.h" 17 #include "ui/message_center/notification.h"
18 #include "ui/message_center/notification_list.h" 18 #include "ui/message_center/notification_list.h"
19 #include "ui/message_center/notification_types.h" 19 #include "ui/message_center/notification_types.h"
20 #include "ui/message_center/views/message_center_button_bar.h" 20 #include "ui/message_center/views/message_center_button_bar.h"
21 #include "ui/message_center/views/message_center_controller.h" 21 #include "ui/message_center/views/message_center_controller.h"
22 #include "ui/message_center/views/message_list_view.h" 22 #include "ui/message_center/views/message_list_view.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 void TearDown() override; 123 void TearDown() override;
124 124
125 MessageCenterView* GetMessageCenterView(); 125 MessageCenterView* GetMessageCenterView();
126 MessageListView* GetMessageListView(); 126 MessageListView* GetMessageListView();
127 FakeMessageCenterImpl* GetMessageCenter() const; 127 FakeMessageCenterImpl* GetMessageCenter() const;
128 NotificationView* GetNotificationView(const std::string& id); 128 NotificationView* GetNotificationView(const std::string& id);
129 views::BoundsAnimator* GetAnimator(); 129 views::BoundsAnimator* GetAnimator();
130 int GetNotificationCount(); 130 int GetNotificationCount();
131 int GetCallCount(CallType type); 131 int GetCallCount(CallType type);
132 int GetCalculatedMessageListViewHeight(); 132 int GetCalculatedMessageListViewHeight();
133 void AddNotification(scoped_ptr<Notification> notification); 133 void AddNotification(std::unique_ptr<Notification> notification);
134 void UpdateNotification(const std::string& notification_id, 134 void UpdateNotification(const std::string& notification_id,
135 scoped_ptr<Notification> notification); 135 std::unique_ptr<Notification> notification);
136 136
137 // Overridden from MessageCenterController: 137 // Overridden from MessageCenterController:
138 void ClickOnNotification(const std::string& notification_id) override; 138 void ClickOnNotification(const std::string& notification_id) override;
139 void RemoveNotification(const std::string& notification_id, 139 void RemoveNotification(const std::string& notification_id,
140 bool by_user) override; 140 bool by_user) override;
141 scoped_ptr<ui::MenuModel> CreateMenuModel( 141 std::unique_ptr<ui::MenuModel> CreateMenuModel(
142 const NotifierId& notifier_id, 142 const NotifierId& notifier_id,
143 const base::string16& display_source) override; 143 const base::string16& display_source) override;
144 bool HasClickedListener(const std::string& notification_id) override; 144 bool HasClickedListener(const std::string& notification_id) override;
145 void ClickOnNotificationButton(const std::string& notification_id, 145 void ClickOnNotificationButton(const std::string& notification_id,
146 int button_index) override; 146 int button_index) override;
147 void ClickOnSettingsButton(const std::string& notification_id) override; 147 void ClickOnSettingsButton(const std::string& notification_id) override;
148 148
149 // Overridden from MockNotificationView::Test 149 // Overridden from MockNotificationView::Test
150 void RegisterCall(CallType type) override; 150 void RegisterCall(CallType type) override;
151 151
152 void FireOnMouseExitedEvent(); 152 void FireOnMouseExitedEvent();
153 153
154 void LogBounds(int depth, views::View* view); 154 void LogBounds(int depth, views::View* view);
155 155
156 MessageCenterButtonBar* GetButtonBar() const; 156 MessageCenterButtonBar* GetButtonBar() const;
157 157
158 private: 158 private:
159 views::View* MakeParent(views::View* child1, views::View* child2); 159 views::View* MakeParent(views::View* child1, views::View* child2);
160 160
161 base::MessageLoopForUI message_loop_; 161 base::MessageLoopForUI message_loop_;
162 162
163 NotificationList::Notifications notifications_; 163 NotificationList::Notifications notifications_;
164 scoped_ptr<MessageCenterView> message_center_view_; 164 std::unique_ptr<MessageCenterView> message_center_view_;
165 scoped_ptr<FakeMessageCenterImpl> message_center_; 165 std::unique_ptr<FakeMessageCenterImpl> message_center_;
166 std::map<CallType,int> callCounts_; 166 std::map<CallType,int> callCounts_;
167 167
168 DISALLOW_COPY_AND_ASSIGN(MessageCenterViewTest); 168 DISALLOW_COPY_AND_ASSIGN(MessageCenterViewTest);
169 }; 169 };
170 170
171 MessageCenterViewTest::MessageCenterViewTest() { 171 MessageCenterViewTest::MessageCenterViewTest() {
172 } 172 }
173 173
174 MessageCenterViewTest::~MessageCenterViewTest() { 174 MessageCenterViewTest::~MessageCenterViewTest() {
175 } 175 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 return callCounts_[type]; 248 return callCounts_[type];
249 } 249 }
250 250
251 void MessageCenterViewTest::ClickOnNotification( 251 void MessageCenterViewTest::ClickOnNotification(
252 const std::string& notification_id) { 252 const std::string& notification_id) {
253 // For this test, this method should not be invoked. 253 // For this test, this method should not be invoked.
254 NOTREACHED(); 254 NOTREACHED();
255 } 255 }
256 256
257 void MessageCenterViewTest::AddNotification( 257 void MessageCenterViewTest::AddNotification(
258 scoped_ptr<Notification> notification) { 258 std::unique_ptr<Notification> notification) {
259 std::string notification_id = notification->id(); 259 std::string notification_id = notification->id();
260 notifications_.insert(notification.release()); 260 notifications_.insert(notification.release());
261 message_center_->SetVisibleNotifications(notifications_); 261 message_center_->SetVisibleNotifications(notifications_);
262 message_center_view_->OnNotificationAdded(notification_id); 262 message_center_view_->OnNotificationAdded(notification_id);
263 } 263 }
264 264
265 void MessageCenterViewTest::UpdateNotification( 265 void MessageCenterViewTest::UpdateNotification(
266 const std::string& notification_id, 266 const std::string& notification_id,
267 scoped_ptr<Notification> notification) { 267 std::unique_ptr<Notification> notification) {
268 for (auto it = notifications_.begin(); it != notifications_.end(); it++) { 268 for (auto it = notifications_.begin(); it != notifications_.end(); it++) {
269 if ((*it)->id() == notification_id) { 269 if ((*it)->id() == notification_id) {
270 delete *it; 270 delete *it;
271 notifications_.erase(it); 271 notifications_.erase(it);
272 break; 272 break;
273 } 273 }
274 } 274 }
275 // |notifications| is a "set" container so we don't need to be aware the 275 // |notifications| is a "set" container so we don't need to be aware the
276 // order. 276 // order.
277 notifications_.insert(notification.release()); 277 notifications_.insert(notification.release());
278 message_center_->SetVisibleNotifications(notifications_); 278 message_center_->SetVisibleNotifications(notifications_);
279 message_center_view_->OnNotificationUpdated(notification_id); 279 message_center_view_->OnNotificationUpdated(notification_id);
280 } 280 }
281 281
282 void MessageCenterViewTest::RemoveNotification( 282 void MessageCenterViewTest::RemoveNotification(
283 const std::string& notification_id, 283 const std::string& notification_id,
284 bool by_user) { 284 bool by_user) {
285 for (auto it = notifications_.begin(); it != notifications_.end(); it++) { 285 for (auto it = notifications_.begin(); it != notifications_.end(); it++) {
286 if ((*it)->id() == notification_id) { 286 if ((*it)->id() == notification_id) {
287 delete *it; 287 delete *it;
288 notifications_.erase(it); 288 notifications_.erase(it);
289 break; 289 break;
290 } 290 }
291 } 291 }
292 message_center_->SetVisibleNotifications(notifications_); 292 message_center_->SetVisibleNotifications(notifications_);
293 message_center_view_->OnNotificationRemoved(notification_id, by_user); 293 message_center_view_->OnNotificationRemoved(notification_id, by_user);
294 } 294 }
295 295
296 scoped_ptr<ui::MenuModel> MessageCenterViewTest::CreateMenuModel( 296 std::unique_ptr<ui::MenuModel> MessageCenterViewTest::CreateMenuModel(
297 const NotifierId& notifier_id, 297 const NotifierId& notifier_id,
298 const base::string16& display_source) { 298 const base::string16& display_source) {
299 // For this test, this method should not be invoked. 299 // For this test, this method should not be invoked.
300 NOTREACHED(); 300 NOTREACHED();
301 return nullptr; 301 return nullptr;
302 } 302 }
303 303
304 bool MessageCenterViewTest::HasClickedListener( 304 bool MessageCenterViewTest::HasClickedListener(
305 const std::string& notification_id) { 305 const std::string& notification_id) {
306 return true; 306 return true;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 (kMarginBetweenItems - MessageView::GetShadowInsets().bottom()) + 375 (kMarginBetweenItems - MessageView::GetShadowInsets().bottom()) +
376 GetNotificationView(kNotificationId2)->GetHeightForWidth(width) + 376 GetNotificationView(kNotificationId2)->GetHeightForWidth(width) +
377 GetMessageListView()->GetInsets().height()); 377 GetMessageListView()->GetInsets().height());
378 } 378 }
379 379
380 TEST_F(MessageCenterViewTest, SizeAfterUpdate) { 380 TEST_F(MessageCenterViewTest, SizeAfterUpdate) {
381 EXPECT_EQ(2, GetMessageListView()->child_count()); 381 EXPECT_EQ(2, GetMessageListView()->child_count());
382 int width = 382 int width =
383 GetMessageListView()->width() - GetMessageListView()->GetInsets().width(); 383 GetMessageListView()->width() - GetMessageListView()->GetInsets().width();
384 384
385 scoped_ptr<Notification> notification(new Notification( 385 std::unique_ptr<Notification> notification(new Notification(
386 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2), 386 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2),
387 base::UTF8ToUTF16("title2"), 387 base::UTF8ToUTF16("title2"),
388 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."), 388 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."),
389 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(), 389 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(),
390 NotifierId(NotifierId::APPLICATION, "extension_id"), 390 NotifierId(NotifierId::APPLICATION, "extension_id"),
391 message_center::RichNotificationData(), NULL)); 391 message_center::RichNotificationData(), NULL));
392 392
393 EXPECT_EQ( 393 EXPECT_EQ(
394 GetMessageListView()->height(), 394 GetMessageListView()->height(),
395 GetNotificationView(kNotificationId1)->GetHeightForWidth(width) + 395 GetNotificationView(kNotificationId1)->GetHeightForWidth(width) +
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 // Make sure that the notification 2 is placed above the notification 1. 443 // Make sure that the notification 2 is placed above the notification 1.
444 EXPECT_LT(GetNotificationView(kNotificationId2)->bounds().y(), 444 EXPECT_LT(GetNotificationView(kNotificationId2)->bounds().y(),
445 GetNotificationView(kNotificationId1)->bounds().y()); 445 GetNotificationView(kNotificationId1)->bounds().y());
446 446
447 int previous_vertical_pos_from_bottom = 447 int previous_vertical_pos_from_bottom =
448 GetMessageListView()->height() - 448 GetMessageListView()->height() -
449 GetNotificationView(kNotificationId1)->bounds().y(); 449 GetNotificationView(kNotificationId1)->bounds().y();
450 GetMessageListView()->SetRepositionTargetForTest( 450 GetMessageListView()->SetRepositionTargetForTest(
451 GetNotificationView(kNotificationId1)->bounds()); 451 GetNotificationView(kNotificationId1)->bounds());
452 452
453 scoped_ptr<Notification> notification(new Notification( 453 std::unique_ptr<Notification> notification(new Notification(
454 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2), 454 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2),
455 base::UTF8ToUTF16("title2"), 455 base::UTF8ToUTF16("title2"),
456 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."), 456 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."),
457 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(), 457 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(),
458 NotifierId(NotifierId::APPLICATION, "extension_id"), 458 NotifierId(NotifierId::APPLICATION, "extension_id"),
459 message_center::RichNotificationData(), NULL)); 459 message_center::RichNotificationData(), NULL));
460 UpdateNotification(kNotificationId2, std::move(notification)); 460 UpdateNotification(kNotificationId2, std::move(notification));
461 461
462 // Wait until the animation finishes if available. 462 // Wait until the animation finishes if available.
463 if (GetAnimator()->IsAnimating()) 463 if (GetAnimator()->IsAnimating())
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 Notification pinned_notification( 558 Notification pinned_notification(
559 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2), 559 NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2),
560 base::UTF8ToUTF16("title2"), 560 base::UTF8ToUTF16("title2"),
561 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."), 561 base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."),
562 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(), 562 gfx::Image(), base::UTF8ToUTF16("display source"), GURL(),
563 NotifierId(NotifierId::APPLICATION, "extension_id"), 563 NotifierId(NotifierId::APPLICATION, "extension_id"),
564 message_center::RichNotificationData(), NULL); 564 message_center::RichNotificationData(), NULL);
565 pinned_notification.set_pinned(true); 565 pinned_notification.set_pinned(true);
566 566
567 AddNotification( 567 AddNotification(
568 scoped_ptr<Notification>(new Notification(normal_notification))); 568 std::unique_ptr<Notification>(new Notification(normal_notification)));
569 569
570 // There should be 1 non-pinned notification. 570 // There should be 1 non-pinned notification.
571 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size()); 571 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size());
572 EXPECT_TRUE(close_button->enabled()); 572 EXPECT_TRUE(close_button->enabled());
573 573
574 AddNotification( 574 AddNotification(
575 scoped_ptr<Notification>(new Notification(pinned_notification))); 575 std::unique_ptr<Notification>(new Notification(pinned_notification)));
576 576
577 // There should be 1 normal notification and 1 pinned notification. 577 // There should be 1 normal notification and 1 pinned notification.
578 EXPECT_EQ(2u, GetMessageCenter()->GetVisibleNotifications().size()); 578 EXPECT_EQ(2u, GetMessageCenter()->GetVisibleNotifications().size());
579 EXPECT_TRUE(close_button->enabled()); 579 EXPECT_TRUE(close_button->enabled());
580 580
581 RemoveNotification(kNotificationId1, false); 581 RemoveNotification(kNotificationId1, false);
582 582
583 // There should be 1 pinned notification. 583 // There should be 1 pinned notification.
584 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size()); 584 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size());
585 EXPECT_FALSE(close_button->enabled()); 585 EXPECT_FALSE(close_button->enabled());
586 586
587 RemoveNotification(kNotificationId2, false); 587 RemoveNotification(kNotificationId2, false);
588 588
589 // There should be no notification. 589 // There should be no notification.
590 EXPECT_EQ(0u, GetMessageCenter()->GetVisibleNotifications().size()); 590 EXPECT_EQ(0u, GetMessageCenter()->GetVisibleNotifications().size());
591 EXPECT_FALSE(close_button->enabled()); 591 EXPECT_FALSE(close_button->enabled());
592 592
593 AddNotification( 593 AddNotification(
594 scoped_ptr<Notification>(new Notification(pinned_notification))); 594 std::unique_ptr<Notification>(new Notification(pinned_notification)));
595 595
596 // There should be 1 pinned notification. 596 // There should be 1 pinned notification.
597 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size()); 597 EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size());
598 EXPECT_FALSE(close_button->enabled()); 598 EXPECT_FALSE(close_button->enabled());
599 #endif // defined(OS_CHROMEOS) 599 #endif // defined(OS_CHROMEOS)
600 } 600 }
601 601
602 } // namespace message_center 602 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/views/message_center_view.cc ('k') | ui/message_center/views/message_popup_collection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698