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

Side by Side Diff: ui/events/event_dispatcher_unittest.cc

Issue 683553002: Standardize usage of virtual/override/final specifiers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « ui/events/device_data_manager.h ('k') | ui/events/event_processor_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/events/event_dispatcher.h" 5 #include "ui/events/event_dispatcher.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/events/event.h" 8 #include "ui/events/event.h"
9 #include "ui/events/event_dispatcher.h" 9 #include "ui/events/event_dispatcher.h"
10 #include "ui/events/event_target.h" 10 #include "ui/events/event_target.h"
11 #include "ui/events/event_target_iterator.h" 11 #include "ui/events/event_target_iterator.h"
12 #include "ui/events/event_utils.h" 12 #include "ui/events/event_utils.h"
13 13
14 namespace ui { 14 namespace ui {
15 15
16 namespace { 16 namespace {
17 17
18 class TestTarget : public EventTarget { 18 class TestTarget : public EventTarget {
19 public: 19 public:
20 TestTarget() : parent_(NULL), valid_(true) {} 20 TestTarget() : parent_(NULL), valid_(true) {}
21 virtual ~TestTarget() {} 21 ~TestTarget() override {}
22 22
23 void set_parent(TestTarget* parent) { parent_ = parent; } 23 void set_parent(TestTarget* parent) { parent_ = parent; }
24 24
25 bool valid() const { return valid_; } 25 bool valid() const { return valid_; }
26 void set_valid(bool valid) { valid_ = valid; } 26 void set_valid(bool valid) { valid_ = valid; }
27 27
28 void AddHandlerId(int id) { 28 void AddHandlerId(int id) {
29 handler_list_.push_back(id); 29 handler_list_.push_back(id);
30 } 30 }
31 31
32 const std::vector<int>& handler_list() const { return handler_list_; } 32 const std::vector<int>& handler_list() const { return handler_list_; }
33 33
34 void Reset() { 34 void Reset() {
35 handler_list_.clear(); 35 handler_list_.clear();
36 valid_ = true; 36 valid_ = true;
37 } 37 }
38 38
39 private: 39 private:
40 // Overridden from EventTarget: 40 // Overridden from EventTarget:
41 virtual bool CanAcceptEvent(const ui::Event& event) override { 41 bool CanAcceptEvent(const ui::Event& event) override { return true; }
42 return true;
43 }
44 42
45 virtual EventTarget* GetParentTarget() override { 43 EventTarget* GetParentTarget() override { return parent_; }
46 return parent_;
47 }
48 44
49 virtual scoped_ptr<EventTargetIterator> GetChildIterator() const override { 45 scoped_ptr<EventTargetIterator> GetChildIterator() const override {
50 return scoped_ptr<EventTargetIterator>(); 46 return scoped_ptr<EventTargetIterator>();
51 } 47 }
52 48
53 virtual EventTargeter* GetEventTargeter() override { 49 EventTargeter* GetEventTargeter() override { return NULL; }
54 return NULL;
55 }
56 50
57 TestTarget* parent_; 51 TestTarget* parent_;
58 std::vector<int> handler_list_; 52 std::vector<int> handler_list_;
59 bool valid_; 53 bool valid_;
60 54
61 DISALLOW_COPY_AND_ASSIGN(TestTarget); 55 DISALLOW_COPY_AND_ASSIGN(TestTarget);
62 }; 56 };
63 57
64 class TestEventHandler : public EventHandler { 58 class TestEventHandler : public EventHandler {
65 public: 59 public:
66 TestEventHandler(int id) 60 TestEventHandler(int id)
67 : id_(id), 61 : id_(id),
68 event_result_(ER_UNHANDLED), 62 event_result_(ER_UNHANDLED),
69 expect_pre_target_(false), 63 expect_pre_target_(false),
70 expect_post_target_(false), 64 expect_post_target_(false),
71 received_pre_target_(false) { 65 received_pre_target_(false) {
72 } 66 }
73 67
74 virtual ~TestEventHandler() {} 68 ~TestEventHandler() override {}
75 69
76 virtual void ReceivedEvent(Event* event) { 70 virtual void ReceivedEvent(Event* event) {
77 static_cast<TestTarget*>(event->target())->AddHandlerId(id_); 71 static_cast<TestTarget*>(event->target())->AddHandlerId(id_);
78 if (event->phase() == ui::EP_POSTTARGET) { 72 if (event->phase() == ui::EP_POSTTARGET) {
79 EXPECT_TRUE(expect_post_target_); 73 EXPECT_TRUE(expect_post_target_);
80 if (expect_pre_target_) 74 if (expect_pre_target_)
81 EXPECT_TRUE(received_pre_target_); 75 EXPECT_TRUE(received_pre_target_);
82 } else if (event->phase() == ui::EP_PRETARGET) { 76 } else if (event->phase() == ui::EP_PRETARGET) {
83 EXPECT_TRUE(expect_pre_target_); 77 EXPECT_TRUE(expect_pre_target_);
84 received_pre_target_ = true; 78 received_pre_target_ = true;
85 } else { 79 } else {
86 NOTREACHED(); 80 NOTREACHED();
87 } 81 }
88 } 82 }
89 83
90 void set_event_result(EventResult result) { event_result_ = result; } 84 void set_event_result(EventResult result) { event_result_ = result; }
91 85
92 void set_expect_pre_target(bool expect) { expect_pre_target_ = expect; } 86 void set_expect_pre_target(bool expect) { expect_pre_target_ = expect; }
93 void set_expect_post_target(bool expect) { expect_post_target_ = expect; } 87 void set_expect_post_target(bool expect) { expect_post_target_ = expect; }
94 88
95 private: 89 private:
96 // Overridden from EventHandler: 90 // Overridden from EventHandler:
97 virtual void OnEvent(Event* event) override { 91 void OnEvent(Event* event) override {
98 ui::EventHandler::OnEvent(event); 92 ui::EventHandler::OnEvent(event);
99 ReceivedEvent(event); 93 ReceivedEvent(event);
100 SetStatusOnEvent(event); 94 SetStatusOnEvent(event);
101 } 95 }
102 96
103 void SetStatusOnEvent(Event* event) { 97 void SetStatusOnEvent(Event* event) {
104 if (event_result_ & ui::ER_CONSUMED) 98 if (event_result_ & ui::ER_CONSUMED)
105 event->StopPropagation(); 99 event->StopPropagation();
106 if (event_result_ & ui::ER_HANDLED) 100 if (event_result_ & ui::ER_HANDLED)
107 event->SetHandled(); 101 event->SetHandled();
108 } 102 }
109 103
110 int id_; 104 int id_;
111 EventResult event_result_; 105 EventResult event_result_;
112 bool expect_pre_target_; 106 bool expect_pre_target_;
113 bool expect_post_target_; 107 bool expect_post_target_;
114 bool received_pre_target_; 108 bool received_pre_target_;
115 109
116 DISALLOW_COPY_AND_ASSIGN(TestEventHandler); 110 DISALLOW_COPY_AND_ASSIGN(TestEventHandler);
117 }; 111 };
118 112
119 class NonCancelableEvent : public Event { 113 class NonCancelableEvent : public Event {
120 public: 114 public:
121 NonCancelableEvent() 115 NonCancelableEvent()
122 : Event(ui::ET_CANCEL_MODE, ui::EventTimeForNow(), 0) { 116 : Event(ui::ET_CANCEL_MODE, ui::EventTimeForNow(), 0) {
123 set_cancelable(false); 117 set_cancelable(false);
124 } 118 }
125 119
126 virtual ~NonCancelableEvent() {} 120 ~NonCancelableEvent() override {}
127 121
128 private: 122 private:
129 DISALLOW_COPY_AND_ASSIGN(NonCancelableEvent); 123 DISALLOW_COPY_AND_ASSIGN(NonCancelableEvent);
130 }; 124 };
131 125
132 // Destroys the dispatcher-delegate when it receives any event. 126 // Destroys the dispatcher-delegate when it receives any event.
133 class EventHandlerDestroyDispatcherDelegate : public TestEventHandler { 127 class EventHandlerDestroyDispatcherDelegate : public TestEventHandler {
134 public: 128 public:
135 EventHandlerDestroyDispatcherDelegate(EventDispatcherDelegate* delegate, 129 EventHandlerDestroyDispatcherDelegate(EventDispatcherDelegate* delegate,
136 int id) 130 int id)
137 : TestEventHandler(id), 131 : TestEventHandler(id),
138 dispatcher_delegate_(delegate) { 132 dispatcher_delegate_(delegate) {
139 } 133 }
140 134
141 virtual ~EventHandlerDestroyDispatcherDelegate() {} 135 ~EventHandlerDestroyDispatcherDelegate() override {}
142 136
143 private: 137 private:
144 virtual void ReceivedEvent(Event* event) override { 138 void ReceivedEvent(Event* event) override {
145 TestEventHandler::ReceivedEvent(event); 139 TestEventHandler::ReceivedEvent(event);
146 delete dispatcher_delegate_; 140 delete dispatcher_delegate_;
147 } 141 }
148 142
149 EventDispatcherDelegate* dispatcher_delegate_; 143 EventDispatcherDelegate* dispatcher_delegate_;
150 144
151 DISALLOW_COPY_AND_ASSIGN(EventHandlerDestroyDispatcherDelegate); 145 DISALLOW_COPY_AND_ASSIGN(EventHandlerDestroyDispatcherDelegate);
152 }; 146 };
153 147
154 // Invalidates the target when it receives any event. 148 // Invalidates the target when it receives any event.
155 class InvalidateTargetEventHandler : public TestEventHandler { 149 class InvalidateTargetEventHandler : public TestEventHandler {
156 public: 150 public:
157 explicit InvalidateTargetEventHandler(int id) : TestEventHandler(id) {} 151 explicit InvalidateTargetEventHandler(int id) : TestEventHandler(id) {}
158 virtual ~InvalidateTargetEventHandler() {} 152 ~InvalidateTargetEventHandler() override {}
159 153
160 private: 154 private:
161 virtual void ReceivedEvent(Event* event) override { 155 void ReceivedEvent(Event* event) override {
162 TestEventHandler::ReceivedEvent(event); 156 TestEventHandler::ReceivedEvent(event);
163 TestTarget* target = static_cast<TestTarget*>(event->target()); 157 TestTarget* target = static_cast<TestTarget*>(event->target());
164 target->set_valid(false); 158 target->set_valid(false);
165 } 159 }
166 160
167 DISALLOW_COPY_AND_ASSIGN(InvalidateTargetEventHandler); 161 DISALLOW_COPY_AND_ASSIGN(InvalidateTargetEventHandler);
168 }; 162 };
169 163
170 // Destroys a second event handler when this handler gets an event. 164 // Destroys a second event handler when this handler gets an event.
171 // Optionally also destroys the dispatcher. 165 // Optionally also destroys the dispatcher.
172 class EventHandlerDestroyer : public TestEventHandler { 166 class EventHandlerDestroyer : public TestEventHandler {
173 public: 167 public:
174 EventHandlerDestroyer(int id, EventHandler* destroy) 168 EventHandlerDestroyer(int id, EventHandler* destroy)
175 : TestEventHandler(id), 169 : TestEventHandler(id),
176 to_destroy_(destroy), 170 to_destroy_(destroy),
177 dispatcher_delegate_(NULL) { 171 dispatcher_delegate_(NULL) {
178 } 172 }
179 173
180 virtual ~EventHandlerDestroyer() { 174 ~EventHandlerDestroyer() override { CHECK(!to_destroy_); }
181 CHECK(!to_destroy_);
182 }
183 175
184 void set_dispatcher_delegate(EventDispatcherDelegate* dispatcher_delegate) { 176 void set_dispatcher_delegate(EventDispatcherDelegate* dispatcher_delegate) {
185 dispatcher_delegate_ = dispatcher_delegate; 177 dispatcher_delegate_ = dispatcher_delegate;
186 } 178 }
187 179
188 private: 180 private:
189 virtual void ReceivedEvent(Event* event) override { 181 void ReceivedEvent(Event* event) override {
190 TestEventHandler::ReceivedEvent(event); 182 TestEventHandler::ReceivedEvent(event);
191 delete to_destroy_; 183 delete to_destroy_;
192 to_destroy_ = NULL; 184 to_destroy_ = NULL;
193 185
194 if (dispatcher_delegate_) { 186 if (dispatcher_delegate_) {
195 delete dispatcher_delegate_; 187 delete dispatcher_delegate_;
196 dispatcher_delegate_ = NULL; 188 dispatcher_delegate_ = NULL;
197 } 189 }
198 } 190 }
199 191
200 EventHandler* to_destroy_; 192 EventHandler* to_destroy_;
201 EventDispatcherDelegate* dispatcher_delegate_; 193 EventDispatcherDelegate* dispatcher_delegate_;
202 194
203 DISALLOW_COPY_AND_ASSIGN(EventHandlerDestroyer); 195 DISALLOW_COPY_AND_ASSIGN(EventHandlerDestroyer);
204 }; 196 };
205 197
206 class TestEventDispatcher : public EventDispatcherDelegate { 198 class TestEventDispatcher : public EventDispatcherDelegate {
207 public: 199 public:
208 TestEventDispatcher() {} 200 TestEventDispatcher() {}
209 201
210 virtual ~TestEventDispatcher() {} 202 ~TestEventDispatcher() override {}
211 203
212 EventDispatchDetails ProcessEvent(EventTarget* target, Event* event) { 204 EventDispatchDetails ProcessEvent(EventTarget* target, Event* event) {
213 return DispatchEvent(target, event); 205 return DispatchEvent(target, event);
214 } 206 }
215 207
216 private: 208 private:
217 // Overridden from EventDispatcherDelegate: 209 // Overridden from EventDispatcherDelegate:
218 virtual bool CanDispatchToTarget(EventTarget* target) override { 210 bool CanDispatchToTarget(EventTarget* target) override {
219 TestTarget* test_target = static_cast<TestTarget*>(target); 211 TestTarget* test_target = static_cast<TestTarget*>(target);
220 return test_target->valid(); 212 return test_target->valid();
221 } 213 }
222 214
223 DISALLOW_COPY_AND_ASSIGN(TestEventDispatcher); 215 DISALLOW_COPY_AND_ASSIGN(TestEventDispatcher);
224 }; 216 };
225 217
226 } // namespace 218 } // namespace
227 219
228 TEST(EventDispatcherTest, EventDispatchOrder) { 220 TEST(EventDispatcherTest, EventDispatchOrder) {
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 NonCancelableEvent event; 592 NonCancelableEvent event;
601 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event); 593 EventDispatchDetails details = dispatcher->ProcessEvent(&target, &event);
602 EXPECT_TRUE(details.dispatcher_destroyed); 594 EXPECT_TRUE(details.dispatcher_destroyed);
603 EXPECT_EQ(2U, target.handler_list().size()); 595 EXPECT_EQ(2U, target.handler_list().size());
604 EXPECT_EQ(1, target.handler_list()[0]); 596 EXPECT_EQ(1, target.handler_list()[0]);
605 EXPECT_EQ(2, target.handler_list()[1]); 597 EXPECT_EQ(2, target.handler_list()[1]);
606 } 598 }
607 } 599 }
608 600
609 } // namespace ui 601 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/device_data_manager.h ('k') | ui/events/event_processor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698