| Index: ui/message_center/views/message_center_view_unittest.cc
|
| diff --git a/ui/message_center/views/message_center_view_unittest.cc b/ui/message_center/views/message_center_view_unittest.cc
|
| index b60f144c61c450ac40741aaa150e9cd42f5bedaa..7558b1b542c7040266dadfd7c336090ad555ac24 100644
|
| --- a/ui/message_center/views/message_center_view_unittest.cc
|
| +++ b/ui/message_center/views/message_center_view_unittest.cc
|
| @@ -107,8 +107,10 @@ class FakeMessageCenterImpl : public FakeMessageCenter {
|
| if (type == RemoveType::NON_PINNED)
|
| remove_all_closable_notification_called_ = true;
|
| }
|
| + bool IsLockedState() const override { return locked_; }
|
| bool remove_all_closable_notification_called_ = false;
|
| NotificationList::Notifications visible_notifications_;
|
| + bool locked_ = false;
|
| };
|
|
|
| /* Test fixture ***************************************************************/
|
| @@ -134,6 +136,7 @@ class MessageCenterViewTest : public views::ViewsTestBase,
|
| int GetNotificationCount();
|
| int GetCallCount(CallType type);
|
| int GetCalculatedMessageListViewHeight();
|
| + void SetLockedState(bool locked);
|
| Mode GetMessageCenterViewInternalMode();
|
| void AddNotification(std::unique_ptr<Notification> notification);
|
| void UpdateNotification(const std::string& notification_id,
|
| @@ -166,6 +169,7 @@ class MessageCenterViewTest : public views::ViewsTestBase,
|
| views::View* MakeParent(views::View* child1, views::View* child2);
|
|
|
| NotificationList::Notifications notifications_;
|
| + std::unique_ptr<views::Widget> widget_;
|
| std::unique_ptr<MessageCenterView> message_center_view_;
|
| std::unique_ptr<FakeMessageCenterImpl> message_center_;
|
| std::map<CallType,int> callCounts_;
|
| @@ -181,6 +185,7 @@ MessageCenterViewTest::~MessageCenterViewTest() {
|
|
|
| void MessageCenterViewTest::SetUp() {
|
| views::ViewsTestBase::SetUp();
|
| + MessageCenterView::disable_animation_for_testing = true;
|
| message_center_.reset(new FakeMessageCenterImpl());
|
|
|
| // Create a dummy notification.
|
| @@ -209,6 +214,18 @@ void MessageCenterViewTest::SetUp() {
|
| GetMessageListView()->quit_message_loop_after_animation_for_test_ = true;
|
| GetMessageCenterView()->SetBounds(0, 0, 380, 600);
|
| message_center_view_->SetNotifications(notifications_);
|
| + message_center_view_->set_owned_by_client();
|
| +
|
| + widget_.reset(new views::Widget());
|
| + views::Widget::InitParams params =
|
| + CreateParams(views::Widget::InitParams::TYPE_POPUP);
|
| + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| + params.bounds = gfx::Rect(50, 50, 650, 650);
|
| + widget_->Init(params);
|
| + views::View* root = widget_->GetRootView();
|
| + root->AddChildView(message_center_view_.get());
|
| + widget_->Show();
|
| + widget_->Activate();
|
|
|
| // Wait until the animation finishes if available.
|
| if (GetAnimator()->IsAnimating())
|
| @@ -216,6 +233,8 @@ void MessageCenterViewTest::SetUp() {
|
| }
|
|
|
| void MessageCenterViewTest::TearDown() {
|
| + widget_->CloseNow();
|
| + widget_.reset();
|
| message_center_view_.reset();
|
| STLDeleteElements(¬ifications_);
|
| views::ViewsTestBase::TearDown();
|
| @@ -258,6 +277,10 @@ int MessageCenterViewTest::GetCallCount(CallType type) {
|
| return callCounts_[type];
|
| }
|
|
|
| +void MessageCenterViewTest::SetLockedState(bool locked) {
|
| + GetMessageCenterView()->OnLockedStateChanged(locked);
|
| +}
|
| +
|
| void MessageCenterViewTest::ClickOnNotification(
|
| const std::string& notification_id) {
|
| // For this test, this method should not be invoked.
|
| @@ -707,4 +730,82 @@ TEST_F(MessageCenterViewTest,
|
| EXPECT_EQ(Mode::NOTIFICATIONS, GetMessageCenterViewInternalMode());
|
| }
|
|
|
| +TEST_F(MessageCenterViewTest, LockScreen) {
|
| + const int kLockedMessageCenterViewHeight = 50;
|
| +
|
| + EXPECT_TRUE(GetNotificationView(kNotificationId1)->IsDrawn());
|
| + EXPECT_TRUE(GetNotificationView(kNotificationId2)->IsDrawn());
|
| +
|
| + // Lock!
|
| + SetLockedState(true);
|
| +
|
| + EXPECT_FALSE(GetNotificationView(kNotificationId1)->IsDrawn());
|
| + EXPECT_FALSE(GetNotificationView(kNotificationId2)->IsDrawn());
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + RemoveNotification(kNotificationId1, false);
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + RemoveNotification(kNotificationId2, false);
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + AddNotification(std::unique_ptr<Notification>(new Notification(
|
| + NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId1),
|
| + base::UTF8ToUTF16("title1"),
|
| + base::UTF8ToUTF16("message"),
|
| + gfx::Image(), base::UTF8ToUTF16("display source"), GURL(),
|
| + NotifierId(NotifierId::APPLICATION, "extension_id"),
|
| + message_center::RichNotificationData(), NULL)));
|
| + EXPECT_FALSE(GetNotificationView(kNotificationId1)->IsDrawn());
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + // Unlock!
|
| + SetLockedState(false);
|
| +
|
| + EXPECT_TRUE(GetNotificationView(kNotificationId1)->IsDrawn());
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_NE(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + // Lock!
|
| + SetLockedState(true);
|
| +
|
| + EXPECT_FALSE(GetNotificationView(kNotificationId1)->IsDrawn());
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kLockedMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +}
|
| +
|
| +TEST_F(MessageCenterViewTest, NoNotification) {
|
| + const int kEmptyMessageCenterViewHeight = 50;
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_NE(kEmptyMessageCenterViewHeight, GetMessageCenterView()->height());
|
| + RemoveNotification(kNotificationId1, false);
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_NE(kEmptyMessageCenterViewHeight, GetMessageCenterView()->height());
|
| + RemoveNotification(kNotificationId2, false);
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_EQ(kEmptyMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +
|
| + AddNotification(std::unique_ptr<Notification>(new Notification(
|
| + NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId1),
|
| + base::UTF8ToUTF16("title1"),
|
| + base::UTF8ToUTF16("message"),
|
| + gfx::Image(), base::UTF8ToUTF16("display source"), GURL(),
|
| + NotifierId(NotifierId::APPLICATION, "extension_id"),
|
| + message_center::RichNotificationData(), NULL)));
|
| +
|
| + GetMessageCenterView()->SizeToPreferredSize();
|
| + EXPECT_NE(kEmptyMessageCenterViewHeight, GetMessageCenterView()->height());
|
| +}
|
| +
|
| } // namespace message_center
|
|
|