Chromium Code Reviews| 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 #ifndef GOOGLE_APIS_GAIA_FAKE_GAIA_H_ | 5 #ifndef GOOGLE_APIS_GAIA_FAKE_GAIA_H_ |
| 6 #define GOOGLE_APIS_GAIA_FAKE_GAIA_H_ | 6 #define GOOGLE_APIS_GAIA_FAKE_GAIA_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 class HttpResponse; | 25 class HttpResponse; |
| 26 } | 26 } |
| 27 } | 27 } |
| 28 | 28 |
| 29 // This is a test helper that implements a fake GAIA service for use in browser | 29 // This is a test helper that implements a fake GAIA service for use in browser |
| 30 // tests. It's mainly intended for use with EmbeddedTestServer, for which it can | 30 // tests. It's mainly intended for use with EmbeddedTestServer, for which it can |
| 31 // be registered as an additional request handler. | 31 // be registered as an additional request handler. |
| 32 class FakeGaia { | 32 class FakeGaia { |
| 33 public: | 33 public: |
| 34 typedef std::set<std::string> ScopeSet; | 34 typedef std::set<std::string> ScopeSet; |
| 35 typedef std::map<std::string, std::string> RefreshTokenToDeviceIdMap; | |
|
achuithb
2015/05/28 00:18:57
Perhaps replace both typedefs with using?
dzhioev (left Google)
2015/05/28 02:21:42
Done.
| |
| 35 | 36 |
| 36 // Access token details used for token minting and the token info endpoint. | 37 // Access token details used for token minting and the token info endpoint. |
| 37 struct AccessTokenInfo { | 38 struct AccessTokenInfo { |
| 38 AccessTokenInfo(); | 39 AccessTokenInfo(); |
| 39 ~AccessTokenInfo(); | 40 ~AccessTokenInfo(); |
| 40 | 41 |
| 41 std::string token; | 42 std::string token; |
| 42 std::string issued_to; | 43 std::string issued_to; |
| 43 std::string audience; | 44 std::string audience; |
| 44 std::string user_id; | 45 std::string user_id; |
| 45 ScopeSet scopes; | 46 ScopeSet scopes; |
| 46 int expires_in; | 47 int expires_in; |
| 47 std::string email; | 48 std::string email; |
| 48 }; | 49 }; |
| 49 | 50 |
| 50 // Cookies and tokens for /MergeSession call seqeunce. | 51 // Cookies and tokens for /MergeSession call seqeunce. |
| 51 struct MergeSessionParams { | 52 struct MergeSessionParams { |
| 52 MergeSessionParams(); | 53 MergeSessionParams(); |
| 53 ~MergeSessionParams(); | 54 ~MergeSessionParams(); |
| 54 | 55 |
| 56 // Updates params with non-empty values from |update|. | |
| 57 void Update(const MergeSessionParams& update); | |
|
achuithb
2015/05/28 00:18:57
call args params for consistency?
dzhioev (left Google)
2015/05/28 02:21:42
Done.
| |
| 58 | |
| 55 // Values of SID and LSID cookie that are set by /ServiceLoginAuth or its | 59 // Values of SID and LSID cookie that are set by /ServiceLoginAuth or its |
| 56 // equivalent at the end of the SAML login flow. | 60 // equivalent at the end of the SAML login flow. |
| 57 std::string auth_sid_cookie; | 61 std::string auth_sid_cookie; |
| 58 std::string auth_lsid_cookie; | 62 std::string auth_lsid_cookie; |
| 59 | 63 |
| 60 // auth_code cookie value response for /o/oauth2/programmatic_auth call. | 64 // auth_code cookie value response for /o/oauth2/programmatic_auth call. |
| 61 std::string auth_code; | 65 std::string auth_code; |
| 62 | 66 |
| 63 // OAuth2 refresh and access token generated by /o/oauth2/token call | 67 // OAuth2 refresh and access token generated by /o/oauth2/token call |
| 64 // with "...&grant_type=authorization_code". | 68 // with "...&grant_type=authorization_code". |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 79 FakeGaia(); | 83 FakeGaia(); |
| 80 virtual ~FakeGaia(); | 84 virtual ~FakeGaia(); |
| 81 | 85 |
| 82 void SetFakeMergeSessionParams(const std::string& email, | 86 void SetFakeMergeSessionParams(const std::string& email, |
| 83 const std::string& auth_sid_cookie, | 87 const std::string& auth_sid_cookie, |
| 84 const std::string& auth_lsid_cookie); | 88 const std::string& auth_lsid_cookie); |
| 85 | 89 |
| 86 // Sets the initial value of tokens and cookies. | 90 // Sets the initial value of tokens and cookies. |
| 87 void SetMergeSessionParams(const MergeSessionParams& params); | 91 void SetMergeSessionParams(const MergeSessionParams& params); |
| 88 | 92 |
| 93 // Updates various params with non-empty values from |update|. | |
|
achuithb
2015/05/28 00:18:57
|params|
dzhioev (left Google)
2015/05/28 02:21:42
Done.
| |
| 94 void UpdateMergeSessionParams(const MergeSessionParams& params); | |
| 95 | |
| 89 // Sets the specified |gaia_id| as corresponding to the given |email| | 96 // Sets the specified |gaia_id| as corresponding to the given |email| |
| 90 // address when setting GAIA response headers. If no mapping is given for | 97 // address when setting GAIA response headers. If no mapping is given for |
| 91 // an email address, a default GAIA Id is used. | 98 // an email address, a default GAIA Id is used. |
| 92 void MapEmailToGaiaId(const std::string& email, const std::string& gaia_id); | 99 void MapEmailToGaiaId(const std::string& email, const std::string& gaia_id); |
| 93 | 100 |
| 94 // Initializes HTTP request handlers. Should be called after switches | 101 // Initializes HTTP request handlers. Should be called after switches |
| 95 // for tweaking GaiaUrls are in place. | 102 // for tweaking GaiaUrls are in place. |
| 96 void Initialize(); | 103 void Initialize(); |
| 97 | 104 |
| 98 // Handles a request and returns a response if the request was recognized as a | 105 // Handles a request and returns a response if the request was recognized as a |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 115 | 122 |
| 116 void set_issue_oauth_code_cookie(bool value) { | 123 void set_issue_oauth_code_cookie(bool value) { |
| 117 issue_oauth_code_cookie_ = value; | 124 issue_oauth_code_cookie_ = value; |
| 118 } | 125 } |
| 119 | 126 |
| 120 // Extracts the parameter named |key| from |query| and places it in |value|. | 127 // Extracts the parameter named |key| from |query| and places it in |value|. |
| 121 // Returns false if no parameter is found. | 128 // Returns false if no parameter is found. |
| 122 static bool GetQueryParameter(const std::string& query, | 129 static bool GetQueryParameter(const std::string& query, |
| 123 const std::string& key, | 130 const std::string& key, |
| 124 std::string* value); | 131 std::string* value); |
| 132 | |
| 133 // Returns a device ID associated with a given refresh token. | |
|
achuithb
2015/05/28 00:18:57
|refresh_token|
dzhioev (left Google)
2015/05/28 02:21:42
Done.
| |
| 134 std::string GetDeviceIdByRefreshToken(const std::string& refresh_token) const; | |
| 135 | |
| 136 void SetRefreshTokenToDeviceIdMap( | |
| 137 const RefreshTokenToDeviceIdMap& refresh_token_to_device_id_map); | |
| 138 | |
| 139 const RefreshTokenToDeviceIdMap& refresh_token_to_device_id_map() const { | |
| 140 return refresh_token_to_device_id_map_; | |
| 141 } | |
| 142 | |
| 125 protected: | 143 protected: |
| 126 // HTTP handler for /MergeSession. | 144 // HTTP handler for /MergeSession. |
| 127 virtual void HandleMergeSession( | 145 virtual void HandleMergeSession( |
| 128 const net::test_server::HttpRequest& request, | 146 const net::test_server::HttpRequest& request, |
| 129 net::test_server::BasicHttpResponse* http_response); | 147 net::test_server::BasicHttpResponse* http_response); |
| 130 | 148 |
| 131 private: | 149 private: |
| 132 typedef std::multimap<std::string, AccessTokenInfo> AccessTokenInfoMap; | 150 typedef std::multimap<std::string, AccessTokenInfo> AccessTokenInfoMap; |
| 133 typedef std::map<std::string, std::string> EmailToGaiaIdMap; | 151 typedef std::map<std::string, std::string> EmailToGaiaIdMap; |
| 134 typedef std::map<std::string, GURL> SamlAccountIdpMap; | 152 typedef std::map<std::string, GURL> SamlAccountIdpMap; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 203 const std::string& access_token) const; | 221 const std::string& access_token) const; |
| 204 | 222 |
| 205 MergeSessionParams merge_session_params_; | 223 MergeSessionParams merge_session_params_; |
| 206 EmailToGaiaIdMap email_to_gaia_id_map_; | 224 EmailToGaiaIdMap email_to_gaia_id_map_; |
| 207 AccessTokenInfoMap access_token_info_map_; | 225 AccessTokenInfoMap access_token_info_map_; |
| 208 RequestHandlerMap request_handlers_; | 226 RequestHandlerMap request_handlers_; |
| 209 std::string service_login_response_; | 227 std::string service_login_response_; |
| 210 std::string embedded_setup_chromeos_response_; | 228 std::string embedded_setup_chromeos_response_; |
| 211 SamlAccountIdpMap saml_account_idp_map_; | 229 SamlAccountIdpMap saml_account_idp_map_; |
| 212 bool issue_oauth_code_cookie_; | 230 bool issue_oauth_code_cookie_; |
| 231 RefreshTokenToDeviceIdMap refresh_token_to_device_id_map_; | |
| 213 | 232 |
| 214 DISALLOW_COPY_AND_ASSIGN(FakeGaia); | 233 DISALLOW_COPY_AND_ASSIGN(FakeGaia); |
| 215 }; | 234 }; |
| 216 | 235 |
| 217 #endif // GOOGLE_APIS_GAIA_FAKE_GAIA_H_ | 236 #endif // GOOGLE_APIS_GAIA_FAKE_GAIA_H_ |
| OLD | NEW |