| 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 |