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

Side by Side Diff: ui/views/focus/focus_manager_unittest.cc

Issue 838253004: MacViews: Fix duplicate definition of ExtensionKeyBindingRegistry::SetShortcutHandlingSuspended (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@DragBookmarks2
Patch Set: Created 5 years, 11 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
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/views/focus/focus_manager.h" 5 #include "ui/views/focus/focus_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 190
191 TEST_F(FocusManagerTest, CallsNormalAcceleratorTarget) { 191 TEST_F(FocusManagerTest, CallsNormalAcceleratorTarget) {
192 FocusManager* focus_manager = GetFocusManager(); 192 FocusManager* focus_manager = GetFocusManager();
193 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 193 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
194 ui::Accelerator escape_accelerator(ui::VKEY_ESCAPE, ui::EF_NONE); 194 ui::Accelerator escape_accelerator(ui::VKEY_ESCAPE, ui::EF_NONE);
195 195
196 TestAcceleratorTarget return_target(true); 196 TestAcceleratorTarget return_target(true);
197 TestAcceleratorTarget escape_target(true); 197 TestAcceleratorTarget escape_target(true);
198 EXPECT_EQ(return_target.accelerator_count(), 0); 198 EXPECT_EQ(return_target.accelerator_count(), 0);
199 EXPECT_EQ(escape_target.accelerator_count(), 0); 199 EXPECT_EQ(escape_target.accelerator_count(), 0);
200 EXPECT_EQ(NULL, 200 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(return_accelerator));
201 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 201 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(escape_accelerator));
202 EXPECT_EQ(NULL,
203 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator));
204 202
205 // Register targets. 203 // Register targets.
206 focus_manager->RegisterAccelerator(return_accelerator, 204 focus_manager->RegisterAccelerator(return_accelerator,
207 ui::AcceleratorManager::kNormalPriority, 205 ui::AcceleratorManager::kNormalPriority,
208 &return_target); 206 &return_target);
209 focus_manager->RegisterAccelerator(escape_accelerator, 207 focus_manager->RegisterAccelerator(escape_accelerator,
210 ui::AcceleratorManager::kNormalPriority, 208 ui::AcceleratorManager::kNormalPriority,
211 &escape_target); 209 &escape_target);
212 210
213 // Checks if the correct target is registered. 211 // Checks if the correct target is registered.
214 EXPECT_EQ(&return_target, 212 EXPECT_EQ(&return_target,
215 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 213 focus_manager->GetTargetForAccelerator(return_accelerator));
216 EXPECT_EQ(&escape_target, 214 EXPECT_EQ(&escape_target,
217 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 215 focus_manager->GetTargetForAccelerator(escape_accelerator));
218 216
219 // Hitting the return key. 217 // Hitting the return key.
220 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 218 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
221 EXPECT_EQ(return_target.accelerator_count(), 1); 219 EXPECT_EQ(return_target.accelerator_count(), 1);
222 EXPECT_EQ(escape_target.accelerator_count(), 0); 220 EXPECT_EQ(escape_target.accelerator_count(), 0);
223 221
224 // Hitting the escape key. 222 // Hitting the escape key.
225 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 223 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
226 EXPECT_EQ(return_target.accelerator_count(), 1); 224 EXPECT_EQ(return_target.accelerator_count(), 1);
227 EXPECT_EQ(escape_target.accelerator_count(), 1); 225 EXPECT_EQ(escape_target.accelerator_count(), 1);
228 226
229 // Register another target for the return key. 227 // Register another target for the return key.
230 TestAcceleratorTarget return_target2(true); 228 TestAcceleratorTarget return_target2(true);
231 EXPECT_EQ(return_target2.accelerator_count(), 0); 229 EXPECT_EQ(return_target2.accelerator_count(), 0);
232 focus_manager->RegisterAccelerator(return_accelerator, 230 focus_manager->RegisterAccelerator(return_accelerator,
233 ui::AcceleratorManager::kNormalPriority, 231 ui::AcceleratorManager::kNormalPriority,
234 &return_target2); 232 &return_target2);
235 EXPECT_EQ(&return_target2, 233 EXPECT_EQ(&return_target2,
236 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 234 focus_manager->GetTargetForAccelerator(return_accelerator));
237 235
238 // Hitting the return key; return_target2 has the priority. 236 // Hitting the return key; return_target2 has the priority.
239 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 237 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
240 EXPECT_EQ(return_target.accelerator_count(), 1); 238 EXPECT_EQ(return_target.accelerator_count(), 1);
241 EXPECT_EQ(return_target2.accelerator_count(), 1); 239 EXPECT_EQ(return_target2.accelerator_count(), 1);
242 240
243 // Register a target that does not process the accelerator event. 241 // Register a target that does not process the accelerator event.
244 TestAcceleratorTarget return_target3(false); 242 TestAcceleratorTarget return_target3(false);
245 EXPECT_EQ(return_target3.accelerator_count(), 0); 243 EXPECT_EQ(return_target3.accelerator_count(), 0);
246 focus_manager->RegisterAccelerator(return_accelerator, 244 focus_manager->RegisterAccelerator(return_accelerator,
247 ui::AcceleratorManager::kNormalPriority, 245 ui::AcceleratorManager::kNormalPriority,
248 &return_target3); 246 &return_target3);
249 EXPECT_EQ(&return_target3, 247 EXPECT_EQ(&return_target3,
250 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 248 focus_manager->GetTargetForAccelerator(return_accelerator));
251 249
252 // Hitting the return key. 250 // Hitting the return key.
253 // Since the event handler of return_target3 returns false, return_target2 251 // Since the event handler of return_target3 returns false, return_target2
254 // should be called too. 252 // should be called too.
255 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 253 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
256 EXPECT_EQ(return_target.accelerator_count(), 1); 254 EXPECT_EQ(return_target.accelerator_count(), 1);
257 EXPECT_EQ(return_target2.accelerator_count(), 2); 255 EXPECT_EQ(return_target2.accelerator_count(), 2);
258 EXPECT_EQ(return_target3.accelerator_count(), 1); 256 EXPECT_EQ(return_target3.accelerator_count(), 1);
259 257
260 // Unregister return_target2. 258 // Unregister return_target2.
261 focus_manager->UnregisterAccelerator(return_accelerator, &return_target2); 259 focus_manager->UnregisterAccelerator(return_accelerator, &return_target2);
262 EXPECT_EQ(&return_target3, 260 EXPECT_EQ(&return_target3,
263 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 261 focus_manager->GetTargetForAccelerator(return_accelerator));
264 262
265 // Hitting the return key. return_target3 and return_target should be called. 263 // Hitting the return key. return_target3 and return_target should be called.
266 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 264 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
267 EXPECT_EQ(return_target.accelerator_count(), 2); 265 EXPECT_EQ(return_target.accelerator_count(), 2);
268 EXPECT_EQ(return_target2.accelerator_count(), 2); 266 EXPECT_EQ(return_target2.accelerator_count(), 2);
269 EXPECT_EQ(return_target3.accelerator_count(), 2); 267 EXPECT_EQ(return_target3.accelerator_count(), 2);
270 268
271 // Unregister targets. 269 // Unregister targets.
272 focus_manager->UnregisterAccelerator(return_accelerator, &return_target); 270 focus_manager->UnregisterAccelerator(return_accelerator, &return_target);
273 focus_manager->UnregisterAccelerator(return_accelerator, &return_target3); 271 focus_manager->UnregisterAccelerator(return_accelerator, &return_target3);
274 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target); 272 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target);
275 273
276 // Now there is no target registered. 274 // Now there is no target registered.
277 EXPECT_EQ(NULL, 275 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(return_accelerator));
278 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 276 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(escape_accelerator));
279 EXPECT_EQ(NULL,
280 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator));
281 277
282 // Hitting the return key and the escape key. Nothing should happen. 278 // Hitting the return key and the escape key. Nothing should happen.
283 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator)); 279 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
284 EXPECT_EQ(return_target.accelerator_count(), 2); 280 EXPECT_EQ(return_target.accelerator_count(), 2);
285 EXPECT_EQ(return_target2.accelerator_count(), 2); 281 EXPECT_EQ(return_target2.accelerator_count(), 2);
286 EXPECT_EQ(return_target3.accelerator_count(), 2); 282 EXPECT_EQ(return_target3.accelerator_count(), 2);
287 EXPECT_FALSE(focus_manager->ProcessAccelerator(escape_accelerator)); 283 EXPECT_FALSE(focus_manager->ProcessAccelerator(escape_accelerator));
288 EXPECT_EQ(escape_target.accelerator_count(), 1); 284 EXPECT_EQ(escape_target.accelerator_count(), 1);
289 } 285 }
290 286
291 TEST_F(FocusManagerTest, HighPriorityHandlers) { 287 TEST_F(FocusManagerTest, HighPriorityHandlers) {
292 FocusManager* focus_manager = GetFocusManager(); 288 FocusManager* focus_manager = GetFocusManager();
293 ui::Accelerator escape_accelerator(ui::VKEY_ESCAPE, ui::EF_NONE); 289 ui::Accelerator escape_accelerator(ui::VKEY_ESCAPE, ui::EF_NONE);
294 290
295 TestAcceleratorTarget escape_target_high(true); 291 TestAcceleratorTarget escape_target_high(true);
296 TestAcceleratorTarget escape_target_normal(true); 292 TestAcceleratorTarget escape_target_normal(true);
297 EXPECT_EQ(escape_target_high.accelerator_count(), 0); 293 EXPECT_EQ(escape_target_high.accelerator_count(), 0);
298 EXPECT_EQ(escape_target_normal.accelerator_count(), 0); 294 EXPECT_EQ(escape_target_normal.accelerator_count(), 0);
299 EXPECT_EQ(NULL, 295 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(escape_accelerator));
300 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator));
301 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator)); 296 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator));
302 297
303 // Register high priority target. 298 // Register high priority target.
304 focus_manager->RegisterAccelerator(escape_accelerator, 299 focus_manager->RegisterAccelerator(escape_accelerator,
305 ui::AcceleratorManager::kHighPriority, 300 ui::AcceleratorManager::kHighPriority,
306 &escape_target_high); 301 &escape_target_high);
307 EXPECT_EQ(&escape_target_high, 302 EXPECT_EQ(&escape_target_high,
308 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 303 focus_manager->GetTargetForAccelerator(escape_accelerator));
309 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator)); 304 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator));
310 305
311 // Hit the escape key. 306 // Hit the escape key.
312 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 307 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
313 EXPECT_EQ(escape_target_high.accelerator_count(), 1); 308 EXPECT_EQ(escape_target_high.accelerator_count(), 1);
314 EXPECT_EQ(escape_target_normal.accelerator_count(), 0); 309 EXPECT_EQ(escape_target_normal.accelerator_count(), 0);
315 310
316 // Add a normal priority target and make sure it doesn't see the key. 311 // Add a normal priority target and make sure it doesn't see the key.
317 focus_manager->RegisterAccelerator(escape_accelerator, 312 focus_manager->RegisterAccelerator(escape_accelerator,
318 ui::AcceleratorManager::kNormalPriority, 313 ui::AcceleratorManager::kNormalPriority,
319 &escape_target_normal); 314 &escape_target_normal);
320 315
321 // Checks if the correct target is registered (same as before, the high 316 // Checks if the correct target is registered (same as before, the high
322 // priority one). 317 // priority one).
323 EXPECT_EQ(&escape_target_high, 318 EXPECT_EQ(&escape_target_high,
324 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 319 focus_manager->GetTargetForAccelerator(escape_accelerator));
325 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator)); 320 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator));
326 321
327 // Hit the escape key. 322 // Hit the escape key.
328 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 323 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
329 EXPECT_EQ(escape_target_high.accelerator_count(), 2); 324 EXPECT_EQ(escape_target_high.accelerator_count(), 2);
330 EXPECT_EQ(escape_target_normal.accelerator_count(), 0); 325 EXPECT_EQ(escape_target_normal.accelerator_count(), 0);
331 326
332 // Unregister the high priority accelerator. 327 // Unregister the high priority accelerator.
333 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target_high); 328 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target_high);
334 EXPECT_EQ(&escape_target_normal, 329 EXPECT_EQ(&escape_target_normal,
335 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 330 focus_manager->GetTargetForAccelerator(escape_accelerator));
336 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator)); 331 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator));
337 332
338 // Hit the escape key. 333 // Hit the escape key.
339 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 334 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
340 EXPECT_EQ(escape_target_high.accelerator_count(), 2); 335 EXPECT_EQ(escape_target_high.accelerator_count(), 2);
341 EXPECT_EQ(escape_target_normal.accelerator_count(), 1); 336 EXPECT_EQ(escape_target_normal.accelerator_count(), 1);
342 337
343 // Add the high priority target back and make sure it starts seeing the key. 338 // Add the high priority target back and make sure it starts seeing the key.
344 focus_manager->RegisterAccelerator(escape_accelerator, 339 focus_manager->RegisterAccelerator(escape_accelerator,
345 ui::AcceleratorManager::kHighPriority, 340 ui::AcceleratorManager::kHighPriority,
346 &escape_target_high); 341 &escape_target_high);
347 EXPECT_EQ(&escape_target_high, 342 EXPECT_EQ(&escape_target_high,
348 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 343 focus_manager->GetTargetForAccelerator(escape_accelerator));
349 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator)); 344 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator));
350 345
351 // Hit the escape key. 346 // Hit the escape key.
352 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 347 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
353 EXPECT_EQ(escape_target_high.accelerator_count(), 3); 348 EXPECT_EQ(escape_target_high.accelerator_count(), 3);
354 EXPECT_EQ(escape_target_normal.accelerator_count(), 1); 349 EXPECT_EQ(escape_target_normal.accelerator_count(), 1);
355 350
356 // Unregister the normal priority accelerator. 351 // Unregister the normal priority accelerator.
357 focus_manager->UnregisterAccelerator( 352 focus_manager->UnregisterAccelerator(
358 escape_accelerator, &escape_target_normal); 353 escape_accelerator, &escape_target_normal);
359 EXPECT_EQ(&escape_target_high, 354 EXPECT_EQ(&escape_target_high,
360 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator)); 355 focus_manager->GetTargetForAccelerator(escape_accelerator));
361 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator)); 356 EXPECT_TRUE(focus_manager->HasPriorityHandler(escape_accelerator));
362 357
363 // Hit the escape key. 358 // Hit the escape key.
364 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator)); 359 EXPECT_TRUE(focus_manager->ProcessAccelerator(escape_accelerator));
365 EXPECT_EQ(escape_target_high.accelerator_count(), 4); 360 EXPECT_EQ(escape_target_high.accelerator_count(), 4);
366 EXPECT_EQ(escape_target_normal.accelerator_count(), 1); 361 EXPECT_EQ(escape_target_normal.accelerator_count(), 1);
367 362
368 // Unregister the high priority accelerator. 363 // Unregister the high priority accelerator.
369 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target_high); 364 focus_manager->UnregisterAccelerator(escape_accelerator, &escape_target_high);
370 EXPECT_EQ(NULL, 365 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(escape_accelerator));
371 focus_manager->GetCurrentTargetForAccelerator(escape_accelerator));
372 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator)); 366 EXPECT_FALSE(focus_manager->HasPriorityHandler(escape_accelerator));
373 367
374 // Hit the escape key (no change, no targets registered). 368 // Hit the escape key (no change, no targets registered).
375 EXPECT_FALSE(focus_manager->ProcessAccelerator(escape_accelerator)); 369 EXPECT_FALSE(focus_manager->ProcessAccelerator(escape_accelerator));
376 EXPECT_EQ(escape_target_high.accelerator_count(), 4); 370 EXPECT_EQ(escape_target_high.accelerator_count(), 4);
377 EXPECT_EQ(escape_target_normal.accelerator_count(), 1); 371 EXPECT_EQ(escape_target_normal.accelerator_count(), 1);
378 } 372 }
379 373
380 TEST_F(FocusManagerTest, CallsEnabledAcceleratorTargetsOnly) { 374 TEST_F(FocusManagerTest, CallsEnabledAcceleratorTargetsOnly) {
381 FocusManager* focus_manager = GetFocusManager(); 375 FocusManager* focus_manager = GetFocusManager();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 int accelerator_count_; 435 int accelerator_count_;
442 436
443 DISALLOW_COPY_AND_ASSIGN(SelfUnregisteringAcceleratorTarget); 437 DISALLOW_COPY_AND_ASSIGN(SelfUnregisteringAcceleratorTarget);
444 }; 438 };
445 439
446 TEST_F(FocusManagerTest, CallsSelfDeletingAcceleratorTarget) { 440 TEST_F(FocusManagerTest, CallsSelfDeletingAcceleratorTarget) {
447 FocusManager* focus_manager = GetFocusManager(); 441 FocusManager* focus_manager = GetFocusManager();
448 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE); 442 ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
449 SelfUnregisteringAcceleratorTarget target(return_accelerator, focus_manager); 443 SelfUnregisteringAcceleratorTarget target(return_accelerator, focus_manager);
450 EXPECT_EQ(target.accelerator_count(), 0); 444 EXPECT_EQ(target.accelerator_count(), 0);
451 EXPECT_EQ(NULL, 445 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(return_accelerator));
452 focus_manager->GetCurrentTargetForAccelerator(return_accelerator));
453 446
454 // Register the target. 447 // Register the target.
455 focus_manager->RegisterAccelerator(return_accelerator, 448 focus_manager->RegisterAccelerator(return_accelerator,
456 ui::AcceleratorManager::kNormalPriority, 449 ui::AcceleratorManager::kNormalPriority,
457 &target); 450 &target);
458 EXPECT_EQ(&target, 451 EXPECT_EQ(&target,
459 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 452 focus_manager->GetTargetForAccelerator(return_accelerator));
460 453
461 // Hitting the return key. The target will be unregistered. 454 // Hitting the return key. The target will be unregistered.
462 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 455 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
463 EXPECT_EQ(target.accelerator_count(), 1); 456 EXPECT_EQ(target.accelerator_count(), 1);
464 EXPECT_EQ(NULL, 457 EXPECT_EQ(NULL, focus_manager->GetTargetForAccelerator(return_accelerator));
465 focus_manager->GetCurrentTargetForAccelerator(return_accelerator));
466 458
467 // Hitting the return key again; nothing should happen. 459 // Hitting the return key again; nothing should happen.
468 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator)); 460 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
469 EXPECT_EQ(target.accelerator_count(), 1); 461 EXPECT_EQ(target.accelerator_count(), 1);
470 } 462 }
471 463
472 class FocusManagerDtorTest : public FocusManagerTest { 464 class FocusManagerDtorTest : public FocusManagerTest {
473 protected: 465 protected:
474 typedef std::vector<std::string> DtorTrackVector; 466 typedef std::vector<std::string> DtorTrackVector;
475 467
476 class FocusManagerDtorTracked : public FocusManager { 468 class FocusManagerDtorTracked : public FocusManager {
477 public: 469 public:
478 FocusManagerDtorTracked(Widget* widget, DtorTrackVector* dtor_tracker) 470 FocusManagerDtorTracked(Widget* widget, DtorTrackVector* dtor_tracker)
479 : FocusManager(widget, NULL /* delegate */), 471 : FocusManager(widget), dtor_tracker_(dtor_tracker) {}
480 dtor_tracker_(dtor_tracker) {
481 }
482 472
483 ~FocusManagerDtorTracked() override { 473 ~FocusManagerDtorTracked() override {
484 dtor_tracker_->push_back("FocusManagerDtorTracked"); 474 dtor_tracker_->push_back("FocusManagerDtorTracked");
485 } 475 }
486 476
487 DtorTrackVector* dtor_tracker_; 477 DtorTrackVector* dtor_tracker_;
488 478
489 private: 479 private:
490 DISALLOW_COPY_AND_ASSIGN(FocusManagerDtorTracked); 480 DISALLOW_COPY_AND_ASSIGN(FocusManagerDtorTracked);
491 }; 481 };
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 EXPECT_EQ(view1, GetFocusManager()->GetFocusedView()); 899 EXPECT_EQ(view1, GetFocusManager()->GetFocusedView());
910 900
911 // Allow focus to go to the parent, and focus backwards which should now move 901 // Allow focus to go to the parent, and focus backwards which should now move
912 // up |widget_view| (in the parent). 902 // up |widget_view| (in the parent).
913 delegate->set_should_advance_focus_to_parent(true); 903 delegate->set_should_advance_focus_to_parent(true);
914 GetFocusManager()->AdvanceFocus(true); 904 GetFocusManager()->AdvanceFocus(true);
915 EXPECT_EQ(widget_view, GetFocusManager()->GetFocusedView()); 905 EXPECT_EQ(widget_view, GetFocusManager()->GetFocusedView());
916 } 906 }
917 907
918 } // namespace views 908 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698