Commit d4a2bb57 authored by Alexander Alekseev's avatar Alexander Alekseev Committed by Commit Bot

Chrome OS: Fix and re-enable LoginTest.GaiaAuthOffline test.

Bug: 692364

Change-Id: Ib42c71c66094088d4c0644ba3b151700e110351f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565710
Commit-Queue: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: default avatarToni Baržić <tbarzic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#650550}
parent 0919113a
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "chrome/browser/chromeos/login/login_wizard.h" #include "chrome/browser/chromeos/login/login_wizard.h"
#include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/test/js_checker.h" #include "chrome/browser/chromeos/login/test/js_checker.h"
#include "chrome/browser/chromeos/login/test/test_condition_waiter.h"
#include "chrome/browser/chromeos/login/ui/login_display_host_webui.h" #include "chrome/browser/chromeos/login/ui/login_display_host_webui.h"
#include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/cros_settings.h"
...@@ -102,51 +103,32 @@ class LoginTest : public LoginManagerTest { ...@@ -102,51 +103,32 @@ class LoginTest : public LoginManagerTest {
~LoginTest() override {} ~LoginTest() override {}
void StartGaiaAuthOffline() { void StartGaiaAuthOffline() {
content::DOMMessageQueue message_queue; auto gaia_screen_waiter = test::CreateOobeScreenWaiter("gaia-signin");
// clang-format off test::ExecuteOobeJS("$('error-offline-login-link').onclick();");
const std::string js = "(function() {" gaia_screen_waiter->Wait();
"var authenticator = $('gaia-signin').gaiaAuthHost_;" test::OobeJS().CreateVisibilityWaiter(true, {"offline-gaia"})->Wait();
"authenticator.addEventListener('ready',"
"function f() {"
"authenticator.removeEventListener('ready', f);"
"window.domAutomationController.send('offlineLoaded');"
"});"
"$('error-offline-login-link').onclick();"
"})();";
// clang-format on
test::ExecuteOobeJS(js);
std::string message;
do {
ASSERT_TRUE(message_queue.WaitForMessage(&message));
} while (message != "\"offlineLoaded\"");
} }
void SubmitGaiaAuthOfflineForm(const std::string& user_email, void SubmitGaiaAuthOfflineForm(const std::string& user_email,
const std::string& password) { const std::string& password) {
const std::string animated_pages =
"document.querySelector('#offline-gaia /deep/ "
"#animatedPages')";
content::DOMMessageQueue message_queue;
test::OobeJS().ExpectVisible("offline-gaia"); test::OobeJS().ExpectVisible("offline-gaia");
test::OobeJS().ExpectHidden("signin-frame"); test::OobeJS().ExpectHidden("signin-frame");
const std::string js = test::OobeJS()
animated_pages + .CreateDisplayedWaiter(true, {"offline-gaia", "email-section"})
".addEventListener('neon-animation-finish'," ->Wait();
"function() {" test::OobeJS()
"window.domAutomationController.send('switchToPassword');" .CreateDisplayedWaiter(false, {"offline-gaia", "password-section"})
"})"; ->Wait();
test::ExecuteOobeJS(js);
test::OobeJS().TypeIntoPath(user_email, {"offline-gaia", "emailInput"}); test::OobeJS().TypeIntoPath(user_email, {"offline-gaia", "emailInput"});
test::OobeJS().TapOnPath({"offline-gaia", "emailSection", "button"}); test::OobeJS().TapOnPath({"offline-gaia", "email-input-form", "button"});
std::string message; test::OobeJS()
do { .CreateDisplayedWaiter(false, {"offline-gaia", "email-section"})
ASSERT_TRUE(message_queue.WaitForMessage(&message)); ->Wait();
} while (message != "\"switchToPassword\""); test::OobeJS()
.CreateDisplayedWaiter(true, {"offline-gaia", "password-section"})
->Wait();
test::OobeJS().TypeIntoPath(password, {"offline-gaia", "passwordInput"}); test::OobeJS().TypeIntoPath(password, {"offline-gaia", "passwordInput"});
test::OobeJS().TapOnPath({"offline-gaia", "passwordSection", "button"}); test::OobeJS().TapOnPath({"offline-gaia", "password-input-form", "button"});
} }
void PrepareOfflineLogin() { void PrepareOfflineLogin() {
...@@ -163,10 +145,6 @@ class LoginTest : public LoginManagerTest { ...@@ -163,10 +145,6 @@ class LoginTest : public LoginManagerTest {
user_context.SetKey(Key(kPassword)); user_context.SetKey(Key(kPassword));
SetExpectedCredentials(user_context); SetExpectedCredentials(user_context);
} }
protected:
ScopedCrosSettingsTestHelper settings_helper_{
/* create_settings_service= */ false};
}; };
// Used to make sure that the system tray is visible and within the screen // Used to make sure that the system tray is visible and within the screen
...@@ -241,11 +219,10 @@ IN_PROC_BROWSER_TEST_F(LoginSigninTest, WebUIVisible) { ...@@ -241,11 +219,10 @@ IN_PROC_BROWSER_TEST_F(LoginSigninTest, WebUIVisible) {
IN_PROC_BROWSER_TEST_F(LoginTest, PRE_GaiaAuthOffline) { IN_PROC_BROWSER_TEST_F(LoginTest, PRE_GaiaAuthOffline) {
RegisterUser(AccountId::FromUserEmailGaiaId(kTestUser, kGaiaId)); RegisterUser(AccountId::FromUserEmailGaiaId(kTestUser, kGaiaId));
StartupUtils::MarkOobeCompleted(); StartupUtils::MarkOobeCompleted();
settings_helper_.SetBoolean(kAccountsPrefShowUserNamesOnSignIn, false); CrosSettings::Get()->SetBoolean(kAccountsPrefShowUserNamesOnSignIn, false);
} }
// Flaky, see http://crbug/692364. IN_PROC_BROWSER_TEST_F(LoginTest, GaiaAuthOffline) {
IN_PROC_BROWSER_TEST_F(LoginTest, DISABLED_GaiaAuthOffline) {
PrepareOfflineLogin(); PrepareOfflineLogin();
content::WindowedNotificationObserver session_start_waiter( content::WindowedNotificationObserver session_start_waiter(
chrome::NOTIFICATION_SESSION_STARTED, chrome::NOTIFICATION_SESSION_STARTED,
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
[[i18nDynamic(locale, 'enterpriseInfoMessage', domain)]] [[i18nDynamic(locale, 'enterpriseInfoMessage', domain)]]
</div> </div>
</div> </div>
<gaia-input-form on-submit="onEmailSubmitted_" <gaia-input-form id="email-input-form" on-submit="onEmailSubmitted_"
disabled="[[disabled]]" disabled="[[disabled]]"
button-text="[[i18nDynamic(locale, 'offlineLoginNextBtn')]]"> button-text="[[i18nDynamic(locale, 'offlineLoginNextBtn')]]">
<gaia-input slot="inputs" id="emailInput" type="email" required <gaia-input slot="inputs" id="emailInput" type="email" required
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
</div> </div>
<div id="subtitle-container"> <div id="subtitle-container">
</div> </div>
<gaia-input-form disabled="[[disabled]]" <gaia-input-form id="password-input-form" disabled="[[disabled]]"
on-submit="onPasswordSubmitted_" on-submit="onPasswordSubmitted_"
button-text="[[i18nDynamic(locale, 'offlineLoginNextBtn')]]"> button-text="[[i18nDynamic(locale, 'offlineLoginNextBtn')]]">
<gaia-input slot="inputs" id="passwordInput" type="password" <gaia-input slot="inputs" id="passwordInput" type="password"
......
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