Index: chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc |
=================================================================== |
--- chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc (revision 96549) |
+++ chrome/common/net/gaia/gaia_auth_fetcher_unittest.cc (working copy) |
@@ -21,6 +21,7 @@ |
#include "content/common/url_fetcher.h" |
#include "content/test/test_url_fetcher_factory.h" |
#include "googleurl/src/gurl.h" |
+#include "net/base/load_flags.h" |
#include "net/base/net_errors.h" |
#include "net/url_request/url_request_status.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -67,7 +68,8 @@ |
: client_login_source_(GaiaUrls::GetInstance()->client_login_url()), |
issue_auth_token_source_( |
GaiaUrls::GetInstance()->issue_auth_token_url()), |
- token_auth_source_(GaiaUrls::GetInstance()->token_auth_url()) {} |
+ token_auth_source_(GaiaUrls::GetInstance()->token_auth_url()), |
+ merge_session_source_(GaiaUrls::GetInstance()->merge_session_url()) {} |
void RunParsingTest(const std::string& data, |
const std::string& sid, |
@@ -111,6 +113,7 @@ |
GURL client_login_source_; |
GURL issue_auth_token_source_; |
GURL token_auth_source_; |
+ GURL merge_session_source_; |
TestingProfile profile_; |
protected: |
MessageLoop message_loop_; |
@@ -125,11 +128,14 @@ |
MOCK_METHOD2(OnIssueAuthTokenSuccess, void(const std::string& service, |
const std::string& token)); |
MOCK_METHOD1(OnTokenAuthSuccess, void(const std::string& data)); |
+ MOCK_METHOD1(OnMergeSessionSuccess, void(const std::string& data)); |
MOCK_METHOD1(OnClientLoginFailure, |
void(const GoogleServiceAuthError& error)); |
MOCK_METHOD2(OnIssueAuthTokenFailure, void(const std::string& service, |
const GoogleServiceAuthError& error)); |
MOCK_METHOD1(OnTokenAuthFailure, void(const GoogleServiceAuthError& error)); |
+ MOCK_METHOD1(OnMergeSessionFailure, void( |
+ const GoogleServiceAuthError& error)); |
}; |
TEST_F(GaiaAuthFetcherTest, ErrorComparator) { |
@@ -592,3 +598,58 @@ |
""); |
EXPECT_FALSE(auth.HasPendingFetch()); |
} |
+ |
+TEST_F(GaiaAuthFetcherTest, MergeSessionSuccess) { |
+ MockGaiaConsumer consumer; |
+ EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) |
+ .Times(1); |
+ |
+ TestingProfile profile; |
+ TestURLFetcherFactory factory; |
+ |
+ GaiaAuthFetcher auth(&consumer, std::string(), |
+ profile_.GetRequestContext()); |
+ auth.StartMergeSession("myubertoken"); |
+ |
+ EXPECT_TRUE(auth.HasPendingFetch()); |
+ auth.OnURLFetchComplete( |
+ NULL, |
+ merge_session_source_, |
+ net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
+ RC_REQUEST_OK, |
+ cookies_, |
+ "<html></html>"); |
+ EXPECT_FALSE(auth.HasPendingFetch()); |
+} |
+ |
+TEST_F(GaiaAuthFetcherTest, MergeSessionSuccessRedirect) { |
+ MockGaiaConsumer consumer; |
+ EXPECT_CALL(consumer, OnMergeSessionSuccess("<html></html>")) |
+ .Times(1); |
+ |
+ TestingProfile profile; |
+ TestURLFetcherFactory factory; |
+ |
+ GaiaAuthFetcher auth(&consumer, std::string(), |
+ profile_.GetRequestContext()); |
+ auth.StartMergeSession("myubertoken"); |
+ |
+ // Make sure the fetcher created has the expected flags. Set its url() |
+ // properties to reflect a redirect. |
+ TestURLFetcher* test_fetcher = factory.GetFetcherByID(0); |
+ EXPECT_TRUE(test_fetcher != NULL); |
+ EXPECT_TRUE(test_fetcher->load_flags() == net::LOAD_NORMAL); |
+ EXPECT_TRUE(auth.HasPendingFetch()); |
+ |
+ GURL final_url("http://www.google.com/CheckCookie"); |
+ test_fetcher->set_url(final_url); |
+ |
+ auth.OnURLFetchComplete( |
+ test_fetcher, |
+ test_fetcher->url(), |
+ net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0), |
+ RC_REQUEST_OK, |
+ cookies_, |
+ "<html></html>"); |
+ EXPECT_FALSE(auth.HasPendingFetch()); |
+} |