| Index: chrome/test/sync/engine/mock_gaia_authenticator.cc
|
| ===================================================================
|
| --- chrome/test/sync/engine/mock_gaia_authenticator.cc (revision 0)
|
| +++ chrome/test/sync/engine/mock_gaia_authenticator.cc (revision 0)
|
| @@ -0,0 +1,107 @@
|
| +// 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, and then can be used in exactly the same way as the real
|
| +// GaiaAuthenticator.
|
| +
|
| +#include "chrome/test/sync/engine/mock_gaia_authenticator.h"
|
| +
|
| +using std::string;
|
| +
|
| +namespace browser_sync {
|
| +
|
| +MockGaiaAuthenticator::MockGaiaAuthenticator(const char* user_agent,
|
| + const char* service_id,
|
| + const char* gaia_url) :
|
| + current_user_(""), should_save_credentials_(false) {
|
| + // This discards user_agent, service_id, gaia_url since the mock object
|
| + // doesn't care about them.
|
| +}
|
| +
|
| +// Add a mock user to internal list of users.
|
| +void MockGaiaAuthenticator::AddMockUser(MockUser mock_user) {
|
| + mock_credentials_[mock_user.email] = mock_user;
|
| +}
|
| +
|
| +// A convenience method to add a mock user to internal list of users.
|
| +void MockGaiaAuthenticator::AddMockUser(string email, string passwd,
|
| + string auth_token, string lsid,
|
| + string sid, enum AuthenticationError
|
| + auth_error, string error_url,
|
| + string captcha_token,
|
| + string captcha_url) {
|
| + MockUser mock_user;
|
| + mock_user.email = email;
|
| + mock_user.passwd = passwd;
|
| + mock_user.auth_token = auth_token;
|
| + mock_user.lsid = lsid;
|
| + mock_user.sid = sid;
|
| + mock_user.auth_error = auth_error;
|
| + mock_user.error_url = error_url;
|
| + mock_user.captcha_token = captcha_token;
|
| + mock_user.captcha_url = captcha_url;
|
| + AddMockUser(mock_user);
|
| +}
|
| +
|
| +// A convenience method to add a mock user to internal list of users.
|
| +void MockGaiaAuthenticator::AddMockUser(string email, string passwd,
|
| + string auth_token, string lsid,
|
| + string sid, enum AuthenticationError
|
| + auth_error) {
|
| + MockUser mock_user;
|
| + mock_user.email = email;
|
| + mock_user.passwd = passwd;
|
| + mock_user.auth_token = auth_token;
|
| + mock_user.lsid = lsid;
|
| + mock_user.sid = sid;
|
| + mock_user.auth_error = auth_error;
|
| + AddMockUser(mock_user);
|
| +}
|
| +
|
| +void MockGaiaAuthenticator::RemoveMockUser(const char* email) {
|
| + mock_credentials_.erase(email);
|
| +}
|
| +
|
| +void MockGaiaAuthenticator::RemoveAllMockUsers() {
|
| + mock_credentials_.clear();
|
| +}
|
| +
|
| +bool MockGaiaAuthenticator::Authenticate() {
|
| + if (!should_save_credentials_) {
|
| + ResetCredentials();
|
| + return false;
|
| + }
|
| + return Authenticate(mock_credentials_[current_user_].email.c_str(),
|
| + mock_credentials_[current_user_].passwd.c_str(), true);
|
| +}
|
| +
|
| +bool MockGaiaAuthenticator::Authenticate(const char* email,
|
| + const char* passwd,
|
| + bool should_save_credentials) {
|
| + // Simply assign value to field; the value is read by the accessors when
|
| + // reading.
|
| + should_save_credentials_ = should_save_credentials;
|
| +
|
| + // Check if we already know about this mock user.
|
| + if (mock_credentials_.find(email) == mock_credentials_.end()) {
|
| + current_user_ = "";
|
| + return false;
|
| + }
|
| +
|
| + // If found, keep the current logged-in user available for token requests.
|
| + current_user_ = email;
|
| +
|
| + // Finding a user does not necessarily imply that the user was logged in OK.
|
| + // Therefore also check if the AuthenticationError is None.
|
| + return (mock_credentials_[current_user_].auth_error == None);
|
| +}
|
| +
|
| +// Remove any stored knowledge about the currently logged-in user, but keep
|
| +// details of mock users.
|
| +void MockGaiaAuthenticator::ResetCredentials() {
|
| + current_user_ = "";
|
| +}
|
| +} // namespace browser_sync
|
|
|
| Property changes on: chrome\test\sync\engine\mock_gaia_authenticator.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|