OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |