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

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, 11 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 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 runner->Run(); 338 runner->Run();
339 339
340 CHECK(GetAppLaunchController()->network_wait_timedout()); 340 CHECK(GetAppLaunchController()->network_wait_timedout());
341 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL); 341 AppLaunchController::SetNetworkTimeoutCallbackForTesting(NULL);
342 } 342 }
343 343
344 void EnableConsumerKioskMode() { 344 void EnableConsumerKioskMode() {
345 scoped_ptr<bool> locked(new bool(false)); 345 scoped_ptr<bool> locked(new bool(false));
346 scoped_refptr<content::MessageLoopRunner> runner = 346 scoped_refptr<content::MessageLoopRunner> runner =
347 new content::MessageLoopRunner; 347 new content::MessageLoopRunner;
348 KioskAppManager::Get()->EnableConsumerModeKiosk( 348 KioskAppManager::Get()->EnableConsumerModeKioskAutoStart(
349 base::Bind(&ConsumerKioskModeLockCheck, 349 base::Bind(&ConsumerKioskModeAutoStartLockCheck,
350 locked.get(), 350 locked.get(),
351 runner->QuitClosure())); 351 runner->QuitClosure()));
352 runner->Run(); 352 runner->Run();
353 EXPECT_TRUE(*locked.get()); 353 EXPECT_TRUE(*locked.get());
354 } 354 }
355 355
356 KioskAppManager::ConsumerKioskModeStatus GetConsumerKioskModeStatus() { 356 KioskAppManager::ConsumerKioskAutoLaunchStatus
357 KioskAppManager::ConsumerKioskModeStatus status = 357 GetConsumerKioskModeStatus() {
358 static_cast<KioskAppManager::ConsumerKioskModeStatus>(-1); 358 KioskAppManager::ConsumerKioskAutoLaunchStatus status =
359 static_cast<KioskAppManager::ConsumerKioskAutoLaunchStatus>(-1);
359 scoped_refptr<content::MessageLoopRunner> runner = 360 scoped_refptr<content::MessageLoopRunner> runner =
360 new content::MessageLoopRunner; 361 new content::MessageLoopRunner;
361 KioskAppManager::Get()->GetConsumerKioskModeStatus( 362 KioskAppManager::Get()->GetConsumerKioskAutoLaunchStatus(
362 base::Bind(&ConsumerKioskModeStatusCheck, 363 base::Bind(&ConsumerKioskAutoLaunchStatusCheck,
363 &status, 364 &status,
364 runner->QuitClosure())); 365 runner->QuitClosure()));
365 runner->Run(); 366 runner->Run();
366 CHECK_NE(status, static_cast<KioskAppManager::ConsumerKioskModeStatus>(-1)); 367 CHECK_NE(status,
368 static_cast<KioskAppManager::ConsumerKioskAutoLaunchStatus>(-1));
367 return status; 369 return status;
368 } 370 }
369 371
370 AppLaunchController* GetAppLaunchController() { 372 AppLaunchController* GetAppLaunchController() {
371 return chromeos::LoginDisplayHostImpl::default_host() 373 return chromeos::LoginDisplayHostImpl::default_host()
372 ->GetAppLaunchController(); 374 ->GetAppLaunchController();
373 } 375 }
374 376
375 scoped_ptr<MockUserManager> mock_user_manager_; 377 scoped_ptr<MockUserManager> mock_user_manager_;
376 }; 378 };
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 WaitForAppLaunchSuccess(); 531 WaitForAppLaunchSuccess();
530 } 532 }
531 533
532 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableCancel) { 534 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableCancel) {
533 chromeos::WizardController::SkipPostLoginScreensForTesting(); 535 chromeos::WizardController::SkipPostLoginScreensForTesting();
534 chromeos::WizardController* wizard_controller = 536 chromeos::WizardController* wizard_controller =
535 chromeos::WizardController::default_controller(); 537 chromeos::WizardController::default_controller();
536 CHECK(wizard_controller); 538 CHECK(wizard_controller);
537 539
538 // Check Kiosk mode status. 540 // Check Kiosk mode status.
539 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 541 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
540 GetConsumerKioskModeStatus()); 542 GetConsumerKioskModeStatus());
541 543
542 // Wait for the login UI to come up and switch to the kiosk_enable screen. 544 // Wait for the login UI to come up and switch to the kiosk_enable screen.
543 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 545 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
544 content::WindowedNotificationObserver( 546 content::WindowedNotificationObserver(
545 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 547 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
546 content::NotificationService::AllSources()).Wait(); 548 content::NotificationService::AllSources()).Wait();
547 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 549 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
548 base::StringValue("kiosk_enable")); 550 base::StringValue("kiosk_enable"));
549 551
550 // Wait for the kiosk_enable screen to show and cancel the screen. 552 // Wait for the kiosk_enable screen to show and cancel the screen.
551 content::WindowedNotificationObserver( 553 content::WindowedNotificationObserver(
552 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, 554 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
553 content::NotificationService::AllSources()).Wait(); 555 content::NotificationService::AllSources()).Wait();
554 GetLoginUI()->CallJavascriptFunction( 556 GetLoginUI()->CallJavascriptFunction(
555 "login.KioskEnableScreen.enableKioskForTesting", 557 "login.KioskEnableScreen.enableKioskForTesting",
556 base::FundamentalValue(false)); 558 base::FundamentalValue(false));
557 559
558 // Wait for the kiosk_enable screen to disappear. 560 // Wait for the kiosk_enable screen to disappear.
559 content::WindowedNotificationObserver( 561 content::WindowedNotificationObserver(
560 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED, 562 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED,
561 content::NotificationService::AllSources()).Wait(); 563 content::NotificationService::AllSources()).Wait();
562 564
563 // Check that the status still says configurable. 565 // Check that the status still says configurable.
564 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 566 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
565 GetConsumerKioskModeStatus()); 567 GetConsumerKioskModeStatus());
566 } 568 }
567 569
568 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableConfirmed) { 570 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableConfirmed) {
569 // Start UI, find menu entry for this app and launch it. 571 // Start UI, find menu entry for this app and launch it.
570 chromeos::WizardController::SkipPostLoginScreensForTesting(); 572 chromeos::WizardController::SkipPostLoginScreensForTesting();
571 chromeos::WizardController* wizard_controller = 573 chromeos::WizardController* wizard_controller =
572 chromeos::WizardController::default_controller(); 574 chromeos::WizardController::default_controller();
573 CHECK(wizard_controller); 575 CHECK(wizard_controller);
574 576
575 // Check Kiosk mode status. 577 // Check Kiosk mode status.
576 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 578 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
577 GetConsumerKioskModeStatus()); 579 GetConsumerKioskModeStatus());
578 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 580 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
579 581
580 // Wait for the login UI to come up and switch to the kiosk_enable screen. 582 // Wait for the login UI to come up and switch to the kiosk_enable screen.
581 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 583 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
582 content::WindowedNotificationObserver( 584 content::WindowedNotificationObserver(
583 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 585 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
584 content::NotificationService::AllSources()).Wait(); 586 content::NotificationService::AllSources()).Wait();
585 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 587 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
586 base::StringValue("kiosk_enable")); 588 base::StringValue("kiosk_enable"));
587 589
588 // Wait for the kiosk_enable screen to show and cancel the screen. 590 // Wait for the kiosk_enable screen to show and cancel the screen.
589 content::WindowedNotificationObserver( 591 content::WindowedNotificationObserver(
590 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE, 592 chrome::NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
591 content::NotificationService::AllSources()).Wait(); 593 content::NotificationService::AllSources()).Wait();
592 GetLoginUI()->CallJavascriptFunction( 594 GetLoginUI()->CallJavascriptFunction(
593 "login.KioskEnableScreen.enableKioskForTesting", 595 "login.KioskEnableScreen.enableKioskForTesting",
594 base::FundamentalValue(true)); 596 base::FundamentalValue(true));
595 597
596 // Wait for the signal that indicates Kiosk Mode is enabled. 598 // Wait for the signal that indicates Kiosk Mode is enabled.
597 content::WindowedNotificationObserver( 599 content::WindowedNotificationObserver(
598 chrome::NOTIFICATION_KIOSK_ENABLED, 600 chrome::NOTIFICATION_KIOSK_ENABLED,
599 content::NotificationService::AllSources()).Wait(); 601 content::NotificationService::AllSources()).Wait();
600 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_ENABLED, 602 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_ENABLED,
601 GetConsumerKioskModeStatus()); 603 GetConsumerKioskModeStatus());
602 } 604 }
603 605
604 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableAbortedWithAutoEnrollment) { 606 IN_PROC_BROWSER_TEST_F(KioskTest, KioskEnableAbortedWithAutoEnrollment) {
605 // Fake an auto enrollment is going to be enforced. 607 // Fake an auto enrollment is going to be enforced.
606 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 608 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
607 switches::kEnterpriseEnrollmentInitialModulus, "1"); 609 switches::kEnterpriseEnrollmentInitialModulus, "1");
608 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 610 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
609 switches::kEnterpriseEnrollmentModulusLimit, "2"); 611 switches::kEnterpriseEnrollmentModulusLimit, "2");
610 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, true); 612 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, true);
611 g_browser_process->local_state()->SetInteger( 613 g_browser_process->local_state()->SetInteger(
612 prefs::kAutoEnrollmentPowerLimit, 3); 614 prefs::kAutoEnrollmentPowerLimit, 3);
613 615
614 // Start UI, find menu entry for this app and launch it. 616 // Start UI, find menu entry for this app and launch it.
615 chromeos::WizardController::SkipPostLoginScreensForTesting(); 617 chromeos::WizardController::SkipPostLoginScreensForTesting();
616 chromeos::WizardController* wizard_controller = 618 chromeos::WizardController* wizard_controller =
617 chromeos::WizardController::default_controller(); 619 chromeos::WizardController::default_controller();
618 CHECK(wizard_controller); 620 CHECK(wizard_controller);
619 621
620 // Check Kiosk mode status. 622 // Check Kiosk mode status.
621 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 623 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
622 GetConsumerKioskModeStatus()); 624 GetConsumerKioskModeStatus());
623 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 625 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
624 626
625 // Wait for the login UI to come up and switch to the kiosk_enable screen. 627 // Wait for the login UI to come up and switch to the kiosk_enable screen.
626 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 628 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
627 content::WindowedNotificationObserver( 629 content::WindowedNotificationObserver(
628 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 630 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
629 content::NotificationService::AllSources()).Wait(); 631 content::NotificationService::AllSources()).Wait();
630 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 632 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
631 base::StringValue("kiosk_enable")); 633 base::StringValue("kiosk_enable"));
(...skipping 15 matching lines...) Expand all
647 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, false); 649 g_browser_process->local_state()->SetBoolean(prefs::kShouldAutoEnroll, false);
648 g_browser_process->local_state()->SetInteger( 650 g_browser_process->local_state()->SetInteger(
649 prefs::kAutoEnrollmentPowerLimit, -1); 651 prefs::kAutoEnrollmentPowerLimit, -1);
650 652
651 chromeos::WizardController::SkipPostLoginScreensForTesting(); 653 chromeos::WizardController::SkipPostLoginScreensForTesting();
652 chromeos::WizardController* wizard_controller = 654 chromeos::WizardController* wizard_controller =
653 chromeos::WizardController::default_controller(); 655 chromeos::WizardController::default_controller();
654 CHECK(wizard_controller); 656 CHECK(wizard_controller);
655 657
656 // Check Kiosk mode status. 658 // Check Kiosk mode status.
657 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_MODE_CONFIGURABLE, 659 EXPECT_EQ(KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_CONFIGURABLE,
658 GetConsumerKioskModeStatus()); 660 GetConsumerKioskModeStatus());
659 661
660 // Wait for the login UI to come up and switch to the kiosk_enable screen. 662 // Wait for the login UI to come up and switch to the kiosk_enable screen.
661 wizard_controller->SkipToLoginForTesting(LoginScreenContext()); 663 wizard_controller->SkipToLoginForTesting(LoginScreenContext());
662 content::WindowedNotificationObserver( 664 content::WindowedNotificationObserver(
663 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 665 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
664 content::NotificationService::AllSources()).Wait(); 666 content::NotificationService::AllSources()).Wait();
665 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator", 667 GetLoginUI()->CallJavascriptFunction("cr.ui.Oobe.handleAccelerator",
666 base::StringValue("kiosk_enable")); 668 base::StringValue("kiosk_enable"));
667 669
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 content::WindowedNotificationObserver( 894 content::WindowedNotificationObserver(
893 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE, 895 chrome::NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
894 content::NotificationService::AllSources()).Wait(); 896 content::NotificationService::AllSources()).Wait();
895 897
896 // Wait for the wallpaper to load. 898 // Wait for the wallpaper to load.
897 WaitForWallpaper(); 899 WaitForWallpaper();
898 EXPECT_TRUE(wallpaper_loaded()); 900 EXPECT_TRUE(wallpaper_loaded());
899 } 901 }
900 902
901 } // namespace chromeos 903 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698