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

Unified Diff: chrome/browser/chromeos/login/app_launch_controller.cc

Issue 23449023: Add kiosk browser tests for network configuration. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix flakiness Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/app_launch_controller.cc
diff --git a/chrome/browser/chromeos/login/app_launch_controller.cc b/chrome/browser/chromeos/login/app_launch_controller.cc
index 72af235ec0aefea02c45a56b0cea8167cf83e341..39da46468bedcf9e66ee09054f1ff3399f724eb6 100644
--- a/chrome/browser/chromeos/login/app_launch_controller.cc
+++ b/chrome/browser/chromeos/login/app_launch_controller.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/chromeos/login/app_launch_controller.h"
+#include "base/callback.h"
#include "base/files/file_path.h"
#include "base/json/json_file_value_serializer.h"
#include "base/time/time.h"
@@ -34,6 +35,9 @@ const int kAppInstallSplashScreenMinTimeMS = 3000;
// static
bool AppLaunchController::skip_splash_wait_ = false;
+int AppLaunchController::network_wait_time_ = 10;
+base::Closure* AppLaunchController::network_timeout_callback_ = NULL;
+UserManager* AppLaunchController::test_user_manager_ = NULL;
AppLaunchController::AppLaunchController(const std::string& app_id,
LoginDisplayHost* host,
@@ -46,8 +50,11 @@ AppLaunchController::AppLaunchController(const std::string& app_id,
oobe_display_->GetAppLaunchSplashScreenActor()),
error_screen_actor_(oobe_display_->GetErrorScreenActor()),
waiting_for_network_(false),
+ network_wait_timedout_(false),
showing_network_dialog_(false),
launch_splash_start_time_(0) {
+ signin_screen_.reset(new AppLaunchSigninScreen(
+ static_cast<OobeUI*>(oobe_display_), this));
}
AppLaunchController::~AppLaunchController() {
@@ -66,18 +73,29 @@ void AppLaunchController::StartAppLaunch() {
kiosk_profile_loader_->Start();
}
-// static
void AppLaunchController::SkipSplashWaitForTesting() {
skip_splash_wait_ = true;
}
+void AppLaunchController::SetNetworkWaitForTesting(int wait_time_secs) {
+ network_wait_time_ = wait_time_secs;
+}
+
+void AppLaunchController::SetNetworkTimeoutCallbackForTesting(
+ base::Closure* callback) {
+ network_timeout_callback_ = callback;
+}
+
+void AppLaunchController::SetUserManagerForTesting(UserManager* user_manager) {
+ test_user_manager_ = user_manager;
+ AppLaunchSigninScreen::SetUserManagerForTesting(user_manager);
+}
+
void AppLaunchController::OnConfigureNetwork() {
DCHECK(profile_);
showing_network_dialog_ = true;
- const std::string& owner_email = UserManager::Get()->GetOwnerEmail();
+ const std::string& owner_email = GetUserManager()->GetOwnerEmail();
if (!owner_email.empty()) {
- signin_screen_.reset(new AppLaunchSigninScreen(
- static_cast<OobeUI*>(oobe_display_), this));
signin_screen_->Show();
} else {
// If kiosk mode was configured through enterprise policy, we may
@@ -145,10 +163,9 @@ void AppLaunchController::OnInitializingNetwork() {
// Show the network configration dialog if network is not initialized
// after a brief wait time.
waiting_for_network_ = true;
- const int kNetworkConfigWaitSeconds = 10;
network_wait_timer_.Start(
FROM_HERE,
- base::TimeDelta::FromSeconds(kNetworkConfigWaitSeconds),
+ base::TimeDelta::FromSeconds(network_wait_time_),
this, &AppLaunchController::OnNetworkWaitTimedout);
}
@@ -156,7 +173,10 @@ void AppLaunchController::OnNetworkWaitTimedout() {
DCHECK(waiting_for_network_);
LOG(WARNING) << "OnNetworkWaitTimedout... connection = "
<< net::NetworkChangeNotifier::GetConnectionType();
+ network_wait_timedout_ = true;
app_launch_splash_screen_actor_->ToggleNetworkConfig(true);
+ if (network_timeout_callback_)
+ network_timeout_callback_->Run();
}
void AppLaunchController::OnInstallingApp() {
@@ -206,4 +226,8 @@ void AppLaunchController::OnLaunchFailed(KioskAppLaunchError::Error error) {
Cleanup();
}
+UserManager* AppLaunchController::GetUserManager() {
+ return test_user_manager_ ? test_user_manager_ : UserManager::Get();
+}
+
} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/login/app_launch_controller.h ('k') | chrome/browser/chromeos/login/app_launch_signin_screen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698