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

Unified Diff: ui/aura/window_unittest.cc

Issue 7983039: Add support for MouseEnter/MouseExit event types to be sent to aura::Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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
« ui/aura/root_window.cc ('K') | « ui/aura/root_window.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/window_unittest.cc
===================================================================
--- ui/aura/window_unittest.cc (revision 102135)
+++ ui/aura/window_unittest.cc (working copy)
@@ -385,5 +385,65 @@
EXPECT_EQ(NULL, root->capture_window());
}
+class MouseEnterExitWindowDelegate : public WindowDelegateImpl {
+ public:
+ MouseEnterExitWindowDelegate() : entered_(false), exited_(false) {}
+
+ virtual bool OnMouseEvent(MouseEvent* event) OVERRIDE {
+ switch (event->type()) {
+ case ui::ET_MOUSE_ENTERED:
+ entered_ = true;
+ break;
+ case ui::ET_MOUSE_EXITED:
+ exited_ = true;
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+ bool entered() const { return entered_; }
+ bool exited() const { return exited_; }
+
+ private:
+ bool entered_;
+ bool exited_;
+
+ DISALLOW_COPY_AND_ASSIGN(MouseEnterExitWindowDelegate);
+};
+
+
+// Verifies that the WindowDelegate receives MouseExit and MouseEnter events for
+// mouse transitions from window to window.
+TEST_F(WindowTest, MouseEnterExit) {
+ Desktop* desktop = Desktop::GetInstance();
+
+ MouseEnterExitWindowDelegate d1;
+ scoped_ptr<Window> w1(
+ CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), NULL));
+ MouseEnterExitWindowDelegate d2;
+ scoped_ptr<Window> w2(
+ CreateTestWindowWithDelegate(&d2, 2, gfx::Rect(70, 70, 50, 50), NULL));
+
+ gfx::Point move_point = w1->bounds().CenterPoint();
+ Window::ConvertPointToWindow(w1->parent(), desktop->window(), &move_point);
+ desktop->OnMouseEvent(MouseEvent(ui::ET_MOUSE_MOVED, move_point, 0));
+
+ EXPECT_TRUE(d1.entered());
+ EXPECT_FALSE(d1.exited());
+ EXPECT_FALSE(d2.entered());
+ EXPECT_FALSE(d2.exited());
+
+ move_point = w2->bounds().CenterPoint();
+ Window::ConvertPointToWindow(w2->parent(), desktop->window(), &move_point);
+ desktop->OnMouseEvent(MouseEvent(ui::ET_MOUSE_MOVED, move_point, 0));
+
+ EXPECT_TRUE(d1.entered());
+ EXPECT_TRUE(d1.exited());
+ EXPECT_TRUE(d2.entered());
+ EXPECT_FALSE(d2.exited());
+}
+
} // namespace internal
} // namespace aura
« ui/aura/root_window.cc ('K') | « ui/aura/root_window.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698