| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "services/window_manager/view_targeter.h" | 5 #include "services/window_manager/view_targeter.h" |
| 6 | 6 |
| 7 #include "services/window_manager/basic_focus_rules.h" | 7 #include "services/window_manager/basic_focus_rules.h" |
| 8 #include "services/window_manager/capture_controller.h" |
| 8 #include "services/window_manager/focus_controller.h" | 9 #include "services/window_manager/focus_controller.h" |
| 9 #include "services/window_manager/view_event_dispatcher.h" | 10 #include "services/window_manager/view_event_dispatcher.h" |
| 10 #include "services/window_manager/window_manager_test_util.h" | 11 #include "services/window_manager/window_manager_test_util.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "ui/events/test/test_event_handler.h" | 13 #include "ui/events/test/test_event_handler.h" |
| 13 | 14 |
| 14 namespace window_manager { | 15 namespace window_manager { |
| 15 | 16 |
| 16 class ViewTargeterTest : public testing::Test { | 17 class ViewTargeterTest : public testing::Test { |
| 17 public: | 18 public: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 34 DISALLOW_COPY_AND_ASSIGN(ViewTargeterTest); | 35 DISALLOW_COPY_AND_ASSIGN(ViewTargeterTest); |
| 35 }; | 36 }; |
| 36 | 37 |
| 37 TEST_F(ViewTargeterTest, Basic) { | 38 TEST_F(ViewTargeterTest, Basic) { |
| 38 // The dispatcher will take ownership of the tree root. | 39 // The dispatcher will take ownership of the tree root. |
| 39 TestView root(1, gfx::Rect(0, 0, 100, 100)); | 40 TestView root(1, gfx::Rect(0, 0, 100, 100)); |
| 40 ViewTarget* root_target = root.target(); | 41 ViewTarget* root_target = root.target(); |
| 41 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter())); | 42 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter())); |
| 42 view_event_dispatcher_->SetRootViewTarget(root_target); | 43 view_event_dispatcher_->SetRootViewTarget(root_target); |
| 43 | 44 |
| 45 CaptureController capture_controller; |
| 46 SetCaptureController(&root, &capture_controller); |
| 47 |
| 44 TestView one(2, gfx::Rect(0, 0, 500, 100)); | 48 TestView one(2, gfx::Rect(0, 0, 500, 100)); |
| 45 TestView two(3, gfx::Rect(501, 0, 500, 1000)); | 49 TestView two(3, gfx::Rect(501, 0, 500, 1000)); |
| 46 | 50 |
| 47 root.AddChild(&one); | 51 root.AddChild(&one); |
| 48 root.AddChild(&two); | 52 root.AddChild(&two); |
| 49 | 53 |
| 50 ui::test::TestEventHandler handler; | 54 ui::test::TestEventHandler handler; |
| 51 one.target()->AddPreTargetHandler(&handler); | 55 one.target()->AddPreTargetHandler(&handler); |
| 52 | 56 |
| 53 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(20, 20), | 57 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(20, 20), |
| 54 gfx::Point(20, 20), ui::EF_NONE, ui::EF_NONE); | 58 gfx::Point(20, 20), ui::EF_NONE, ui::EF_NONE); |
| 55 ui::EventDispatchDetails details = | 59 ui::EventDispatchDetails details = |
| 56 view_event_dispatcher_->OnEventFromSource(&press); | 60 view_event_dispatcher_->OnEventFromSource(&press); |
| 57 ASSERT_FALSE(details.dispatcher_destroyed); | 61 ASSERT_FALSE(details.dispatcher_destroyed); |
| 58 | 62 |
| 59 EXPECT_EQ(1, handler.num_mouse_events()); | 63 EXPECT_EQ(1, handler.num_mouse_events()); |
| 60 | 64 |
| 61 one.target()->RemovePreTargetHandler(&handler); | 65 one.target()->RemovePreTargetHandler(&handler); |
| 62 } | 66 } |
| 63 | 67 |
| 64 TEST_F(ViewTargeterTest, KeyTest) { | 68 TEST_F(ViewTargeterTest, KeyTest) { |
| 65 // The dispatcher will take ownership of the tree root. | 69 // The dispatcher will take ownership of the tree root. |
| 66 TestView root(1, gfx::Rect(0, 0, 100, 100)); | 70 TestView root(1, gfx::Rect(0, 0, 100, 100)); |
| 67 ViewTarget* root_target = root.target(); | 71 ViewTarget* root_target = root.target(); |
| 68 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter())); | 72 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter())); |
| 69 view_event_dispatcher_->SetRootViewTarget(root_target); | 73 view_event_dispatcher_->SetRootViewTarget(root_target); |
| 70 | 74 |
| 75 CaptureController capture_controller; |
| 76 SetCaptureController(&root, &capture_controller); |
| 77 |
| 71 TestView one(2, gfx::Rect(0, 0, 500, 100)); | 78 TestView one(2, gfx::Rect(0, 0, 500, 100)); |
| 72 TestView two(3, gfx::Rect(501, 0, 500, 1000)); | 79 TestView two(3, gfx::Rect(501, 0, 500, 1000)); |
| 73 | 80 |
| 74 root.AddChild(&one); | 81 root.AddChild(&one); |
| 75 root.AddChild(&two); | 82 root.AddChild(&two); |
| 76 | 83 |
| 77 ui::test::TestEventHandler one_handler; | 84 ui::test::TestEventHandler one_handler; |
| 78 one.target()->AddPreTargetHandler(&one_handler); | 85 one.target()->AddPreTargetHandler(&one_handler); |
| 79 | 86 |
| 80 ui::test::TestEventHandler two_handler; | 87 ui::test::TestEventHandler two_handler; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 96 ui::KeyEvent key_event_two(ui::ET_KEY_PRESSED, ui::VKEY_A, 0); | 103 ui::KeyEvent key_event_two(ui::ET_KEY_PRESSED, ui::VKEY_A, 0); |
| 97 details = view_event_dispatcher_->OnEventFromSource(&key_event_two); | 104 details = view_event_dispatcher_->OnEventFromSource(&key_event_two); |
| 98 ASSERT_FALSE(details.dispatcher_destroyed); | 105 ASSERT_FALSE(details.dispatcher_destroyed); |
| 99 EXPECT_EQ(1, two_handler.num_key_events()); | 106 EXPECT_EQ(1, two_handler.num_key_events()); |
| 100 | 107 |
| 101 two.target()->RemovePreTargetHandler(&two_handler); | 108 two.target()->RemovePreTargetHandler(&two_handler); |
| 102 one.target()->RemovePreTargetHandler(&one_handler); | 109 one.target()->RemovePreTargetHandler(&one_handler); |
| 103 } | 110 } |
| 104 | 111 |
| 105 } // namespace window_manager | 112 } // namespace window_manager |
| OLD | NEW |