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 "ash/magnifier/magnification_controller.h" | 5 #include "ash/magnifier/magnification_controller.h" |
6 #include "ash/shell.h" | 6 #include "ash/shell.h" |
7 #include "ash/system/tray/system_tray.h" | 7 #include "ash/system/tray/system_tray.h" |
8 #include "ash/system/tray_accessibility.h" | 8 #include "ash/system/tray_accessibility.h" |
9 #include "ash/system/user/login_status.h" | 9 #include "ash/system/user/login_status.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 22 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
23 #include "chrome/browser/policy/policy_map.h" | 23 #include "chrome/browser/policy/policy_map.h" |
24 #include "chrome/browser/policy/policy_types.h" | 24 #include "chrome/browser/policy/policy_types.h" |
25 #include "chrome/browser/profiles/profile.h" | 25 #include "chrome/browser/profiles/profile.h" |
26 #include "chrome/browser/profiles/profile_manager.h" | 26 #include "chrome/browser/profiles/profile_manager.h" |
27 #include "chrome/common/chrome_notification_types.h" | 27 #include "chrome/common/chrome_notification_types.h" |
28 #include "chrome/common/chrome_switches.h" | 28 #include "chrome/common/chrome_switches.h" |
29 #include "chrome/common/pref_names.h" | 29 #include "chrome/common/pref_names.h" |
30 #include "chrome/test/base/testing_profile.h" | 30 #include "chrome/test/base/testing_profile.h" |
31 #include "chromeos/chromeos_switches.h" | 31 #include "chromeos/chromeos_switches.h" |
| 32 #include "chromeos/login/login_state.h" |
32 #include "content/public/test/test_utils.h" | 33 #include "content/public/test/test_utils.h" |
33 #include "policy/policy_constants.h" | 34 #include "policy/policy_constants.h" |
34 #include "testing/gtest/include/gtest/gtest.h" | 35 #include "testing/gtest/include/gtest/gtest.h" |
35 #include "ui/views/widget/widget.h" | 36 #include "ui/views/widget/widget.h" |
36 | 37 |
37 using testing::AnyNumber; | 38 using testing::AnyNumber; |
38 using testing::Return; | 39 using testing::Return; |
39 using testing::_; | 40 using testing::_; |
40 using testing::WithParamInterface; | 41 using testing::WithParamInterface; |
41 | 42 |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 } | 159 } |
159 | 160 |
160 bool IsHighContrastEnabledOnDetailMenu() { | 161 bool IsHighContrastEnabledOnDetailMenu() { |
161 return tray()->detailed_menu_->high_contrast_enabled_; | 162 return tray()->detailed_menu_->high_contrast_enabled_; |
162 } | 163 } |
163 | 164 |
164 bool IsScreenMagnifierEnabledOnDetailMenu() { | 165 bool IsScreenMagnifierEnabledOnDetailMenu() { |
165 return tray()->detailed_menu_->screen_magnifier_enabled_; | 166 return tray()->detailed_menu_->screen_magnifier_enabled_; |
166 } | 167 } |
167 | 168 |
| 169 bool IsLargeCursorEnabledOnDetailMenu() { |
| 170 return tray()->detailed_menu_->large_cursor_enabled_; |
| 171 } |
| 172 |
| 173 bool IsSpokenFeedbackMenuShownOnDetailMenu() { |
| 174 return tray()->detailed_menu_->spoken_feedback_view_; |
| 175 } |
| 176 |
| 177 bool IsHighContrastMenuShownOnDetailMenu() { |
| 178 return tray()->detailed_menu_->high_contrast_view_; |
| 179 } |
| 180 |
| 181 bool IsScreenMagnifierMenuShownOnDetailMenu() { |
| 182 return tray()->detailed_menu_->screen_magnifier_view_; |
| 183 } |
| 184 |
| 185 bool IsLargeCursorMenuShownOnDetailMenu() { |
| 186 return tray()->detailed_menu_->large_cursor_view_; |
| 187 } |
| 188 |
168 policy::MockConfigurationPolicyProvider provider_; | 189 policy::MockConfigurationPolicyProvider provider_; |
169 }; | 190 }; |
170 | 191 |
171 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { | 192 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { |
172 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); | 193 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); |
173 | 194 |
174 UserManager::Get()->UserLoggedIn( | 195 UserManager::Get()->UserLoggedIn( |
175 "owner@invalid.domain", "owner@invalid.domain", true); | 196 "owner@invalid.domain", "owner@invalid.domain", true); |
176 UserManager::Get()->SessionStarted(); | 197 UserManager::Get()->SessionStarted(); |
177 | 198 |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 EXPECT_TRUE(CreateDetailedMenu()); | 463 EXPECT_TRUE(CreateDetailedMenu()); |
443 ClickScreenMagnifierOnDetailMenu(); | 464 ClickScreenMagnifierOnDetailMenu(); |
444 EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled()); | 465 EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled()); |
445 | 466 |
446 EXPECT_TRUE(CreateDetailedMenu()); | 467 EXPECT_TRUE(CreateDetailedMenu()); |
447 ClickScreenMagnifierOnDetailMenu(); | 468 ClickScreenMagnifierOnDetailMenu(); |
448 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled()); | 469 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled()); |
449 } | 470 } |
450 | 471 |
451 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { | 472 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { |
| 473 SetLoginStatus(ash::user::LOGGED_IN_NONE); |
| 474 |
452 // At first, all of the check is unchecked. | 475 // At first, all of the check is unchecked. |
453 EXPECT_TRUE(CreateDetailedMenu()); | 476 EXPECT_TRUE(CreateDetailedMenu()); |
454 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 477 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
455 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 478 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
456 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 479 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 480 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
457 CloseDetailMenu(); | 481 CloseDetailMenu(); |
458 | 482 |
459 // Enabling spoken feedback. | 483 // Enabling spoken feedback. |
460 AccessibilityManager::Get()->EnableSpokenFeedback( | 484 AccessibilityManager::Get()->EnableSpokenFeedback( |
461 true, NULL, ash::A11Y_NOTIFICATION_NONE); | 485 true, NULL, ash::A11Y_NOTIFICATION_NONE); |
462 EXPECT_TRUE(CreateDetailedMenu()); | 486 EXPECT_TRUE(CreateDetailedMenu()); |
463 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu()); | 487 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu()); |
464 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 488 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
465 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 489 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 490 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
466 CloseDetailMenu(); | 491 CloseDetailMenu(); |
467 | 492 |
468 // Disabling spoken feedback. | 493 // Disabling spoken feedback. |
469 AccessibilityManager::Get()->EnableSpokenFeedback( | 494 AccessibilityManager::Get()->EnableSpokenFeedback( |
470 false, NULL, ash::A11Y_NOTIFICATION_NONE); | 495 false, NULL, ash::A11Y_NOTIFICATION_NONE); |
471 EXPECT_TRUE(CreateDetailedMenu()); | 496 EXPECT_TRUE(CreateDetailedMenu()); |
472 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 497 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
473 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 498 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
474 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 499 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 500 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
475 CloseDetailMenu(); | 501 CloseDetailMenu(); |
476 | 502 |
477 // Enabling high contrast. | 503 // Enabling high contrast. |
478 AccessibilityManager::Get()->EnableHighContrast(true); | 504 AccessibilityManager::Get()->EnableHighContrast(true); |
479 EXPECT_TRUE(CreateDetailedMenu()); | 505 EXPECT_TRUE(CreateDetailedMenu()); |
480 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 506 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
481 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); | 507 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); |
482 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 508 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 509 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
483 CloseDetailMenu(); | 510 CloseDetailMenu(); |
484 | 511 |
485 // Disabling high contrast. | 512 // Disabling high contrast. |
486 AccessibilityManager::Get()->EnableHighContrast(false); | 513 AccessibilityManager::Get()->EnableHighContrast(false); |
487 EXPECT_TRUE(CreateDetailedMenu()); | 514 EXPECT_TRUE(CreateDetailedMenu()); |
488 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 515 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
489 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 516 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
490 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 517 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 518 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
491 CloseDetailMenu(); | 519 CloseDetailMenu(); |
492 | 520 |
493 // Enabling full screen magnifier. | 521 // Enabling full screen magnifier. |
494 SetMagnifierEnabled(true); | 522 SetMagnifierEnabled(true); |
495 EXPECT_TRUE(CreateDetailedMenu()); | 523 EXPECT_TRUE(CreateDetailedMenu()); |
496 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 524 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
497 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 525 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
498 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); | 526 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 527 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
499 CloseDetailMenu(); | 528 CloseDetailMenu(); |
500 | 529 |
501 // Disabling screen magnifier. | 530 // Disabling screen magnifier. |
502 SetMagnifierEnabled(false); | 531 SetMagnifierEnabled(false); |
503 EXPECT_TRUE(CreateDetailedMenu()); | 532 EXPECT_TRUE(CreateDetailedMenu()); |
504 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 533 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
505 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 534 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
506 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 535 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 536 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
| 537 CloseDetailMenu(); |
| 538 |
| 539 // Enabling large cursor. |
| 540 AccessibilityManager::Get()->EnableLargeCursor(true); |
| 541 EXPECT_TRUE(CreateDetailedMenu()); |
| 542 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
| 543 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
| 544 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 545 EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu()); |
| 546 CloseDetailMenu(); |
| 547 |
| 548 // Disabling large cursor. |
| 549 AccessibilityManager::Get()->EnableLargeCursor(false); |
| 550 EXPECT_TRUE(CreateDetailedMenu()); |
| 551 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
| 552 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
| 553 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 554 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
507 CloseDetailMenu(); | 555 CloseDetailMenu(); |
508 | 556 |
509 // Enabling all of the a11y features. | 557 // Enabling all of the a11y features. |
510 AccessibilityManager::Get()->EnableSpokenFeedback( | 558 AccessibilityManager::Get()->EnableSpokenFeedback( |
511 true, NULL, ash::A11Y_NOTIFICATION_NONE); | 559 true, NULL, ash::A11Y_NOTIFICATION_NONE); |
512 AccessibilityManager::Get()->EnableHighContrast(true); | 560 AccessibilityManager::Get()->EnableHighContrast(true); |
513 SetMagnifierEnabled(true); | 561 SetMagnifierEnabled(true); |
| 562 AccessibilityManager::Get()->EnableLargeCursor(true); |
514 EXPECT_TRUE(CreateDetailedMenu()); | 563 EXPECT_TRUE(CreateDetailedMenu()); |
515 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu()); | 564 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu()); |
516 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); | 565 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); |
517 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); | 566 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 567 EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu()); |
518 CloseDetailMenu(); | 568 CloseDetailMenu(); |
519 | 569 |
520 // Disabling all of the a11y features. | 570 // Disabling all of the a11y features. |
521 AccessibilityManager::Get()->EnableSpokenFeedback( | 571 AccessibilityManager::Get()->EnableSpokenFeedback( |
522 false, NULL, ash::A11Y_NOTIFICATION_NONE); | 572 false, NULL, ash::A11Y_NOTIFICATION_NONE); |
523 AccessibilityManager::Get()->EnableHighContrast(false); | 573 AccessibilityManager::Get()->EnableHighContrast(false); |
524 SetMagnifierEnabled(false); | 574 SetMagnifierEnabled(false); |
| 575 AccessibilityManager::Get()->EnableLargeCursor(false); |
525 EXPECT_TRUE(CreateDetailedMenu()); | 576 EXPECT_TRUE(CreateDetailedMenu()); |
526 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); | 577 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); |
527 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); | 578 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); |
528 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); | 579 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); |
| 580 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); |
529 CloseDetailMenu(); | 581 CloseDetailMenu(); |
530 } | 582 } |
531 | 583 |
| 584 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) { |
| 585 SetLoginStatus(ash::user::LOGGED_IN_NONE); |
| 586 EXPECT_TRUE(CreateDetailedMenu()); |
| 587 EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu()); |
| 588 EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); |
| 589 EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); |
| 590 EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu()); |
| 591 CloseDetailMenu(); |
| 592 |
| 593 SetLoginStatus(ash::user::LOGGED_IN_USER); |
| 594 EXPECT_TRUE(CreateDetailedMenu()); |
| 595 EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu()); |
| 596 EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); |
| 597 EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); |
| 598 EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu()); |
| 599 CloseDetailMenu(); |
| 600 |
| 601 SetLoginStatus(ash::user::LOGGED_IN_LOCKED); |
| 602 EXPECT_TRUE(CreateDetailedMenu()); |
| 603 EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu()); |
| 604 EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); |
| 605 EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); |
| 606 EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu()); |
| 607 CloseDetailMenu(); |
| 608 } |
| 609 |
532 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance, | 610 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance, |
533 TrayAccessibilityTest, | 611 TrayAccessibilityTest, |
534 testing::Values(PREF_SERVICE, | 612 testing::Values(PREF_SERVICE, |
535 POLICY)); | 613 POLICY)); |
536 | 614 |
537 } // namespace chromeos | 615 } // namespace chromeos |
OLD | NEW |