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 @@
#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/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/session_manager_state_waiter.h"
#include "chrome/browser/chromeos/login/ui/login_display_host.h"
......@@ -48,6 +49,7 @@
#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/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/test/base/ui_test_utils.h"
#include "chromeos/constants/chromeos_features.h"
......@@ -240,7 +242,8 @@ class ErrorScreenWatcher : public OobeUI::Observer {
class WebviewLoginTest : public OobeBaseTest {
public:
WebviewLoginTest() {
scoped_feature_list_.InitWithFeatures({features::kGaiaActionButtons}, {});
scoped_feature_list_.InitWithFeatures(
{features::kGaiaActionButtons, features::kChildSpecificSignin}, {});
}
~WebviewLoginTest() override = default;
......@@ -303,9 +306,9 @@ class WebviewLoginTest : public OobeBaseTest {
protected:
chromeos::ScopedTestingCrosSettings scoped_testing_cros_settings_;
FakeGaiaMixin fake_gaia_{&mixin_host_, embedded_test_server()};
base::test::ScopedFeatureList scoped_feature_list_;
private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(WebviewLoginTest);
};
......@@ -423,18 +426,16 @@ IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackButton) {
test::WaitForPrimaryUserSessionStart();
}
IN_PROC_BROWSER_TEST_F(WebviewLoginTest, ErrorScreenOnGaiaError) {
IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackToUserCreationScreen) {
WaitForGaiaPageLoadAndPropertyUpdate();
ExpectIdentifierPage();
// Make gaia landing page unreachable
fake_gaia_.fake_gaia()->SetErrorResponse(
GaiaUrls::GetInstance()->embedded_setup_chromeos_url(2),
net::HTTP_NOT_FOUND);
// Start with identifier page.
ExpectIdentifierPage();
// Click back to reload (unreachable) identifier page.
// Click back to exit gaia screen.
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.
......@@ -1327,4 +1328,28 @@ IN_PROC_BROWSER_TEST_F(WebviewProxyAuthLoginTest, DISABLED_ProxyAuthTransfer) {
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
......@@ -654,9 +654,6 @@ void WizardController::ShowLoginScreen() {
if (login_screen_started_)
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()) {
base::TimeDelta delta = base::TimeTicks::Now() - time_eula_accepted_;
UMA_HISTOGRAM_MEDIUM_TIMES("OOBE.EULAToSignInTime", delta);
......@@ -665,6 +662,9 @@ void WizardController::ShowLoginScreen() {
UpdateStatusAreaVisibilityForScreen(GaiaView::kScreenId);
GetLoginDisplayHost()->StartSignInScreen();
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(
......
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