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

Side by Side Diff: chrome/browser/chromeos/login/kiosk_browsertest.cc

Issue 130613004: Enabled consumer kiosk mode for all. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "apps/shell_window.h" 5 #include "apps/shell_window.h"
6 #include "apps/shell_window_registry.h" 6 #include "apps/shell_window_registry.h"
7 #include "apps/ui/native_app_window.h" 7 #include "apps/ui/native_app_window.h"
8 #include "ash/desktop_background/desktop_background_controller.h" 8 #include "ash/desktop_background/desktop_background_controller.h"
9 #include "ash/desktop_background/desktop_background_controller_observer.h" 9 #include "ash/desktop_background/desktop_background_controller_observer.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 const char kTestEnterpriseAccountId[] = "enterprise-kiosk-app@localhost"; 64 const char kTestEnterpriseAccountId[] = "enterprise-kiosk-app@localhost";
65 const char kTestEnterpriseServiceAccountId[] = "service_account@example.com"; 65 const char kTestEnterpriseServiceAccountId[] = "service_account@example.com";
66 const char kTestRefreshToken[] = "fake-refresh-token"; 66 const char kTestRefreshToken[] = "fake-refresh-token";
67 const char kTestUserinfoToken[] = "fake-userinfo-token"; 67 const char kTestUserinfoToken[] = "fake-userinfo-token";
68 const char kTestLoginToken[] = "fake-login-token"; 68 const char kTestLoginToken[] = "fake-login-token";
69 const char kTestAccessToken[] = "fake-access-token"; 69 const char kTestAccessToken[] = "fake-access-token";
70 const char kTestClientId[] = "fake-client-id"; 70 const char kTestClientId[] = "fake-client-id";
71 const char kTestAppScope[] = 71 const char kTestAppScope[] =
72 "https://www.googleapis.com/auth/userinfo.profile"; 72 "https://www.googleapis.com/auth/userinfo.profile";
73 73
74 // Helper function for GetConsumerKioskModeStatusCallback. 74 // Helper function for GetConsumerKioskAutoLaunchStatusCallback.
75 void ConsumerKioskModeStatusCheck( 75 void ConsumerKioskAutoLaunchStatusCheck(
76 KioskAppManager::ConsumerKioskModeStatus* out_status, 76 KioskAppManager::ConsumerKioskAutoLaunchStatus* out_status,
77 const base::Closure& runner_quit_task, 77 const base::Closure& runner_quit_task,
78 KioskAppManager::ConsumerKioskModeStatus in_status) { 78 KioskAppManager::ConsumerKioskAutoLaunchStatus in_status) {
79 LOG(INFO) << "KioskAppManager::ConsumerKioskModeStatus = " << in_status; 79 LOG(INFO) << "KioskAppManager::ConsumerKioskModeStatus = " << in_status;
80 *out_status = in_status; 80 *out_status = in_status;
81 runner_quit_task.Run(); 81 runner_quit_task.Run();
82 } 82 }
83 83
84 // Helper KioskAppManager::EnableKioskModeCallback implementation. 84 // Helper KioskAppManager::EnableKioskModeCallback implementation.
85 void ConsumerKioskModeLockCheck( 85 void ConsumerKioskModeAutoStartLockCheck(
86 bool* out_locked, 86 bool* out_locked,
87 const base::Closure& runner_quit_task, 87 const base::Closure& runner_quit_task,
88 bool in_locked) { 88 bool in_locked) {
89 LOG(INFO) << "kiosk locked = " << in_locked; 89 LOG(INFO) << "kiosk locked = " << in_locked;
90 *out_locked = in_locked; 90 *out_locked = in_locked;
91 runner_quit_task.Run(); 91 runner_quit_task.Run();
92 } 92 }
93 93
94 // Helper function for WaitForNetworkTimeOut. 94 // Helper function for WaitForNetworkTimeOut.
95 void OnNetworkWaitTimedOut(const base::Closure& runner_quit_task) { 95 void OnNetworkWaitTimedOut(const base::Closure& runner_quit_task) {
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 runner->Run(); 389 runner->Run();
390 390
391 CHECK(GetAppLaunchController()->network_wait_timedout()); 391 CHECK(GetAppLaunchController()->network_wait_timedout());
392 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL); 392 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL);
393 } 393 }
394 394
395 void EnableConsumerKioskMode() { 395 void EnableConsumerKioskMode() {
396 scoped_ptr<bool> locked(new bool(false)); 396 scoped_ptr<bool> locked(new bool(false));
397 scoped_refptr<content::MessageLoopRunner> runner = 397 scoped_refptr<content::MessageLoopRunner> runner =
398 new content::MessageLoopRunner; 398 new content::MessageLoopRunner;
399 KioskAppManager::Get()->EnableConsumerModeKiosk( 399 KioskAppManager::Get()->EnableConsumerKioskAutoLaunch(
400 base::Bind(&ConsumerKioskModeLockCheck, 400 base::Bind(&ConsumerKioskModeAutoStartLockCheck,
401 locked.get(), 401 locked.get(),
402 runner->QuitClosure())); 402 runner->QuitClosure()));
403 runner->Run(); 403 runner->Run();
404 EXPECT_TRUE(*locked.get()); 404 EXPECT_TRUE(*locked.get());
405 } 405 }
406 406
407 KioskAppManager::ConsumerKioskModeStatus GetConsumerKioskModeStatus() { 407 KioskAppManager::ConsumerKioskAutoLaunchStatus
408 KioskAppManager::ConsumerKioskModeStatus status = 408 GetConsumerKioskModeStatus() {
409 static_cast<KioskAppManager::ConsumerKioskModeStatus>(-1); 409 KioskAppManager::ConsumerKioskAutoLaunchStatus status =
410 static_cast<KioskAppManager::ConsumerKioskAutoLaunchStatus>(-1);
410 scoped_refptr<content::MessageLoopRunner> runner = 411 scoped_refptr<content::MessageLoopRunner> runner =
411 new content::MessageLoopRunner; 412 new content::MessageLoopRunner;
412 KioskAppManager::Get()->GetConsumerKioskModeStatus( 413 KioskAppManager::Get()->GetConsumerKioskAutoLaunchStatus(
413 base::Bind(&ConsumerKioskModeStatusCheck, 414 base::Bind(&ConsumerKioskAutoLaunchStatusCheck,
414 &status, 415 &status,
415 runner->QuitClosure())); 416 runner->QuitClosure()));
416 runner->Run(); 417 runner->Run();
417 CHECK_NE(status, static_cast<KioskAppManager::ConsumerKioskModeStatus>(-1)); 418 CHECK_NE(status,
419 static_cast<KioskAppManager::ConsumerKioskAutoLaunchStatus>(-1));
418 return status; 420 return status;
419 } 421 }
420 422
421 AppLaunchController* GetAppLaunchController() { 423 AppLaunchController* GetAppLaunchController() {
422 return chromeos::LoginDisplayHostImpl::default_host() 424 return chromeos::LoginDisplayHostImpl::default_host()
423 ->GetAppLaunchController(); 425 ->GetAppLaunchController();
424 } 426 }
425 427
426 scoped_ptr<MockUserManager> mock_user_manager_; 428 scoped_ptr<MockUserManager> mock_user_manager_;
427 }; 429 };
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 WaitForAppLaunchSuccess(); 607 WaitForAppLaunchSuccess();
606 } 608 }
607 609
608 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableCancel) { 610 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableCancel) {
609 chromeos::WizardController::SkipPostLoginScreensForTesting(); 611 chromeos::WizardController::SkipPostLoginScreensForTesting();
610 chromeos::WizardController* wizard_controller = 612 chromeos::WizardController* wizard_controller =
611 chromeos::WizardController::default_controller(); 613 chromeos::WizardController::default_controller();
612 CHECK(wizard_controller); 614 CHECK(wizard_controller);
613 615
614 // Check Kiosk mode status. 616 // Check Kiosk mode status.
615 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 617 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
616 GetConsumerKioskModeStatus()); 618 GetConsumerKioskModeStatus());
617 619
618 // Wait for the login UI to come up and switch to the kiosk_enable screen. 620 // Wait for the login UI to come up and switch to the kiosk_enable screen.
619 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 621 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
620 content::WindowedNotificationObserver( 622 content::WindowedNotificationObserver(
621 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 623 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
622 content::NotificationService::AllSources()).Wait(); 624 content::NotificationService::AllSources()).Wait();
623 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 625 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
624 base::StringValue("kiosk_enable")); 626 base::StringValue("kiosk_enable"));
625 627
626 // Wait for the kiosk_enable screen to show and cancel the screen. 628 // Wait for the kiosk_enable screen to show and cancel the screen.
627 content::WindowedNotificationObserver( 629 content::WindowedNotificationObserver(
628 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, 630 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
629 content::NotificationService::AllSources()).Wait(); 631 content::NotificationService::AllSources()).Wait();
630 GetLoginUI()->CallJavascriptFunction( 632 GetLoginUI()->CallJavascriptFunction(
631 "login.KioskEnableScreen.enableKioskForTesting", 633 "login.KioskEnableScreen.enableKioskForTesting",
632 base::FundamentalValue(false)); 634 base::FundamentalValue(false));
633 635
634 // Wait for the kiosk_enable screen to disappear. 636 // Wait for the kiosk_enable screen to disappear.
635 content::WindowedNotificationObserver( 637 content::WindowedNotificationObserver(
636 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED, 638 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED,
637 content::NotificationService::AllSources()).Wait(); 639 content::NotificationService::AllSources()).Wait();
638 640
639 // Check that the status still says configurable. 641 // Check that the status still says configurable.
640 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 642 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
641 GetConsumerKioskModeStatus()); 643 GetConsumerKioskModeStatus());
642 } 644 }
643 645
644 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableConfirmed) { 646 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableConfirmed) {
645 // Start UI, find menu entry for this app and launch it. 647 // Start UI, find menu entry for this app and launch it.
646 chromeos::WizardController::SkipPostLoginScreensForTesting(); 648 chromeos::WizardController::SkipPostLoginScreensForTesting();
647 chromeos::WizardController* wizard_controller = 649 chromeos::WizardController* wizard_controller =
648 chromeos::WizardController::default_controller(); 650 chromeos::WizardController::default_controller();
649 CHECK(wizard_controller); 651 CHECK(wizard_controller);
650 652
651 // Check Kiosk mode status. 653 // Check Kiosk mode status.
652 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 654 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
653 GetConsumerKioskModeStatus()); 655 GetConsumerKioskModeStatus());
654 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 656 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
655 657
656 // Wait for the login UI to come up and switch to the kiosk_enable screen. 658 // Wait for the login UI to come up and switch to the kiosk_enable screen.
657 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 659 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
658 content::WindowedNotificationObserver( 660 content::WindowedNotificationObserver(
659 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 661 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
660 content::NotificationService::AllSources()).Wait(); 662 content::NotificationService::AllSources()).Wait();
661 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 663 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
662 base::StringValue("kiosk_enable")); 664 base::StringValue("kiosk_enable"));
663 665
664 // Wait for the kiosk_enable screen to show and cancel the screen. 666 // Wait for the kiosk_enable screen to show and cancel the screen.
665 content::WindowedNotificationObserver( 667 content::WindowedNotificationObserver(
666 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, 668 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
667 content::NotificationService::AllSources()).Wait(); 669 content::NotificationService::AllSources()).Wait();
668 GetLoginUI()->CallJavascriptFunction( 670 GetLoginUI()->CallJavascriptFunction(
669 "login.KioskEnableScreen.enableKioskForTesting", 671 "login.KioskEnableScreen.enableKioskForTesting",
670 base::FundamentalValue(true)); 672 base::FundamentalValue(true));
671 673
672 // Wait for the signal that indicates Kiosk Mode is enabled. 674 // Wait for the signal that indicates Kiosk Mode is enabled.
673 content::WindowedNotificationObserver( 675 content::WindowedNotificationObserver(
674 chrome::NOTIFICATION_KIOSK_ENABLED, 676 chrome::NOTIFICATION_KIOSK_ENABLED,
675 content::NotificationService::AllSources()).Wait(); 677 content::NotificationService::AllSources()).Wait();
676 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_ENABLED, 678 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_ENABLED,
677 GetConsumerKioskModeStatus()); 679 GetConsumerKioskModeStatus());
678 } 680 }
679 681
680 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableAbortedWithAutoEnrollment) { 682 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableAbortedWithAutoEnrollment) {
681 // Fake an auto enrollment is going to be enforced. 683 // Fake an auto enrollment is going to be enforced.
682 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 684 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
683 switches::kEnterpriseEnrollmentInitialModulus, "1"); 685 switches::kEnterpriseEnrollmentInitialModulus, "1");
684 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 686 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
685 switches::kEnterpriseEnrollmentModulusLimit, "2"); 687 switches::kEnterpriseEnrollmentModulusLimit, "2");
686 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, true); 688 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, true);
687 g_browser_process->local_state()->SetInteger( 689 g_browser_process->local_state()->SetInteger(
688 prefs::kAutoEnrollmentPowerLimit, 3); 690 prefs::kAutoEnrollmentPowerLimit, 3);
689 691
690 // Start UI, find menu entry for this app and launch it. 692 // Start UI, find menu entry for this app and launch it.
691 chromeos::WizardController::SkipPostLoginScreensForTesting(); 693 chromeos::WizardController::SkipPostLoginScreensForTesting();
692 chromeos::WizardController* wizard_controller = 694 chromeos::WizardController* wizard_controller =
693 chromeos::WizardController::default_controller(); 695 chromeos::WizardController::default_controller();
694 CHECK(wizard_controller); 696 CHECK(wizard_controller);
695 697
696 // Check Kiosk mode status. 698 // Check Kiosk mode status.
697 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 699 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
698 GetConsumerKioskModeStatus()); 700 GetConsumerKioskModeStatus());
699 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 701 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
700 702
701 // Wait for the login UI to come up and switch to the kiosk_enable screen. 703 // Wait for the login UI to come up and switch to the kiosk_enable screen.
702 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 704 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
703 content::WindowedNotificationObserver( 705 content::WindowedNotificationObserver(
704 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 706 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
705 content::NotificationService::AllSources()).Wait(); 707 content::NotificationService::AllSources()).Wait();
706 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 708 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
707 base::StringValue("kiosk_enable")); 709 base::StringValue("kiosk_enable"));
(...skipping 15 matching lines...) Expand all
723 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, false); 725 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, false);
724 g_browser_process->local_state()->SetInteger( 726 g_browser_process->local_state()->SetInteger(
725 prefs::kAutoEnrollmentPowerLimit, -1); 727 prefs::kAutoEnrollmentPowerLimit, -1);
726 728
727 chromeos::WizardController::SkipPostLoginScreensForTesting(); 729 chromeos::WizardController::SkipPostLoginScreensForTesting();
728 chromeos::WizardController* wizard_controller = 730 chromeos::WizardController* wizard_controller =
729 chromeos::WizardController::default_controller(); 731 chromeos::WizardController::default_controller();
730 CHECK(wizard_controller); 732 CHECK(wizard_controller);
731 733
732 // Check Kiosk mode status. 734 // Check Kiosk mode status.
733 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 735 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
734 GetConsumerKioskModeStatus()); 736 GetConsumerKioskModeStatus());
735 737
736 // Wait for the login UI to come up and switch to the kiosk_enable screen. 738 // Wait for the login UI to come up and switch to the kiosk_enable screen.
737 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 739 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
738 content::WindowedNotificationObserver( 740 content::WindowedNotificationObserver(
739 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 741 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
740 content::NotificationService::AllSources()).Wait(); 742 content::NotificationService::AllSources()).Wait();
741 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 743 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
742 base::StringValue("kiosk_enable")); 744 base::StringValue("kiosk_enable"));
743 745
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 content::WindowedNotificationObserver( 970 content::WindowedNotificationObserver(
969 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE, 971 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
970 content::NotificationService::AllSources()).Wait(); 972 content::NotificationService::AllSources()).Wait();
971 973
972 // Wait for the wallpaper to load. 974 // Wait for the wallpaper to load.
973 WaitForWallpaper(); 975 WaitForWallpaper();
974 EXPECT_TRUE(wallpaper_loaded()); 976 EXPECT_TRUE(wallpaper_loaded());
975 } 977 }
976 978
977 } // namespace chromeos 979 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698