summaryrefslogtreecommitdiffstats
path: root/google_apis/gaia/fake_gaia.h
diff options
context:
space:
mode:
Diffstat (limited to 'google_apis/gaia/fake_gaia.h')
-rw-r--r--google_apis/gaia/fake_gaia.h64
1 files changed, 61 insertions, 3 deletions
diff --git a/google_apis/gaia/fake_gaia.h b/google_apis/gaia/fake_gaia.h
index 7e211ae..6052c2b 100644
--- a/google_apis/gaia/fake_gaia.h
+++ b/google_apis/gaia/fake_gaia.h
@@ -10,6 +10,7 @@
#include <string>
#include "base/basictypes.h"
+#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "url/gurl.h"
@@ -49,6 +50,18 @@ class FakeGaia {
FakeGaia();
~FakeGaia();
+ // Sets the initial value of tokens and cookies.
+ void SetAuthTokens(const std::string& auth_code,
+ const std::string& refresh_token,
+ const std::string& access_token,
+ const std::string& gaia_uber_token,
+ const std::string& session_sid_cookie,
+ const std::string& session_lsid_cookie);
+
+ // Initializes HTTP request handlers. Should be called after switches
+ // for tweaking GaiaUrls are in place.
+ void Initialize();
+
// Handles a request and returns a response if the request was recognized as a
// GAIA request. Note that this respects the switches::kGaiaUrl and friends so
// that this can used with EmbeddedTestServer::RegisterRequestHandler().
@@ -81,16 +94,61 @@ class FakeGaia {
void FormatJSONResponse(const base::DictionaryValue& response_dict,
net::test_server::BasicHttpResponse* http_response);
+ typedef base::Callback<void(
+ const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response)>
+ HttpRequestHandlerCallback;
+ typedef std::map<std::string, HttpRequestHandlerCallback> RequestHandlerMap;
+
+ // HTTP request handlers.
+ void HandleProgramaticAuth(
+ const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleServiceLogin(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleOAuthLogin(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleSSO(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleMergeSession(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleServiceLoginAuth(
+ const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleAuthToken(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleTokenInfo(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+ void HandleIssueToken(const net::test_server::HttpRequest& request,
+ net::test_server::BasicHttpResponse* http_response);
+
// Returns the access token associated with |auth_token| that matches the
// given |client_id| and |scope_string|. If |scope_string| is empty, the first
// token satisfying the other criteria is returned. Returns NULL if no token
// matches.
- const AccessTokenInfo* GetAccessTokenInfo(const std::string& auth_token,
- const std::string& client_id,
- const std::string& scope_string)
+ const AccessTokenInfo* FindAccessTokenInfo(const std::string& auth_token,
+ const std::string& client_id,
+ const std::string& scope_string)
const;
+ // Extracts the |access_token| from authorization header of |request|.
+ static bool GetAccessToken(const net::test_server::HttpRequest& request,
+ const char* auth_token_prefix,
+ std::string* access_token);
+
+ // auth_code cookie value response for /o/oauth2/programmatic_auth call.
+ std::string fake_auth_code_;
+
+ // refresh_token field value response for the initial /o/oauth2/token call
+ // with ...&grant_type=authorization_code.
+ std::string fake_refresh_token_;
+ std::string fake_access_token_;
+ std::string fake_gaia_uber_token_;
+ std::string fake_session_sid_cookie_;
+ std::string fake_session_lsid_cookie_;
+
AccessTokenInfoMap access_token_info_map_;
+ RequestHandlerMap request_handlers_;
std::string service_login_response_;
SamlAccountIdpMap saml_account_idp_map_;