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

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: Use callback 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 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator)); 462 EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
463 EXPECT_EQ(target.accelerator_count(), 1); 463 EXPECT_EQ(target.accelerator_count(), 1);
464 EXPECT_EQ(NULL, 464 EXPECT_EQ(NULL,
465 focus_manager->GetCurrentTargetForAccelerator(return_accelerator)); 465 focus_manager->GetCurrentTargetForAccelerator(return_accelerator));
466 466
467 // Hitting the return key again; nothing should happen. 467 // Hitting the return key again; nothing should happen.
468 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator)); 468 EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
469 EXPECT_EQ(target.accelerator_count(), 1); 469 EXPECT_EQ(target.accelerator_count(), 1);
470 } 470 }
471 471
472 static bool SuspendAcceleratorsCallback(bool input) {
473 return input;
474 }
475
476 TEST_F(FocusManagerTest, SuspendAccelerators) {
477 const ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE);
478 ui::Accelerator accelerator(event.key_code(), event.flags());
479 TestAcceleratorTarget target(true);
480 FocusManager* focus_manager = GetFocusManager();
481 focus_manager->RegisterAccelerator(accelerator,
482 ui::AcceleratorManager::kNormalPriority,
483 &target);
484
485 // Callback returns true, should not process accelerators.
486 base::Callback<bool()> callback =
487 base::Bind(&SuspendAcceleratorsCallback, true);
488 focus_manager->set_shortcut_handling_suspended_callback(&callback);
489 EXPECT_TRUE(focus_manager->OnKeyEvent(event));
490 EXPECT_EQ(0, target.accelerator_count());
491
492 // Callback returns false, should process accelerators.
493 callback = base::Bind(&SuspendAcceleratorsCallback, false);
494 focus_manager->set_shortcut_handling_suspended_callback(&callback);
495 EXPECT_FALSE(focus_manager->OnKeyEvent(event));
496 EXPECT_EQ(1, target.accelerator_count());
497
498 // Uninstall callback, should process accelerators.
499 focus_manager->set_shortcut_handling_suspended_callback(nullptr);
500 EXPECT_FALSE(focus_manager->OnKeyEvent(event));
501 EXPECT_EQ(2, target.accelerator_count());
502 }
503
472 class FocusManagerDtorTest : public FocusManagerTest { 504 class FocusManagerDtorTest : public FocusManagerTest {
473 protected: 505 protected:
474 typedef std::vector<std::string> DtorTrackVector; 506 typedef std::vector<std::string> DtorTrackVector;
475 507
476 class FocusManagerDtorTracked : public FocusManager { 508 class FocusManagerDtorTracked : public FocusManager {
477 public: 509 public:
478 FocusManagerDtorTracked(Widget* widget, DtorTrackVector* dtor_tracker) 510 FocusManagerDtorTracked(Widget* widget, DtorTrackVector* dtor_tracker)
479 : FocusManager(widget, NULL /* delegate */), 511 : FocusManager(widget, NULL /* delegate */),
480 dtor_tracker_(dtor_tracker) { 512 dtor_tracker_(dtor_tracker) {
481 } 513 }
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 EXPECT_EQ(view1, GetFocusManager()->GetFocusedView()); 941 EXPECT_EQ(view1, GetFocusManager()->GetFocusedView());
910 942
911 // Allow focus to go to the parent, and focus backwards which should now move 943 // Allow focus to go to the parent, and focus backwards which should now move
912 // up |widget_view| (in the parent). 944 // up |widget_view| (in the parent).
913 delegate->set_should_advance_focus_to_parent(true); 945 delegate->set_should_advance_focus_to_parent(true);
914 GetFocusManager()->AdvanceFocus(true); 946 GetFocusManager()->AdvanceFocus(true);
915 EXPECT_EQ(widget_view, GetFocusManager()->GetFocusedView()); 947 EXPECT_EQ(widget_view, GetFocusManager()->GetFocusedView());
916 } 948 }
917 949
918 } // namespace views 950 } // namespace views
OLDNEW
« ui/views/focus/focus_manager.cc ('K') | « ui/views/focus/focus_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698