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

Side by Side Diff: google_apis/gaia/fake_gaia.cc

Issue 134483008: Switch GAIA e-mail address retrieval from /GetUserInfo to /ListAccounts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « google_apis/gaia/fake_gaia.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "google_apis/gaia/fake_gaia.h" 5 #include "google_apis/gaia/fake_gaia.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 29 matching lines...) Expand all
40 40
41 namespace { 41 namespace {
42 42
43 const base::FilePath::CharType kServiceLogin[] = 43 const base::FilePath::CharType kServiceLogin[] =
44 FILE_PATH_LITERAL("google_apis/test/service_login.html"); 44 FILE_PATH_LITERAL("google_apis/test/service_login.html");
45 45
46 // OAuth2 Authentication header value prefix. 46 // OAuth2 Authentication header value prefix.
47 const char kAuthHeaderBearer[] = "Bearer "; 47 const char kAuthHeaderBearer[] = "Bearer ";
48 const char kAuthHeaderOAuth[] = "OAuth "; 48 const char kAuthHeaderOAuth[] = "OAuth ";
49 49
50 const char kListAccountsResponseFormat[] =
51 "[\"gaia.l.a.r\",[[\"gaia.l.a\",1,\"\",\"%s\",\"\",1,1,0]]]";
52
50 typedef std::map<std::string, std::string> CookieMap; 53 typedef std::map<std::string, std::string> CookieMap;
51 54
52 // Parses cookie name-value map our of |request|. 55 // Parses cookie name-value map our of |request|.
53 CookieMap GetRequestCookies(const HttpRequest& request) { 56 CookieMap GetRequestCookies(const HttpRequest& request) {
54 CookieMap result; 57 CookieMap result;
55 std::map<std::string, std::string>::const_iterator iter = 58 std::map<std::string, std::string>::const_iterator iter =
56 request.headers.find("Cookie"); 59 request.headers.find("Cookie");
57 if (iter != request.headers.end()) { 60 if (iter != request.headers.end()) {
58 std::vector<std::string> cookie_nv_pairs; 61 std::vector<std::string> cookie_nv_pairs;
59 base::SplitString(iter->second, ' ', &cookie_nv_pairs); 62 base::SplitString(iter->second, ' ', &cookie_nv_pairs);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 gaia_urls->oauth2_token_url(), HandleAuthToken); 165 gaia_urls->oauth2_token_url(), HandleAuthToken);
163 166
164 // Handles /oauth2/v2/tokeninfo GAIA call. 167 // Handles /oauth2/v2/tokeninfo GAIA call.
165 REGISTER_RESPONSE_HANDLER( 168 REGISTER_RESPONSE_HANDLER(
166 gaia_urls->oauth2_token_info_url(), HandleTokenInfo); 169 gaia_urls->oauth2_token_info_url(), HandleTokenInfo);
167 170
168 // Handles /oauth2/v2/IssueToken GAIA call. 171 // Handles /oauth2/v2/IssueToken GAIA call.
169 REGISTER_RESPONSE_HANDLER( 172 REGISTER_RESPONSE_HANDLER(
170 gaia_urls->oauth2_issue_token_url(), HandleIssueToken); 173 gaia_urls->oauth2_issue_token_url(), HandleIssueToken);
171 174
172 // Handles /GetUserInfo GAIA call. 175 // Handles /ListAccounts GAIA call.
173 REGISTER_RESPONSE_HANDLER( 176 REGISTER_RESPONSE_HANDLER(
174 gaia_urls->get_user_info_url(), HandleGetUserInfo); 177 gaia_urls->list_accounts_url(), HandleListAccounts);
175 } 178 }
176 179
177 scoped_ptr<HttpResponse> FakeGaia::HandleRequest(const HttpRequest& request) { 180 scoped_ptr<HttpResponse> FakeGaia::HandleRequest(const HttpRequest& request) {
178 // The scheme and host of the URL is actually not important but required to 181 // The scheme and host of the URL is actually not important but required to
179 // get a valid GURL in order to parse |request.relative_url|. 182 // get a valid GURL in order to parse |request.relative_url|.
180 GURL request_url = GURL("http://localhost").Resolve(request.relative_url); 183 GURL request_url = GURL("http://localhost").Resolve(request.relative_url);
181 std::string request_path = request_url.path(); 184 std::string request_path = request_url.path();
182 scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse()); 185 scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse());
183 RequestHandlerMap::iterator iter = request_handlers_.find(request_path); 186 RequestHandlerMap::iterator iter = request_handlers_.find(request_path);
184 if (iter != request_handlers_.end()) { 187 if (iter != request_handlers_.end()) {
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 response_dict.SetString("issueAdvice", "auto"); 515 response_dict.SetString("issueAdvice", "auto");
513 response_dict.SetString("expiresIn", 516 response_dict.SetString("expiresIn",
514 base::IntToString(token_info->expires_in)); 517 base::IntToString(token_info->expires_in));
515 response_dict.SetString("token", token_info->token); 518 response_dict.SetString("token", token_info->token);
516 FormatJSONResponse(response_dict, http_response); 519 FormatJSONResponse(response_dict, http_response);
517 } else { 520 } else {
518 http_response->set_code(net::HTTP_BAD_REQUEST); 521 http_response->set_code(net::HTTP_BAD_REQUEST);
519 } 522 }
520 } 523 }
521 524
522 void FakeGaia::HandleGetUserInfo(const HttpRequest& request, 525 void FakeGaia::HandleListAccounts(const HttpRequest& request,
523 BasicHttpResponse* http_response) { 526 BasicHttpResponse* http_response) {
524 std::string lsid;
525 if (!GetQueryParameter(request.content, "LSID", &lsid)) {
526 http_response->set_code(net::HTTP_BAD_REQUEST);
527 LOG(ERROR) << "/GetUserInfo missing LSID";
528 return;
529 }
530 if (lsid != merge_session_params_.auth_lsid_cookie) {
531 http_response->set_code(net::HTTP_BAD_REQUEST);
532 LOG(ERROR) << "/GetUserInfo contains unknown LSID";
533 return;
534 }
535 http_response->set_content(base::StringPrintf( 527 http_response->set_content(base::StringPrintf(
536 "email=%s", merge_session_params_.email.c_str())); 528 kListAccountsResponseFormat, merge_session_params_.email.c_str()));
537 http_response->set_code(net::HTTP_OK); 529 http_response->set_code(net::HTTP_OK);
538 } 530 }
OLDNEW
« no previous file with comments | « google_apis/gaia/fake_gaia.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698