Chromium Code Reviews| Index: google_apis/gaia/fake_gaia.cc |
| diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc |
| index cdc1237a319a9e6d126ed78f5ddb36b628208d34..b9e22ea078ef306f0b2694377f505ee97d9ce6d3 100644 |
| --- a/google_apis/gaia/fake_gaia.cc |
| +++ b/google_apis/gaia/fake_gaia.cc |
| @@ -41,6 +41,18 @@ using namespace net::test_server; |
| namespace { |
| +const char kTestAuthSIDCookie[] = "fake-auth-SID-cookie"; |
| +const char kTestAuthLSIDCookie[] = "fake-auth-LSID-cookie"; |
| +const char kTestAuthCode[] = "fake-auth-code"; |
| +const char kTestGaiaUberToken[] = "fake-uber-token"; |
| +const char kTestAuthLoginAccessToken[] = "fake-access-token"; |
| +const char kTestRefreshToken[] = "fake-refresh-token"; |
| +const char kTestSessionSIDCookie[] = "fake-session-SID-cookie"; |
| +const char kTestSessionLSIDCookie[] = "fake-session-LSID-cookie"; |
| +const char kTestOAuthLoginSID[] = "fake-oauth-SID-cookie"; |
| +const char kTestOAuthLoginLSID[] = "fake-oauth-LSID-cookie"; |
| +const char kTestOAuthLoginAuthCode[] = "fake-oauth-auth-code"; |
| + |
| const base::FilePath::CharType kServiceLogin[] = |
| FILE_PATH_LITERAL("google_apis/test/service_login.html"); |
| @@ -131,6 +143,20 @@ FakeGaia::FakeGaia() { |
| FakeGaia::~FakeGaia() {} |
| +void FakeGaia::SetFakeMergeSessionParamsForEmail(const std::string& email) { |
| + FakeGaia::MergeSessionParams params; |
|
xiyuan
2014/07/25 18:07:23
nit: wrong indent
guohui
2014/08/07 19:53:34
Done.
|
| + params.auth_sid_cookie = kTestAuthSIDCookie; |
| + params.auth_lsid_cookie = kTestAuthLSIDCookie; |
| + params.auth_code = kTestAuthCode; |
| + params.refresh_token = kTestRefreshToken; |
| + params.access_token = kTestAuthLoginAccessToken; |
| + params.gaia_uber_token = kTestGaiaUberToken; |
| + params.session_sid_cookie = kTestSessionSIDCookie; |
| + params.session_lsid_cookie = kTestSessionLSIDCookie; |
| + params.email = email; |
| + SetMergeSessionParams(params); |
| +} |
| + |
| void FakeGaia::SetMergeSessionParams( |
| const MergeSessionParams& params) { |
| merge_session_params_ = params; |
| @@ -176,6 +202,10 @@ void FakeGaia::Initialize() { |
| // Handles /ListAccounts GAIA call. |
| REGISTER_RESPONSE_HANDLER( |
| gaia_urls->list_accounts_url(), HandleListAccounts); |
| + |
| + // Handles /GetUserInfo GAIA call. |
| + REGISTER_RESPONSE_HANDLER( |
| + gaia_urls->get_user_info_url(), HandleGetUserInfo); |
| } |
| scoped_ptr<HttpResponse> FakeGaia::HandleRequest(const HttpRequest& request) { |
| @@ -345,7 +375,7 @@ void FakeGaia::HandleOAuthLogin(const HttpRequest& request, |
| } |
| std::string access_token; |
| - if (!GetAccessToken(request, kAuthHeaderOAuth, &access_token)) { |
| + if (!GetAccessToken(request, kAuthHeaderBearer, &access_token)) { |
| LOG(ERROR) << "/OAuthLogin missing access token in the header"; |
| return; |
| } |
| @@ -354,7 +384,8 @@ void FakeGaia::HandleOAuthLogin(const HttpRequest& request, |
| std::string request_query = request_url.query(); |
| std::string source; |
| - if (!GetQueryParameter(request_query, "source", &source)) { |
| + if (!GetQueryParameter(request_query, "source", &source) && |
| + !GetQueryParameter(request.content, "source", &source)) { |
| LOG(ERROR) << "Missing 'source' param in /OAuthLogin call"; |
| return; |
| } |
| @@ -366,7 +397,10 @@ void FakeGaia::HandleOAuthLogin(const HttpRequest& request, |
| http_response->set_code(net::HTTP_OK); |
| // Issue GAIA uber token. |
| } else { |
| - LOG(FATAL) << "/OAuthLogin for SID/LSID is not supported"; |
| + http_response->set_content(base::StringPrintf( |
| + "SID=%s\nLSID=%s\nAuth=%s", |
| + kTestOAuthLoginSID, kTestOAuthLoginLSID, kTestOAuthLoginAuthCode)); |
| + http_response->set_code(net::HTTP_OK); |
| } |
| } |
| @@ -394,6 +428,8 @@ void FakeGaia::HandleServiceLoginAuth(const HttpRequest& request, |
| http_response->set_code(net::HTTP_TEMPORARY_REDIRECT); |
| http_response->AddCustomHeader("Location", redirect_url); |
| + http_response->AddCustomHeader("google-accounts-signin", |
| + base::StringPrintf("email=\"%s\", sessionindex=0", email.c_str())); |
| } |
| void FakeGaia::HandleSSO(const HttpRequest& request, |
| @@ -526,8 +562,17 @@ void FakeGaia::HandleIssueToken(const HttpRequest& request, |
| } |
| void FakeGaia::HandleListAccounts(const HttpRequest& request, |
| - BasicHttpResponse* http_response) { |
| + BasicHttpResponse* http_response) { |
| http_response->set_content(base::StringPrintf( |
| kListAccountsResponseFormat, merge_session_params_.email.c_str())); |
| http_response->set_code(net::HTTP_OK); |
| } |
| + |
| +void FakeGaia::HandleGetUserInfo(const HttpRequest& request, |
| + BasicHttpResponse* http_response) { |
| + http_response->set_content(base::StringPrintf( |
| + "email=%s\ndisplayEmail=%s", |
| + merge_session_params_.email.c_str(), |
| + merge_session_params_.email.c_str())); |
| + http_response->set_code(net::HTTP_OK); |
| +} |