Commit 4aa12de8 authored by Yunke Zhou's avatar Yunke Zhou Committed by Commit Bot

Oobe: add browser test for gaia screen

Add browser test to verify behavior for back button on the gaia screen when kChildSpecificSignin feature is enabled.

Bug: 1101318
Change-Id: Ibaff1cf629520b3fbbe8cd620d8727bd35922295
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2343068
Commit-Queue: Denis Kuznetsov [CET] <antrim@chromium.org>
Reviewed-by: default avatarDenis Kuznetsov [CET] <antrim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797176}
parent cea61842
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "chrome/browser/chromeos/login/test/js_checker.h" #include "chrome/browser/chromeos/login/test/js_checker.h"
#include "chrome/browser/chromeos/login/test/local_policy_test_server_mixin.h" #include "chrome/browser/chromeos/login/test/local_policy_test_server_mixin.h"
#include "chrome/browser/chromeos/login/test/oobe_base_test.h" #include "chrome/browser/chromeos/login/test/oobe_base_test.h"
#include "chrome/browser/chromeos/login/test/oobe_screen_exit_waiter.h"
#include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" #include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h"
#include "chrome/browser/chromeos/login/test/session_manager_state_waiter.h" #include "chrome/browser/chromeos/login/test/session_manager_state_waiter.h"
#include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h"
...@@ -48,6 +49,7 @@ ...@@ -48,6 +49,7 @@
#include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/user_creation_screen_handler.h"
#include "chrome/browser/ui/webui/signin/signin_utils.h" #include "chrome/browser/ui/webui/signin/signin_utils.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "chromeos/constants/chromeos_features.h" #include "chromeos/constants/chromeos_features.h"
...@@ -240,7 +242,8 @@ class ErrorScreenWatcher : public OobeUI::Observer { ...@@ -240,7 +242,8 @@ class ErrorScreenWatcher : public OobeUI::Observer {
class WebviewLoginTest : public OobeBaseTest { class WebviewLoginTest : public OobeBaseTest {
public: public:
WebviewLoginTest() { WebviewLoginTest() {
scoped_feature_list_.InitWithFeatures({features::kGaiaActionButtons}, {}); scoped_feature_list_.InitWithFeatures(
{features::kGaiaActionButtons, features::kChildSpecificSignin}, {});
} }
~WebviewLoginTest() override = default; ~WebviewLoginTest() override = default;
...@@ -303,9 +306,9 @@ class WebviewLoginTest : public OobeBaseTest { ...@@ -303,9 +306,9 @@ class WebviewLoginTest : public OobeBaseTest {
protected: protected:
chromeos::ScopedTestingCrosSettings scoped_testing_cros_settings_; chromeos::ScopedTestingCrosSettings scoped_testing_cros_settings_;
FakeGaiaMixin fake_gaia_{&mixin_host_, embedded_test_server()}; FakeGaiaMixin fake_gaia_{&mixin_host_, embedded_test_server()};
base::test::ScopedFeatureList scoped_feature_list_;
private: private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(WebviewLoginTest); DISALLOW_COPY_AND_ASSIGN(WebviewLoginTest);
}; };
...@@ -423,18 +426,16 @@ IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackButton) { ...@@ -423,18 +426,16 @@ IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackButton) {
test::WaitForPrimaryUserSessionStart(); test::WaitForPrimaryUserSessionStart();
} }
IN_PROC_BROWSER_TEST_F(WebviewLoginTest, ErrorScreenOnGaiaError) { IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackToUserCreationScreen) {
WaitForGaiaPageLoadAndPropertyUpdate(); WaitForGaiaPageLoadAndPropertyUpdate();
ExpectIdentifierPage();
// Make gaia landing page unreachable // Start with identifier page.
fake_gaia_.fake_gaia()->SetErrorResponse( ExpectIdentifierPage();
GaiaUrls::GetInstance()->embedded_setup_chromeos_url(2),
net::HTTP_NOT_FOUND);
// Click back to reload (unreachable) identifier page. // Click back to exit gaia screen.
test::OobeJS().ClickOnPath({"gaia-signin", "signin-back-button"}); test::OobeJS().ClickOnPath({"gaia-signin", "signin-back-button"});
OobeScreenWaiter(ErrorScreenView::kScreenId).Wait(); OobeScreenExitWaiter(GaiaView::kScreenId).Wait();
OobeScreenWaiter(UserCreationView::kScreenId).Wait();
} }
// Create new account option should be available only if the settings allow it. // Create new account option should be available only if the settings allow it.
...@@ -1327,4 +1328,28 @@ IN_PROC_BROWSER_TEST_F(WebviewProxyAuthLoginTest, DISABLED_ProxyAuthTransfer) { ...@@ -1327,4 +1328,28 @@ IN_PROC_BROWSER_TEST_F(WebviewProxyAuthLoginTest, DISABLED_ProxyAuthTransfer) {
ExpectIdentifierPage(); ExpectIdentifierPage();
} }
class WebviewLoginTestWithChildSigninDisabled : public WebviewLoginTest {
public:
WebviewLoginTestWithChildSigninDisabled() {
scoped_feature_list_.Reset();
scoped_feature_list_.InitWithFeatures({features::kGaiaActionButtons},
{features::kChildSpecificSignin});
}
};
IN_PROC_BROWSER_TEST_F(WebviewLoginTestWithChildSigninDisabled,
ErrorScreenOnGaiaError) {
WaitForGaiaPageLoadAndPropertyUpdate();
ExpectIdentifierPage();
// Make gaia landing page unreachable
fake_gaia_.fake_gaia()->SetErrorResponse(
GaiaUrls::GetInstance()->embedded_setup_chromeos_url(2),
net::HTTP_NOT_FOUND);
// Click back to reload (unreachable) identifier page.
test::OobeJS().ClickOnPath({"gaia-signin", "signin-back-button"});
OobeScreenWaiter(ErrorScreenView::kScreenId).Wait();
}
} // namespace chromeos } // namespace chromeos
...@@ -654,9 +654,6 @@ void WizardController::ShowLoginScreen() { ...@@ -654,9 +654,6 @@ void WizardController::ShowLoginScreen() {
if (login_screen_started_) if (login_screen_started_)
return; return;
// Landed on the login screen. No longer skipping enrollment for tests.
wizard_context_->skip_to_login_for_tests = false;
if (!time_eula_accepted_.is_null()) { if (!time_eula_accepted_.is_null()) {
base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_; base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_;
UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta); UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta);
...@@ -665,6 +662,9 @@ void WizardController::ShowLoginScreen() { ...@@ -665,6 +662,9 @@ void WizardController::ShowLoginScreen() {
UpdateStatusAreaVisibilityForScreen(GaiaView::kScreenId); UpdateStatusAreaVisibilityForScreen(GaiaView::kScreenId);
GetLoginDisplayHost()->StartSignInScreen(); GetLoginDisplayHost()->StartSignInScreen();
login_screen_started_ = true; login_screen_started_ = true;
// Landed on the login screen. No longer skipping to login for tests.
wizard_context_->skip_to_login_for_tests = false;
} }
void WizardController::ShowGaiaPasswordChangedScreen( void WizardController::ShowGaiaPasswordChangedScreen(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment