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

Side by Side Diff: chrome/browser/chromeos/system/tray_accessibility_browsertest.cc

Issue 2797743002: ash: Merge LoginStatus update code path (Closed)
Patch Set: for #2 comments Created 3 years, 8 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 "ash/common/accessibility_types.h" 5 #include "ash/common/accessibility_types.h"
6 #include "ash/common/login_status.h" 6 #include "ash/common/login_status.h"
7 #include "ash/common/system/tray/system_tray.h" 7 #include "ash/common/system/tray/system_tray.h"
8 #include "ash/common/system/tray_accessibility.h" 8 #include "ash/common/system/tray_accessibility.h"
9 #include "ash/magnifier/magnification_controller.h" 9 #include "ash/magnifier/magnification_controller.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
11 #include "ash/test/shell_test_api.h" 11 #include "ash/test/shell_test_api.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/chrome_notification_types.h" 17 #include "chrome/browser/chrome_notification_types.h"
18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" 18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
19 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" 19 #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
20 #include "chrome/browser/chromeos/login/helper.h" 20 #include "chrome/browser/chromeos/login/helper.h"
21 #include "chrome/browser/chromeos/login/startup_utils.h" 21 #include "chrome/browser/chromeos/login/startup_utils.h"
22 #include "chrome/browser/extensions/api/braille_display_private/mock_braille_con troller.h" 22 #include "chrome/browser/extensions/api/braille_display_private/mock_braille_con troller.h"
23 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/browser/profiles/profile_manager.h" 24 #include "chrome/browser/profiles/profile_manager.h"
25 #include "chrome/browser/ui/ash/session_controller_client.h"
25 #include "chrome/common/chrome_switches.h" 26 #include "chrome/common/chrome_switches.h"
26 #include "chrome/common/pref_names.h" 27 #include "chrome/common/pref_names.h"
27 #include "chrome/test/base/in_process_browser_test.h" 28 #include "chrome/test/base/in_process_browser_test.h"
28 #include "chrome/test/base/testing_profile.h" 29 #include "chrome/test/base/testing_profile.h"
29 #include "chromeos/chromeos_switches.h" 30 #include "chromeos/chromeos_switches.h"
30 #include "components/policy/core/browser/browser_policy_connector.h" 31 #include "components/policy/core/browser/browser_policy_connector.h"
31 #include "components/policy/core/common/external_data_fetcher.h" 32 #include "components/policy/core/common/external_data_fetcher.h"
32 #include "components/policy/core/common/mock_configuration_policy_provider.h" 33 #include "components/policy/core/common/mock_configuration_policy_provider.h"
33 #include "components/policy/core/common/policy_map.h" 34 #include "components/policy/core/common/policy_map.h"
34 #include "components/policy/core/common/policy_types.h" 35 #include "components/policy/core/common/policy_types.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 policy::MockConfigurationPolicyProvider provider_; 336 policy::MockConfigurationPolicyProvider provider_;
336 MockBrailleController braille_controller_; 337 MockBrailleController braille_controller_;
337 }; 338 };
338 339
339 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { 340 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) {
340 EXPECT_EQ(ash::LoginStatus::NOT_LOGGED_IN, GetLoginStatus()); 341 EXPECT_EQ(ash::LoginStatus::NOT_LOGGED_IN, GetLoginStatus());
341 342
342 session_manager::SessionManager::Get()->CreateSession( 343 session_manager::SessionManager::Get()->CreateSession(
343 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain"); 344 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain");
344 session_manager::SessionManager::Get()->SessionStarted(); 345 session_manager::SessionManager::Get()->SessionStarted();
346 // Flush to ensure the session state reaches ash and updates login status.
347 SessionControllerClient::FlushForTesting();
345 348
346 EXPECT_EQ(ash::LoginStatus::USER, GetLoginStatus()); 349 EXPECT_EQ(ash::LoginStatus::USER, GetLoginStatus());
347 } 350 }
348 351
349 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) { 352 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) {
350 SetLoginStatus(ash::LoginStatus::NOT_LOGGED_IN); 353 SetLoginStatus(ash::LoginStatus::NOT_LOGGED_IN);
351 354
352 // Confirms that the icon is invisible before login. 355 // Confirms that the icon is invisible before login.
353 EXPECT_FALSE(IsTrayIconVisible()); 356 EXPECT_FALSE(IsTrayIconVisible());
354 357
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 EXPECT_TRUE(IsTrayIconVisible()); 472 EXPECT_TRUE(IsTrayIconVisible());
470 AccessibilityManager::Get()->EnableHighContrast(false); 473 AccessibilityManager::Get()->EnableHighContrast(false);
471 EXPECT_FALSE(IsTrayIconVisible()); 474 EXPECT_FALSE(IsTrayIconVisible());
472 } 475 }
473 476
474 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) { 477 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) {
475 // Login 478 // Login
476 session_manager::SessionManager::Get()->CreateSession( 479 session_manager::SessionManager::Get()->CreateSession(
477 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain"); 480 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain");
478 session_manager::SessionManager::Get()->SessionStarted(); 481 session_manager::SessionManager::Get()->SessionStarted();
482 // Flush to ensure the session state reaches ash and updates login status.
483 SessionControllerClient::FlushForTesting();
479 484
480 SetShowAccessibilityOptionsInSystemTrayMenu(false); 485 SetShowAccessibilityOptionsInSystemTrayMenu(false);
481 486
482 // Confirms that the menu is hidden. 487 // Confirms that the menu is hidden.
483 EXPECT_FALSE(CanCreateMenuItem()); 488 EXPECT_FALSE(CanCreateMenuItem());
484 489
485 // Toggling spoken feedback changes the visibillity of the menu. 490 // Toggling spoken feedback changes the visibillity of the menu.
486 AccessibilityManager::Get()->EnableSpokenFeedback( 491 AccessibilityManager::Get()->EnableSpokenFeedback(
487 true, ash::A11Y_NOTIFICATION_NONE); 492 true, ash::A11Y_NOTIFICATION_NONE);
488 EXPECT_TRUE(CanCreateMenuItem()); 493 EXPECT_TRUE(CanCreateMenuItem());
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 EXPECT_TRUE(CanCreateMenuItem()); 592 EXPECT_TRUE(CanCreateMenuItem());
588 AccessibilityManager::Get()->SetFocusHighlightEnabled(false); 593 AccessibilityManager::Get()->SetFocusHighlightEnabled(false);
589 EXPECT_FALSE(CanCreateMenuItem()); 594 EXPECT_FALSE(CanCreateMenuItem());
590 } 595 }
591 596
592 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) { 597 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
593 // Login 598 // Login
594 session_manager::SessionManager::Get()->CreateSession( 599 session_manager::SessionManager::Get()->CreateSession(
595 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain"); 600 AccountId::FromUserEmail("owner@invalid.domain"), "owner@invalid.domain");
596 session_manager::SessionManager::Get()->SessionStarted(); 601 session_manager::SessionManager::Get()->SessionStarted();
602 // Flush to ensure the session state reaches ash and updates login status.
603 SessionControllerClient::FlushForTesting();
597 604
598 SetShowAccessibilityOptionsInSystemTrayMenu(true); 605 SetShowAccessibilityOptionsInSystemTrayMenu(true);
599 606
600 // Confirms that the menu is visible. 607 // Confirms that the menu is visible.
601 EXPECT_TRUE(CanCreateMenuItem()); 608 EXPECT_TRUE(CanCreateMenuItem());
602 609
603 // The menu remains visible regardless of toggling spoken feedback. 610 // The menu remains visible regardless of toggling spoken feedback.
604 AccessibilityManager::Get()->EnableSpokenFeedback( 611 AccessibilityManager::Get()->EnableSpokenFeedback(
605 true, ash::A11Y_NOTIFICATION_NONE); 612 true, ash::A11Y_NOTIFICATION_NONE);
606 EXPECT_TRUE(CanCreateMenuItem()); 613 EXPECT_TRUE(CanCreateMenuItem());
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 EXPECT_FALSE(IsSettingsAvailableOnDetailMenu()); 1417 EXPECT_FALSE(IsSettingsAvailableOnDetailMenu());
1411 EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu()); 1418 EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu());
1412 EXPECT_TRUE(IsMonoAudioMenuShownOnDetailMenu()); 1419 EXPECT_TRUE(IsMonoAudioMenuShownOnDetailMenu());
1413 EXPECT_TRUE(IsCaretHighlightMenuShownOnDetailMenu()); 1420 EXPECT_TRUE(IsCaretHighlightMenuShownOnDetailMenu());
1414 EXPECT_TRUE(IsHighlightMouseCursorMenuShownOnDetailMenu()); 1421 EXPECT_TRUE(IsHighlightMouseCursorMenuShownOnDetailMenu());
1415 EXPECT_TRUE(IsHighlightKeyboardFocusMenuShownOnDetailMenu()); 1422 EXPECT_TRUE(IsHighlightKeyboardFocusMenuShownOnDetailMenu());
1416 CloseDetailMenu(); 1423 CloseDetailMenu();
1417 1424
1418 session_manager::SessionManager::Get()->SetSessionState( 1425 session_manager::SessionManager::Get()->SetSessionState(
1419 session_manager::SessionState::LOGIN_SECONDARY); 1426 session_manager::SessionState::LOGIN_SECONDARY);
1420 base::RunLoop().RunUntilIdle(); // Flush session state to ash. 1427 // Flush to ensure the session state reaches ash and updates login status.
1428 SessionControllerClient::FlushForTesting();
1421 SetLoginStatus(ash::LoginStatus::USER); 1429 SetLoginStatus(ash::LoginStatus::USER);
1422 EXPECT_TRUE(CreateDetailedMenu()); 1430 EXPECT_TRUE(CreateDetailedMenu());
1423 EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu()); 1431 EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu());
1424 EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); 1432 EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu());
1425 EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); 1433 EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu());
1426 EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu()); 1434 EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu());
1427 EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu()); 1435 EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu());
1428 EXPECT_FALSE(IsHelpAvailableOnDetailMenu()); 1436 EXPECT_FALSE(IsHelpAvailableOnDetailMenu());
1429 EXPECT_FALSE(IsSettingsAvailableOnDetailMenu()); 1437 EXPECT_FALSE(IsSettingsAvailableOnDetailMenu());
1430 EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu()); 1438 EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu());
1431 EXPECT_TRUE(IsMonoAudioMenuShownOnDetailMenu()); 1439 EXPECT_TRUE(IsMonoAudioMenuShownOnDetailMenu());
1432 EXPECT_TRUE(IsCaretHighlightMenuShownOnDetailMenu()); 1440 EXPECT_TRUE(IsCaretHighlightMenuShownOnDetailMenu());
1433 EXPECT_TRUE(IsHighlightMouseCursorMenuShownOnDetailMenu()); 1441 EXPECT_TRUE(IsHighlightMouseCursorMenuShownOnDetailMenu());
1434 EXPECT_TRUE(IsHighlightKeyboardFocusMenuShownOnDetailMenu()); 1442 EXPECT_TRUE(IsHighlightKeyboardFocusMenuShownOnDetailMenu());
1435 CloseDetailMenu(); 1443 CloseDetailMenu();
1436 } 1444 }
1437 1445
1438 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance, 1446 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance,
1439 TrayAccessibilityTest, 1447 TrayAccessibilityTest,
1440 testing::Values(PREF_SERVICE, 1448 testing::Values(PREF_SERVICE,
1441 POLICY)); 1449 POLICY));
1442 1450
1443 } // namespace chromeos 1451 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/power/login_lock_state_notifier.cc ('k') | chrome/browser/ui/ash/session_controller_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698