| Index: ui/message_center/views/message_popup_collection_unittest.cc
|
| diff --git a/ui/message_center/views/message_popup_collection_unittest.cc b/ui/message_center/views/message_popup_collection_unittest.cc
|
| index f43199755efda3c338d1dcb04d6f4755ff0fe2f1..d2b897d0fddde348bdc2aaeae1f2990ac83f6e67 100644
|
| --- a/ui/message_center/views/message_popup_collection_unittest.cc
|
| +++ b/ui/message_center/views/message_popup_collection_unittest.cc
|
| @@ -10,12 +10,15 @@
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "ui/base/events/event.h"
|
| +#include "ui/base/events/event_constants.h"
|
| #include "ui/gfx/display.h"
|
| #include "ui/gfx/rect.h"
|
| #include "ui/message_center/fake_message_center.h"
|
| #include "ui/message_center/views/toast_contents_view.h"
|
| #include "ui/views/test/views_test_base.h"
|
| #include "ui/views/widget/widget.h"
|
| +#include "ui/views/widget/widget_delegate.h"
|
|
|
| namespace message_center {
|
| namespace test {
|
| @@ -51,6 +54,10 @@ class MessagePopupCollectionTest : public views::ViewsTestBase {
|
| return collection_->toasts_.size();
|
| }
|
|
|
| + bool MouseInCollection() {
|
| + return collection_->latest_toast_entered_ != NULL;
|
| + }
|
| +
|
| bool IsToastShown(const std::string& id) {
|
| views::Widget* widget = collection_->GetWidgetForTest(id);
|
| return widget && widget->IsVisible();
|
| @@ -335,6 +342,39 @@ TEST_F(MessagePopupCollectionTest, LeftPositioningWithLeftTaskbar) {
|
| gfx::Rect(0, 0, 600, 400)); // Display-bounds.
|
| }
|
|
|
| +TEST_F(MessagePopupCollectionTest, DetectMouseHover) {
|
| + std::string id0 = AddNotification();
|
| + std::string id1 = AddNotification();
|
| + WaitForTransitionsDone();
|
| +
|
| + views::WidgetDelegateView* toast0 = GetToast(id0);
|
| + EXPECT_TRUE(toast0 != NULL);
|
| + views::WidgetDelegateView* toast1 = GetToast(id1);
|
| + EXPECT_TRUE(toast1 != NULL);
|
| +
|
| + ui::MouseEvent event(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(), 0);
|
| +
|
| + // Test that mouse detection logic works in presence of out-of-order events.
|
| + toast0->OnMouseEntered(event);
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast1->OnMouseEntered(event);
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast0->OnMouseExited(event);
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast1->OnMouseExited(event);
|
| + EXPECT_FALSE(MouseInCollection());
|
| +
|
| + // Test that mouse detection logic works in presence of WindowClosing events.
|
| + toast0->OnMouseEntered(event);
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast1->OnMouseEntered(event);
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast0->WindowClosing();
|
| + EXPECT_TRUE(MouseInCollection());
|
| + toast1->WindowClosing();
|
| + EXPECT_FALSE(MouseInCollection());
|
| +}
|
| +
|
| // TODO(dimich): Test repositioning - both normal one and when user is closing
|
| // the toasts.
|
|
|
|
|