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 |