| Index: chrome/test/sync/engine/mock_gaia_authenticator.h
|
| ===================================================================
|
| --- chrome/test/sync/engine/mock_gaia_authenticator.h (revision 0)
|
| +++ chrome/test/sync/engine/mock_gaia_authenticator.h (revision 0)
|
| @@ -0,0 +1,145 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Use MockGaiaAuthenticator to test your application by faking a login session.
|
| +// This mock object should be initialized with the response you expect it to
|
| +// return for multiple users, and then can be used in exactly the same way
|
| +// as the real GaiaAuthenticator.
|
| +//
|
| +// Sample usage:
|
| +// MockGaiaAuthenticator mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
|
| +// "any random string");
|
| +// mock_gaia_auth.AddMockUser("email", "password", "authtoken", "lsid", "sid",
|
| +// AuthenticationError);
|
| +// mock_gaia_auth.AddMockUser("email2", "password2", "authtoken2", "lsid2",
|
| +// "sid2", AuthenticationError, error_url,
|
| +// "captcha_token", "captcha_url");
|
| +// if (gaia_auth.Authenticate("email", "passwd")) {
|
| +// // Do something with: gaia_auth.auth_token(), or gaia_auth.sid(),
|
| +// // or gaia_auth.lsid()
|
| +// }
|
| +
|
| +#ifndef CHROME_TEST_SYNC_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_
|
| +#define CHROME_TEST_SYNC_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_
|
| +
|
| +#include <map>
|
| +#include <string>
|
| +
|
| +#include "base/port.h"
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "chrome/browser/sync/engine/net/gaia_authenticator.h"
|
| +
|
| +namespace browser_sync {
|
| +
|
| +// A struct used internally for storing a user's credentials. You can either
|
| +// create one yourself, or use the convenience methods to have the
|
| +// MockGaiaAuthenticator create one for you.
|
| +typedef struct {
|
| + std::string email;
|
| + std::string passwd;
|
| + std::string auth_token;
|
| + std::string sid;
|
| + std::string lsid;
|
| + AuthenticationError auth_error;
|
| + std::string captcha_token;
|
| + std::string captcha_url;
|
| + std::string error_url;
|
| +} MockUser;
|
| +
|
| +// MockGaiaAuthenticator can be used to fake Gaia authentication without
|
| +// actually making a network connection. For details about the methods shared
|
| +// with GaiaAuthenticator, see GaiaAuthenticator in gaia_auth.h. Only methods
|
| +// that are unique to MockGaiaAuthenticator are documented in this file.
|
| +class MockGaiaAuthenticator {
|
| + public:
|
| + MockGaiaAuthenticator(const char* user_agent, const char* service_id,
|
| + const char* gaia_url);
|
| +
|
| + // Add a mock user; takes a struct. You can populate any or all fields when
|
| + // adding a user. The email field is required, all others optional.
|
| + void AddMockUser(MockUser mock_user);
|
| +
|
| + // A convenience method that makes it easy to create new mock users in a
|
| + // single method call. Includes all parameters.
|
| + void AddMockUser(std::string email, std::string passwd,
|
| + std::string auth_token,
|
| + std::string lsid, std::string sid,
|
| + AuthenticationError auth_error,
|
| + std::string error_url, std::string captcha_token,
|
| + std::string captcha_url);
|
| +
|
| + // A convenience method that makes it easy to create new mock users in a
|
| + // single method call. Includes only the most common parameters. See overload
|
| + // if you want to pass all parameters.
|
| + void AddMockUser(std::string email, std::string passwd,
|
| + std::string auth_token,
|
| + std::string lsid, std::string sid,
|
| + enum AuthenticationError auth_error);
|
| +
|
| + // Removes a mock user from the current list of added users.
|
| + void RemoveMockUser(const char* email);
|
| +
|
| + // Removes all mock users from the current list of added users.
|
| + void RemoveAllMockUsers();
|
| +
|
| + // See GaiaAuthenticator::Authenticate()
|
| + bool Authenticate();
|
| +
|
| + // See GaiaAuthenticator::Authenticate(...)
|
| + bool Authenticate(const char* user_name, const char* password,
|
| + bool should_save_credentials = false);
|
| +
|
| + // See GaiaAuthenticator::Authenticate(...)
|
| + void ResetCredentials();
|
| +
|
| + // Accessors follow.
|
| + std::string email() {
|
| + return (current_user_.length() == 0 || !should_save_credentials_) ? "" :
|
| + mock_credentials_[current_user_].email;
|
| + }
|
| +
|
| + std::string auth_token() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].auth_token;
|
| + }
|
| +
|
| + std::string sid() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].sid;
|
| + }
|
| +
|
| + std::string lsid() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].lsid;
|
| + }
|
| +
|
| + AuthenticationError auth_error() {
|
| + return (current_user_.length() == 0) ? CredentialsNotSet :
|
| + mock_credentials_[current_user_].auth_error;
|
| + }
|
| +
|
| + std::string auth_error_url() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].error_url;
|
| + }
|
| +
|
| + std::string captcha_token() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].captcha_token;
|
| + }
|
| +
|
| + std::string captcha_url() {
|
| + return (current_user_.length() == 0) ? "" :
|
| + mock_credentials_[current_user_].captcha_url;
|
| + }
|
| +
|
| + private:
|
| + bool should_save_credentials_;
|
| + std::map<std::string, MockUser> mock_credentials_;
|
| + std::string current_user_;
|
| +};
|
| +} // namespace browser_sync
|
| +
|
| +#endif // CHROME_TEST_SYNC_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_
|
|
|
| Property changes on: chrome\test\sync\engine\mock_gaia_authenticator.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|