OLD | NEW |
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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 const char kAuthHeaderOAuth[] = "OAuth "; | 64 const char kAuthHeaderOAuth[] = "OAuth "; |
65 | 65 |
66 const char kListAccountsResponseFormat[] = | 66 const char kListAccountsResponseFormat[] = |
67 "[\"gaia.l.a.r\",[[\"gaia.l.a\",1,\"\",\"%s\",\"\",1,1,0,0,1,\"12345\"]]]"; | 67 "[\"gaia.l.a.r\",[[\"gaia.l.a\",1,\"\",\"%s\",\"\",1,1,0,0,1,\"12345\"]]]"; |
68 | 68 |
69 typedef std::map<std::string, std::string> CookieMap; | 69 typedef std::map<std::string, std::string> CookieMap; |
70 | 70 |
71 // Parses cookie name-value map our of |request|. | 71 // Parses cookie name-value map our of |request|. |
72 CookieMap GetRequestCookies(const HttpRequest& request) { | 72 CookieMap GetRequestCookies(const HttpRequest& request) { |
73 CookieMap result; | 73 CookieMap result; |
74 auto iter = request.headers.find("Cookie"); | 74 std::map<std::string, std::string>::const_iterator iter = |
| 75 request.headers.find("Cookie"); |
75 if (iter != request.headers.end()) { | 76 if (iter != request.headers.end()) { |
76 for (const std::string& cookie_line : | 77 std::vector<std::string> cookie_nv_pairs; |
77 base::SplitString(iter->second, " ", base::TRIM_WHITESPACE, | 78 base::SplitString(iter->second, ' ', &cookie_nv_pairs); |
78 base::SPLIT_WANT_ALL)) { | 79 for(std::vector<std::string>::const_iterator cookie_line = |
79 std::vector<std::string> name_value = base::SplitString( | 80 cookie_nv_pairs.begin(); |
80 cookie_line, "=", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 81 cookie_line != cookie_nv_pairs.end(); |
| 82 ++cookie_line) { |
| 83 std::vector<std::string> name_value; |
| 84 base::SplitString(*cookie_line, '=', &name_value); |
81 if (name_value.size() != 2) | 85 if (name_value.size() != 2) |
82 continue; | 86 continue; |
83 | 87 |
84 std::string value = name_value[1]; | 88 std::string value = name_value[1]; |
85 if (value.size() && value[value.size() - 1] == ';') | 89 if (value.size() && value[value.size() - 1] == ';') |
86 value = value.substr(0, value.size() -1); | 90 value = value.substr(0, value.size() -1); |
87 | 91 |
88 result.insert(std::make_pair(name_value[0], value)); | 92 result.insert(std::make_pair(name_value[0], value)); |
89 } | 93 } |
90 } | 94 } |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 http_response->set_code(net::HTTP_OK); | 434 http_response->set_code(net::HTTP_OK); |
431 } | 435 } |
432 | 436 |
433 const FakeGaia::AccessTokenInfo* FakeGaia::FindAccessTokenInfo( | 437 const FakeGaia::AccessTokenInfo* FakeGaia::FindAccessTokenInfo( |
434 const std::string& auth_token, | 438 const std::string& auth_token, |
435 const std::string& client_id, | 439 const std::string& client_id, |
436 const std::string& scope_string) const { | 440 const std::string& scope_string) const { |
437 if (auth_token.empty() || client_id.empty()) | 441 if (auth_token.empty() || client_id.empty()) |
438 return NULL; | 442 return NULL; |
439 | 443 |
440 std::vector<std::string> scope_list = base::SplitString( | 444 std::vector<std::string> scope_list; |
441 scope_string, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 445 base::SplitString(scope_string, ' ', &scope_list); |
442 ScopeSet scopes(scope_list.begin(), scope_list.end()); | 446 ScopeSet scopes(scope_list.begin(), scope_list.end()); |
443 | 447 |
444 for (AccessTokenInfoMap::const_iterator entry( | 448 for (AccessTokenInfoMap::const_iterator entry( |
445 access_token_info_map_.lower_bound(auth_token)); | 449 access_token_info_map_.lower_bound(auth_token)); |
446 entry != access_token_info_map_.upper_bound(auth_token); | 450 entry != access_token_info_map_.upper_bound(auth_token); |
447 ++entry) { | 451 ++entry) { |
448 if (entry->second.audience == client_id && | 452 if (entry->second.audience == client_id && |
449 (scope_string.empty() || entry->second.scopes == scopes)) { | 453 (scope_string.empty() || entry->second.scopes == scopes)) { |
450 return &(entry->second); | 454 return &(entry->second); |
451 } | 455 } |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 if (token_info) { | 769 if (token_info) { |
766 base::DictionaryValue response_dict; | 770 base::DictionaryValue response_dict; |
767 response_dict.SetString("id", GetGaiaIdOfEmail(token_info->email)); | 771 response_dict.SetString("id", GetGaiaIdOfEmail(token_info->email)); |
768 response_dict.SetString("email", token_info->email); | 772 response_dict.SetString("email", token_info->email); |
769 response_dict.SetString("verified_email", token_info->email); | 773 response_dict.SetString("verified_email", token_info->email); |
770 FormatJSONResponse(response_dict, http_response); | 774 FormatJSONResponse(response_dict, http_response); |
771 } else { | 775 } else { |
772 http_response->set_code(net::HTTP_BAD_REQUEST); | 776 http_response->set_code(net::HTTP_BAD_REQUEST); |
773 } | 777 } |
774 } | 778 } |
OLD | NEW |