#include "chrome/browser/chromeos/login/mock_authenticator.h"
#include "chrome/browser/chromeos/login/mock_login_status_consumer.h"
#include "chrome/browser/chromeos/login/screens/error_screen.h"
+#include "chrome/browser/chromeos/login/screens/hid_detection_screen.h"
#include "chrome/browser/chromeos/login/screens/mock_eula_screen.h"
#include "chrome/browser/chromeos/login/screens/mock_network_screen.h"
#include "chrome/browser/chromeos/login/screens/mock_update_screen.h"
->GetErrorScreen();
}
+ content::WebContents* GetWebContents() {
+ LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>(
+ LoginDisplayHostImpl::default_host());
+ if (!host)
+ return NULL;
+ WebUILoginView* webui_login_view = host->GetWebUILoginView();
+ if (!webui_login_view)
+ return NULL;
+ return webui_login_view->GetWebContents();
+ }
+
+ void WaitUntilJSIsReady() {
+ LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>(
+ LoginDisplayHostImpl::default_host());
+ if (!host)
+ return;
+ chromeos::OobeUI* oobe_ui = host->GetOobeUI();
+ if (!oobe_ui)
+ return;
+ base::RunLoop run_loop;
+ const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure());
+ if (!oobe_ui_ready)
+ run_loop.Run();
+ }
+
+ bool JSExecuteBooleanExpression(const std::string& expression) {
+ bool result;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
+ GetWebContents(),
+ "window.domAutomationController.send(!!(" + expression + "));",
+ &result));
+ return result;
+ }
+
private:
DISALLOW_COPY_AND_ASSIGN(WizardControllerTest);
};
EXPECT_TRUE(ExistingUserController::current_controller() == NULL);
EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
WizardController::default_controller()->current_screen());
+
+ WaitUntilJSIsReady();
+
+ // Check visibility of the header bar.
+ ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
+
EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
OnExit(ScreenObserver::NETWORK_CONNECTED);
EXPECT_EQ(WizardController::default_controller()->GetEulaScreen(),
WizardController::default_controller()->current_screen());
+
+ // Header bar should still be visible.
+ ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
+
EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
base::MessageLoop::current()->RunUntilIdle();
}
-IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowResetScreen) {
- EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
- WizardController::default_controller()->current_screen());
-
- LoginDisplayHostImpl::default_host()->StartSignInScreen(LoginScreenContext());
- EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
- ExistingUserController::current_controller()->OnStartDeviceReset();
-
- ResetScreen* screen =
- WizardController::default_controller()->GetResetScreen();
- EXPECT_EQ(screen, WizardController::default_controller()->current_screen());
-
- // After reset screen is canceled, it returns to sign-in screen.
- // And this destroys WizardController.
- OnExit(ScreenObserver::RESET_CANCELED);
- EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
-}
-
IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest,
ControlFlowWrongHWIDScreenFromLogin) {
EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
WizardControllerTest::TearDownInProcessBrowserTestFixture();
}
- content::WebContents* GetWebContents() {
- LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>(
- LoginDisplayHostImpl::default_host());
- if (!host)
- return NULL;
- WebUILoginView* webui_login_view = host->GetWebUILoginView();
- if (!webui_login_view)
- return NULL;
- return webui_login_view->GetWebContents();
- }
-
- void WaitUntilJSIsReady() {
- LoginDisplayHostImpl* host = static_cast<LoginDisplayHostImpl*>(
- LoginDisplayHostImpl::default_host());
- if (!host)
- return;
- chromeos::OobeUI* oobe_ui = host->GetOobeUI();
- if (!oobe_ui)
- return;
- base::RunLoop run_loop;
- const bool oobe_ui_ready = oobe_ui->IsJSReady(run_loop.QuitClosure());
- if (!oobe_ui_ready)
- run_loop.Run();
- }
-
- bool JSExecuteBooleanExpression(const std::string& expression) {
- bool result;
- EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
- GetWebContents(),
- "window.domAutomationController.send(!!(" + expression + "));",
- &result));
- return result;
- }
FakeSessionManagerClient* fake_session_manager_client() const {
return fake_session_manager_client_;
// TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
-COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 20,
+// TODO(merkulova): Add tests for bluetooth HID detection screen variations when
+// UI and logic is ready. http://crbug.com/127016
+
+COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 21,
add_tests_for_new_control_flow_you_just_introduced);
} // namespace chromeos