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

Side by Side Diff: ui/base/accelerators/accelerator_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/base/accelerators/accelerator_manager.h" 5 #include "ui/base/accelerators/accelerator_manager.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/events/event_constants.h" 9 #include "ui/events/event_constants.h"
10 #include "ui/events/keycodes/keyboard_codes.h" 10 #include "ui/events/keycodes/keyboard_codes.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 AcceleratorManager manager_; 60 AcceleratorManager manager_;
61 }; 61 };
62 62
63 TEST_F(AcceleratorManagerTest, Register) { 63 TEST_F(AcceleratorManagerTest, Register) {
64 const Accelerator accelerator_a(VKEY_A, EF_NONE); 64 const Accelerator accelerator_a(VKEY_A, EF_NONE);
65 TestTarget target; 65 TestTarget target;
66 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority, 66 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority,
67 &target); 67 &target);
68 68
69 // The registered accelerator is processed. 69 // The registered accelerator is processed.
70 EXPECT_TRUE(manager_.Process(accelerator_a)); 70 EXPECT_TRUE(manager_.ProcessAccelerator(accelerator_a));
71 EXPECT_EQ(1, target.accelerator_pressed_count()); 71 EXPECT_EQ(1, target.accelerator_pressed_count());
72 } 72 }
73 73
74 TEST_F(AcceleratorManagerTest, RegisterMultipleTarget) { 74 TEST_F(AcceleratorManagerTest, RegisterMultipleTarget) {
75 const Accelerator accelerator_a(VKEY_A, EF_NONE); 75 const Accelerator accelerator_a(VKEY_A, EF_NONE);
76 TestTarget target1; 76 TestTarget target1;
77 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority, 77 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority,
78 &target1); 78 &target1);
79 TestTarget target2; 79 TestTarget target2;
80 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority, 80 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority,
81 &target2); 81 &target2);
82 82
83 // If multiple targets are registered with the same accelerator, the target 83 // If multiple targets are registered with the same accelerator, the target
84 // registered later processes the accelerator. 84 // registered later processes the accelerator.
85 EXPECT_TRUE(manager_.Process(accelerator_a)); 85 EXPECT_TRUE(manager_.ProcessAccelerator(accelerator_a));
86 EXPECT_EQ(0, target1.accelerator_pressed_count()); 86 EXPECT_EQ(0, target1.accelerator_pressed_count());
87 EXPECT_EQ(1, target2.accelerator_pressed_count()); 87 EXPECT_EQ(1, target2.accelerator_pressed_count());
88 } 88 }
89 89
90 TEST_F(AcceleratorManagerTest, Unregister) { 90 TEST_F(AcceleratorManagerTest, Unregister) {
91 const Accelerator accelerator_a(VKEY_A, EF_NONE); 91 const Accelerator accelerator_a(VKEY_A, EF_NONE);
92 TestTarget target; 92 TestTarget target;
93 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority, 93 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority,
94 &target); 94 &target);
95 const Accelerator accelerator_b(VKEY_B, EF_NONE); 95 const Accelerator accelerator_b(VKEY_B, EF_NONE);
96 manager_.Register(accelerator_b, AcceleratorManager::kNormalPriority, 96 manager_.Register(accelerator_b, AcceleratorManager::kNormalPriority,
97 &target); 97 &target);
98 98
99 // Unregistering a different accelerator does not affect the other 99 // Unregistering a different accelerator does not affect the other
100 // accelerator. 100 // accelerator.
101 manager_.Unregister(accelerator_b, &target); 101 manager_.Unregister(accelerator_b, &target);
102 EXPECT_TRUE(manager_.Process(accelerator_a)); 102 EXPECT_TRUE(manager_.ProcessAccelerator(accelerator_a));
103 EXPECT_EQ(1, target.accelerator_pressed_count()); 103 EXPECT_EQ(1, target.accelerator_pressed_count());
104 104
105 // The unregistered accelerator is no longer processed. 105 // The unregistered accelerator is no longer processed.
106 target.set_accelerator_pressed_count(0); 106 target.set_accelerator_pressed_count(0);
107 manager_.Unregister(accelerator_a, &target); 107 manager_.Unregister(accelerator_a, &target);
108 EXPECT_FALSE(manager_.Process(accelerator_a)); 108 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator_a));
109 EXPECT_EQ(0, target.accelerator_pressed_count()); 109 EXPECT_EQ(0, target.accelerator_pressed_count());
110 } 110 }
111 111
112 TEST_F(AcceleratorManagerTest, UnregisterAll) { 112 TEST_F(AcceleratorManagerTest, UnregisterAll) {
113 const Accelerator accelerator_a(VKEY_A, EF_NONE); 113 const Accelerator accelerator_a(VKEY_A, EF_NONE);
114 TestTarget target1; 114 TestTarget target1;
115 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority, 115 manager_.Register(accelerator_a, AcceleratorManager::kNormalPriority,
116 &target1); 116 &target1);
117 const Accelerator accelerator_b(VKEY_B, EF_NONE); 117 const Accelerator accelerator_b(VKEY_B, EF_NONE);
118 manager_.Register(accelerator_b, AcceleratorManager::kNormalPriority, 118 manager_.Register(accelerator_b, AcceleratorManager::kNormalPriority,
119 &target1); 119 &target1);
120 const Accelerator accelerator_c(VKEY_C, EF_NONE); 120 const Accelerator accelerator_c(VKEY_C, EF_NONE);
121 TestTarget target2; 121 TestTarget target2;
122 manager_.Register(accelerator_c, AcceleratorManager::kNormalPriority, 122 manager_.Register(accelerator_c, AcceleratorManager::kNormalPriority,
123 &target2); 123 &target2);
124 manager_.UnregisterAll(&target1); 124 manager_.UnregisterAll(&target1);
125 125
126 // All the accelerators registered for |target1| are no longer processed. 126 // All the accelerators registered for |target1| are no longer processed.
127 EXPECT_FALSE(manager_.Process(accelerator_a)); 127 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator_a));
128 EXPECT_FALSE(manager_.Process(accelerator_b)); 128 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator_b));
129 EXPECT_EQ(0, target1.accelerator_pressed_count()); 129 EXPECT_EQ(0, target1.accelerator_pressed_count());
130 130
131 // UnregisterAll with a different target does not affect the other target. 131 // UnregisterAll with a different target does not affect the other target.
132 EXPECT_TRUE(manager_.Process(accelerator_c)); 132 EXPECT_TRUE(manager_.ProcessAccelerator(accelerator_c));
133 EXPECT_EQ(1, target2.accelerator_pressed_count()); 133 EXPECT_EQ(1, target2.accelerator_pressed_count());
134 } 134 }
135 135
136 TEST_F(AcceleratorManagerTest, Process) { 136 TEST_F(AcceleratorManagerTest, Process) {
137 TestTarget target; 137 TestTarget target;
138 138
139 // Test all 2*2*2 cases (shift/control/alt = on/off). 139 // Test all 2*2*2 cases (shift/control/alt = on/off).
140 for (int mask = 0; mask < 2 * 2 * 2; ++mask) { 140 for (int mask = 0; mask < 2 * 2 * 2; ++mask) {
141 Accelerator accelerator(GetAccelerator(VKEY_A, mask)); 141 Accelerator accelerator(GetAccelerator(VKEY_A, mask));
142 const base::string16 text = accelerator.GetShortcutText(); 142 const base::string16 text = accelerator.GetShortcutText();
143 manager_.Register(accelerator, AcceleratorManager::kNormalPriority, 143 manager_.Register(accelerator, AcceleratorManager::kNormalPriority,
144 &target); 144 &target);
145 145
146 // The registered accelerator is processed. 146 // The registered accelerator is processed.
147 const int last_count = target.accelerator_pressed_count(); 147 const int last_count = target.accelerator_pressed_count();
148 EXPECT_TRUE(manager_.Process(accelerator)) << text; 148 EXPECT_TRUE(manager_.ProcessAccelerator(accelerator)) << text;
149 EXPECT_EQ(last_count + 1, target.accelerator_pressed_count()) << text; 149 EXPECT_EQ(last_count + 1, target.accelerator_pressed_count()) << text;
150 150
151 // The non-registered accelerators are not processed. 151 // The non-registered accelerators are not processed.
152 accelerator.set_type(ET_UNKNOWN); 152 accelerator.set_type(ET_UNKNOWN);
153 EXPECT_FALSE(manager_.Process(accelerator)) << text; // different type 153 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator))
154 << text; // different type
154 accelerator.set_type(ET_TRANSLATED_KEY_PRESS); 155 accelerator.set_type(ET_TRANSLATED_KEY_PRESS);
155 EXPECT_FALSE(manager_.Process(accelerator)) << text; // different type 156 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator))
157 << text; // different type
156 accelerator.set_type(ET_KEY_RELEASED); 158 accelerator.set_type(ET_KEY_RELEASED);
157 EXPECT_FALSE(manager_.Process(accelerator)) << text; // different type 159 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator))
160 << text; // different type
158 accelerator.set_type(ET_TRANSLATED_KEY_RELEASE); 161 accelerator.set_type(ET_TRANSLATED_KEY_RELEASE);
159 EXPECT_FALSE(manager_.Process(accelerator)) << text; // different type 162 EXPECT_FALSE(manager_.ProcessAccelerator(accelerator))
163 << text; // different type
160 164
161 EXPECT_FALSE(manager_.Process(GetAccelerator(VKEY_UNKNOWN, mask))) 165 EXPECT_FALSE(
166 manager_.ProcessAccelerator(GetAccelerator(VKEY_UNKNOWN, mask)))
162 << text; // different vkey 167 << text; // different vkey
163 EXPECT_FALSE(manager_.Process(GetAccelerator(VKEY_B, mask))) 168 EXPECT_FALSE(manager_.ProcessAccelerator(GetAccelerator(VKEY_B, mask)))
164 << text; // different vkey 169 << text; // different vkey
165 EXPECT_FALSE(manager_.Process(GetAccelerator(VKEY_SHIFT, mask))) 170 EXPECT_FALSE(manager_.ProcessAccelerator(GetAccelerator(VKEY_SHIFT, mask)))
166 << text; // different vkey 171 << text; // different vkey
167 172
168 for (int test_mask = 0; test_mask < 2 * 2 * 2; ++test_mask) { 173 for (int test_mask = 0; test_mask < 2 * 2 * 2; ++test_mask) {
169 if (test_mask == mask) 174 if (test_mask == mask)
170 continue; 175 continue;
171 const Accelerator test_accelerator(GetAccelerator(VKEY_A, test_mask)); 176 const Accelerator test_accelerator(GetAccelerator(VKEY_A, test_mask));
172 const base::string16 test_text = test_accelerator.GetShortcutText(); 177 const base::string16 test_text = test_accelerator.GetShortcutText();
173 EXPECT_FALSE(manager_.Process(test_accelerator)) 178 EXPECT_FALSE(manager_.ProcessAccelerator(test_accelerator))
174 << text << ", " << test_text; // different modifiers 179 << text << ", " << test_text; // different modifiers
175 } 180 }
176 181
177 EXPECT_EQ(last_count + 1, target.accelerator_pressed_count()) << text; 182 EXPECT_EQ(last_count + 1, target.accelerator_pressed_count()) << text;
178 manager_.UnregisterAll(&target); 183 manager_.UnregisterAll(&target);
179 } 184 }
180 } 185 }
181 186
182 } // namespace test 187 } // namespace test
183 } // namespace ui 188 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698