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

Side by Side Diff: mojo/services/window_manager/view_targeter_unittest.cc

Issue 1049993002: Get mojo_shell building inside chromium checkout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix presubmit Created 5 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "mojo/services/window_manager/view_targeter.h"
6
7 #include "mojo/services/window_manager/basic_focus_rules.h"
8 #include "mojo/services/window_manager/capture_controller.h"
9 #include "mojo/services/window_manager/focus_controller.h"
10 #include "mojo/services/window_manager/view_event_dispatcher.h"
11 #include "mojo/services/window_manager/window_manager_test_util.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/events/event_utils.h"
14 #include "ui/events/test/test_event_handler.h"
15
16 namespace window_manager {
17
18 class ViewTargeterTest : public testing::Test {
19 public:
20 ViewTargeterTest() {}
21 ~ViewTargeterTest() override {}
22
23 void SetUp() override {
24 view_event_dispatcher_.reset(new ViewEventDispatcher());
25 }
26
27 void TearDown() override {
28 view_event_dispatcher_.reset();
29 testing::Test::TearDown();
30 }
31
32 protected:
33 scoped_ptr<ViewEventDispatcher> view_event_dispatcher_;
34
35 private:
36 DISALLOW_COPY_AND_ASSIGN(ViewTargeterTest);
37 };
38
39 TEST_F(ViewTargeterTest, Basic) {
40 // The dispatcher will take ownership of the tree root.
41 TestView root(1, gfx::Rect(0, 0, 100, 100));
42 ViewTarget* root_target = root.target();
43 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter()));
44 view_event_dispatcher_->SetRootViewTarget(root_target);
45
46 CaptureController capture_controller;
47 SetCaptureController(&root, &capture_controller);
48
49 TestView one(2, gfx::Rect(0, 0, 500, 100));
50 TestView two(3, gfx::Rect(501, 0, 500, 1000));
51
52 root.AddChild(&one);
53 root.AddChild(&two);
54
55 ui::test::TestEventHandler handler;
56 one.target()->AddPreTargetHandler(&handler);
57
58 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(20, 20),
59 gfx::Point(20, 20), ui::EventTimeForNow(), ui::EF_NONE,
60 ui::EF_NONE);
61 ui::EventDispatchDetails details =
62 view_event_dispatcher_->OnEventFromSource(&press);
63 ASSERT_FALSE(details.dispatcher_destroyed);
64
65 EXPECT_EQ(1, handler.num_mouse_events());
66
67 one.target()->RemovePreTargetHandler(&handler);
68 }
69
70 TEST_F(ViewTargeterTest, KeyTest) {
71 // The dispatcher will take ownership of the tree root.
72 TestView root(1, gfx::Rect(0, 0, 100, 100));
73 ViewTarget* root_target = root.target();
74 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter()));
75 view_event_dispatcher_->SetRootViewTarget(root_target);
76
77 CaptureController capture_controller;
78 SetCaptureController(&root, &capture_controller);
79
80 TestView one(2, gfx::Rect(0, 0, 500, 100));
81 TestView two(3, gfx::Rect(501, 0, 500, 1000));
82
83 root.AddChild(&one);
84 root.AddChild(&two);
85
86 ui::test::TestEventHandler one_handler;
87 one.target()->AddPreTargetHandler(&one_handler);
88
89 ui::test::TestEventHandler two_handler;
90 two.target()->AddPreTargetHandler(&two_handler);
91
92 FocusController focus_controller(make_scoped_ptr(new BasicFocusRules(&root)));
93 SetFocusController(&root, &focus_controller);
94
95 // Focus |one|. Then test that it receives a key event.
96 focus_controller.FocusView(&one);
97 ui::KeyEvent key_event_one(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
98 ui::EventDispatchDetails details =
99 view_event_dispatcher_->OnEventFromSource(&key_event_one);
100 ASSERT_FALSE(details.dispatcher_destroyed);
101 EXPECT_EQ(1, one_handler.num_key_events());
102
103 // Focus |two|. Then test that it receives a key event.
104 focus_controller.FocusView(&two);
105 ui::KeyEvent key_event_two(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
106 details = view_event_dispatcher_->OnEventFromSource(&key_event_two);
107 ASSERT_FALSE(details.dispatcher_destroyed);
108 EXPECT_EQ(1, two_handler.num_key_events());
109
110 two.target()->RemovePreTargetHandler(&two_handler);
111 one.target()->RemovePreTargetHandler(&one_handler);
112 }
113
114 } // namespace window_manager
OLDNEW
« no previous file with comments | « mojo/services/window_manager/view_targeter.cc ('k') | mojo/services/window_manager/window_manager_api_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698