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

Unified Diff: google_apis/gaia/fake_gaia.cc

Issue 1054403002: Basic tests for new webview based signin flow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove flaky back-button check Created 5 years, 8 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
« no previous file with comments | « google_apis/gaia/fake_gaia.h ('k') | google_apis/test/embedded_setup_chromeos.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: google_apis/gaia/fake_gaia.cc
diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc
index 5622460f3e894df6ea63a4354e2956eb58a47c8d..bf2331d970abd5c8fcf42bd09cb9f1262ea6ff2d 100644
--- a/google_apis/gaia/fake_gaia.cc
+++ b/google_apis/gaia/fake_gaia.cc
@@ -56,6 +56,9 @@ const char kDefaultGaiaId[] ="12345";
const base::FilePath::CharType kServiceLogin[] =
FILE_PATH_LITERAL("google_apis/test/service_login.html");
+const base::FilePath::CharType kEmbeddedSetupChromeos[] =
+ FILE_PATH_LITERAL("google_apis/test/embedded_setup_chromeos.html");
+
// OAuth2 Authentication header value prefix.
const char kAuthHeaderBearer[] = "Bearer ";
const char kAuthHeaderOAuth[] = "OAuth ";
@@ -139,6 +142,9 @@ FakeGaia::FakeGaia() : issue_oauth_code_cookie_(false) {
CHECK(base::ReadFileToString(
source_root_dir.Append(base::FilePath(kServiceLogin)),
&service_login_response_));
+ CHECK(base::ReadFileToString(
+ source_root_dir.Append(base::FilePath(kEmbeddedSetupChromeos)),
+ &embedded_setup_chromeos_response_));
}
FakeGaia::~FakeGaia() {}
@@ -213,9 +219,8 @@ void FakeGaia::Initialize() {
gaia_urls->service_login_url(), HandleServiceLogin);
// Handles /embedded/setup/chromeos GAIA call.
- // Same handler as for /ServiceLogin is used for now.
- REGISTER_RESPONSE_HANDLER(
- gaia_urls->embedded_setup_chromeos_url(), HandleServiceLogin);
+ REGISTER_RESPONSE_HANDLER(gaia_urls->embedded_setup_chromeos_url(),
+ HandleEmbeddedSetupChromeos);
// Handles /OAuthLogin GAIA call.
REGISTER_RESPONSE_HANDLER(
@@ -225,6 +230,16 @@ void FakeGaia::Initialize() {
REGISTER_RESPONSE_HANDLER(
gaia_urls->service_login_auth_url(), HandleServiceLoginAuth);
+ // Handles /_/embedded/lookup/accountlookup for /embedded/setup/chromeos
+ // authentication request.
+ REGISTER_PATH_RESPONSE_HANDLER("/_/embedded/lookup/accountlookup",
+ HandleEmbeddedLookupAccountLookup);
+
+ // Handles /_/embedded/signin/challenge for /embedded/setup/chromeos
+ // authentication request.
+ REGISTER_PATH_RESPONSE_HANDLER("/_/embedded/signin/challenge",
+ HandleEmbeddedSigninChallenge);
+
// Handles /SSO GAIA call (not GAIA, made up for SAML tests).
REGISTER_PATH_RESPONSE_HANDLER("/SSO", HandleSSO);
@@ -424,6 +439,13 @@ void FakeGaia::HandleServiceLogin(const HttpRequest& request,
http_response->set_content_type("text/html");
}
+void FakeGaia::HandleEmbeddedSetupChromeos(const HttpRequest& request,
+ BasicHttpResponse* http_response) {
+ http_response->set_code(net::HTTP_OK);
+ http_response->set_content(embedded_setup_chromeos_response_);
+ http_response->set_content_type("text/html");
+}
+
void FakeGaia::HandleOAuthLogin(const HttpRequest& request,
BasicHttpResponse* http_response) {
http_response->set_code(net::HTTP_UNAUTHORIZED);
@@ -501,6 +523,45 @@ void FakeGaia::HandleServiceLoginAuth(const HttpRequest& request,
SetOAuthCodeCookie(http_response);
}
+void FakeGaia::HandleEmbeddedLookupAccountLookup(
+ const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response) {
+ std::string email;
+ const bool is_saml =
+ GetQueryParameter(request.content, "identifier", &email) &&
+ saml_account_idp_map_.find(email) != saml_account_idp_map_.end();
+
+ if (!is_saml)
+ return;
+
+ GURL url(saml_account_idp_map_[email]);
+ url = net::AppendQueryParameter(url, "SAMLRequest", "fake_request");
+ url = net::AppendQueryParameter(
+ url, "RelayState",
+ "chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/success.html");
+ std::string redirect_url = url.spec();
+ http_response->AddCustomHeader("Google-Accounts-SAML", "Start");
+
+ http_response->AddCustomHeader("continue", redirect_url);
+}
+
+void FakeGaia::HandleEmbeddedSigninChallenge(const HttpRequest& request,
+ BasicHttpResponse* http_response) {
+ std::string email;
+ GetQueryParameter(request.content, "identifier", &email);
+
+ if (!merge_session_params_.auth_sid_cookie.empty() &&
+ !merge_session_params_.auth_lsid_cookie.empty()) {
+ SetCookies(http_response, merge_session_params_.auth_sid_cookie,
+ merge_session_params_.auth_lsid_cookie);
+ }
+
+ AddGoogleAccountsSigninHeader(http_response, email);
+
+ if (issue_oauth_code_cookie_)
+ SetOAuthCodeCookie(http_response);
+}
+
void FakeGaia::HandleSSO(const HttpRequest& request,
BasicHttpResponse* http_response) {
if (!merge_session_params_.auth_sid_cookie.empty() &&
« no previous file with comments | « google_apis/gaia/fake_gaia.h ('k') | google_apis/test/embedded_setup_chromeos.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698