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

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

Issue 765753003: Move window_manager service implementation to //services (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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/focus_controller.h"
9 #include "mojo/services/window_manager/view_event_dispatcher.h"
10 #include "mojo/services/window_manager/window_manager_test_util.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/events/test/test_event_handler.h"
13
14 namespace mojo {
15
16 class ViewTargeterTest : public testing::Test {
17 public:
18 ViewTargeterTest() {}
19 ~ViewTargeterTest() override {}
20
21 void SetUp() override {
22 view_event_dispatcher_.reset(new ViewEventDispatcher());
23 }
24
25 void TearDown() override {
26 view_event_dispatcher_.reset();
27 testing::Test::TearDown();
28 }
29
30 protected:
31 scoped_ptr<ViewEventDispatcher> view_event_dispatcher_;
32
33 private:
34 DISALLOW_COPY_AND_ASSIGN(ViewTargeterTest);
35 };
36
37 TEST_F(ViewTargeterTest, Basic) {
38 // The dispatcher will take ownership of the tree root.
39 TestView root(1, gfx::Rect(0, 0, 100, 100));
40 ViewTarget* root_target = root.target();
41 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter()));
42 view_event_dispatcher_->SetRootViewTarget(root_target);
43
44 TestView one(2, gfx::Rect(0, 0, 500, 100));
45 TestView two(3, gfx::Rect(501, 0, 500, 1000));
46
47 root.AddChild(&one);
48 root.AddChild(&two);
49
50 ui::test::TestEventHandler handler;
51 one.target()->AddPreTargetHandler(&handler);
52
53 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(20, 20),
54 gfx::Point(20, 20), ui::EF_NONE, ui::EF_NONE);
55 ui::EventDispatchDetails details =
56 view_event_dispatcher_->OnEventFromSource(&press);
57 ASSERT_FALSE(details.dispatcher_destroyed);
58
59 EXPECT_EQ(1, handler.num_mouse_events());
60
61 one.target()->RemovePreTargetHandler(&handler);
62 }
63
64 TEST_F(ViewTargeterTest, KeyTest) {
65 // The dispatcher will take ownership of the tree root.
66 TestView root(1, gfx::Rect(0, 0, 100, 100));
67 ViewTarget* root_target = root.target();
68 root_target->SetEventTargeter(scoped_ptr<ViewTargeter>(new ViewTargeter()));
69 view_event_dispatcher_->SetRootViewTarget(root_target);
70
71 TestView one(2, gfx::Rect(0, 0, 500, 100));
72 TestView two(3, gfx::Rect(501, 0, 500, 1000));
73
74 root.AddChild(&one);
75 root.AddChild(&two);
76
77 ui::test::TestEventHandler one_handler;
78 one.target()->AddPreTargetHandler(&one_handler);
79
80 ui::test::TestEventHandler two_handler;
81 two.target()->AddPreTargetHandler(&two_handler);
82
83 FocusController focus_controller(scoped_ptr<mojo::FocusRules>(
84 new mojo::BasicFocusRules(&root)));
85 SetFocusController(&root, &focus_controller);
86
87 // Focus |one|. Then test that it receives a key event.
88 focus_controller.FocusView(&one);
89 ui::KeyEvent key_event_one(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
90 ui::EventDispatchDetails details =
91 view_event_dispatcher_->OnEventFromSource(&key_event_one);
92 ASSERT_FALSE(details.dispatcher_destroyed);
93 EXPECT_EQ(1, one_handler.num_key_events());
94
95 // Focus |two|. Then test that it receives a key event.
96 focus_controller.FocusView(&two);
97 ui::KeyEvent key_event_two(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
98 details = view_event_dispatcher_->OnEventFromSource(&key_event_two);
99 ASSERT_FALSE(details.dispatcher_destroyed);
100 EXPECT_EQ(1, two_handler.num_key_events());
101
102 two.target()->RemovePreTargetHandler(&two_handler);
103 one.target()->RemovePreTargetHandler(&one_handler);
104 }
105
106 } // namespace mojo
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