| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 // | |
| 5 // Use MockGaiaAuthenticator to test your application by faking a login session. | |
| 6 // This mock object should be initialized with the response you expect it to | |
| 7 // return for multiple users, and then can be used in exactly the same way | |
| 8 // as the real GaiaAuthenticator. | |
| 9 // | |
| 10 // Sample usage: | |
| 11 // MockGaiaAuthenticator mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME, | |
| 12 // "any random string"); | |
| 13 // mock_gaia_auth.AddMockUser("email", "password", "authtoken", "lsid", "sid", | |
| 14 // AuthenticationError); | |
| 15 // mock_gaia_auth.AddMockUser("email2", "password2", "authtoken2", "lsid2", | |
| 16 // "sid2", AuthenticationError, error_url, | |
| 17 // "captcha_token", "captcha_url"); | |
| 18 // if (gaia_auth.Authenticate("email", "passwd")) { | |
| 19 // // Do something with: gaia_auth.auth_token(), or gaia_auth.sid(), | |
| 20 // // or gaia_auth.lsid() | |
| 21 // } | |
| 22 | |
| 23 #ifndef CHROME_BROWSER_SYNC_TEST_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_ | |
| 24 #define CHROME_BROWSER_SYNC_TEST_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_ | |
| 25 #pragma once | |
| 26 | |
| 27 #include <map> | |
| 28 #include <string> | |
| 29 | |
| 30 #include "base/port.h" | |
| 31 | |
| 32 #include "base/basictypes.h" | |
| 33 #include "chrome/common/net/gaia/gaia_authenticator.h" | |
| 34 | |
| 35 namespace browser_sync { | |
| 36 | |
| 37 // A struct used internally for storing a user's credentials. You can either | |
| 38 // create one yourself, or use the convenience methods to have the | |
| 39 // MockGaiaAuthenticator create one for you. | |
| 40 typedef struct { | |
| 41 std::string email; | |
| 42 std::string passwd; | |
| 43 std::string auth_token; | |
| 44 std::string sid; | |
| 45 std::string lsid; | |
| 46 gaia::AuthenticationError auth_error; | |
| 47 std::string captcha_token; | |
| 48 std::string captcha_url; | |
| 49 std::string error_url; | |
| 50 } MockUser; | |
| 51 | |
| 52 // MockGaiaAuthenticator can be used to fake Gaia authentication without | |
| 53 // actually making a network connection. For details about the methods shared | |
| 54 // with GaiaAuthenticator, see GaiaAuthenticator in gaia_auth.h. Only methods | |
| 55 // that are unique to MockGaiaAuthenticator are documented in this file. | |
| 56 class MockGaiaAuthenticator { | |
| 57 public: | |
| 58 MockGaiaAuthenticator(const char* user_agent, const char* service_id, | |
| 59 const char* gaia_url); | |
| 60 ~MockGaiaAuthenticator(); | |
| 61 | |
| 62 // Add a mock user; takes a struct. You can populate any or all fields when | |
| 63 // adding a user. The email field is required, all others optional. | |
| 64 void AddMockUser(MockUser mock_user); | |
| 65 | |
| 66 // A convenience method that makes it easy to create new mock users in a | |
| 67 // single method call. Includes all parameters. | |
| 68 void AddMockUser(std::string email, std::string passwd, | |
| 69 std::string auth_token, | |
| 70 std::string lsid, std::string sid, | |
| 71 gaia::AuthenticationError auth_error, | |
| 72 std::string error_url, std::string captcha_token, | |
| 73 std::string captcha_url); | |
| 74 | |
| 75 // A convenience method that makes it easy to create new mock users in a | |
| 76 // single method call. Includes only the most common parameters. See overload | |
| 77 // if you want to pass all parameters. | |
| 78 void AddMockUser(std::string email, std::string passwd, | |
| 79 std::string auth_token, | |
| 80 std::string lsid, std::string sid, | |
| 81 enum gaia::AuthenticationError auth_error); | |
| 82 | |
| 83 // Removes a mock user from the current list of added users. | |
| 84 void RemoveMockUser(const char* email); | |
| 85 | |
| 86 // Removes all mock users from the current list of added users. | |
| 87 void RemoveAllMockUsers(); | |
| 88 | |
| 89 // See GaiaAuthenticator::Authenticate() | |
| 90 bool Authenticate(); | |
| 91 | |
| 92 // See GaiaAuthenticator::Authenticate(...) | |
| 93 bool Authenticate(const char* user_name, const char* password, | |
| 94 bool should_save_credentials = false); | |
| 95 | |
| 96 // See GaiaAuthenticator::Authenticate(...) | |
| 97 void ResetCredentials(); | |
| 98 | |
| 99 // Accessors follow. | |
| 100 std::string email(); | |
| 101 std::string auth_token(); | |
| 102 std::string sid(); | |
| 103 std::string lsid(); | |
| 104 gaia::AuthenticationError auth_error(); | |
| 105 std::string auth_error_url(); | |
| 106 std::string captcha_token(); | |
| 107 std::string captcha_url(); | |
| 108 | |
| 109 private: | |
| 110 bool should_save_credentials_; | |
| 111 std::map<std::string, MockUser> mock_credentials_; | |
| 112 std::string current_user_; | |
| 113 }; | |
| 114 | |
| 115 } // namespace browser_sync | |
| 116 | |
| 117 #endif // CHROME_BROWSER_SYNC_TEST_ENGINE_MOCK_GAIA_AUTHENTICATOR_H_ | |
| OLD | NEW |