Index: components/gcm_driver/gcm_client_impl_unittest.cc |
diff --git a/components/gcm_driver/gcm_client_impl_unittest.cc b/components/gcm_driver/gcm_client_impl_unittest.cc |
index 62416c986f6860657cf483008ece5824d0cb3d4e..51b4c543b7d45d3d595e4211888af6f8274697e2 100644 |
--- a/components/gcm_driver/gcm_client_impl_unittest.cc |
+++ b/components/gcm_driver/gcm_client_impl_unittest.cc |
@@ -68,6 +68,24 @@ MCSMessage BuildDownstreamMessage( |
return MCSMessage(kDataMessageStanzaTag, data_message); |
} |
+GCMClient::AccountTokenInfo MakeAccountToken(const std::string& email, |
+ const std::string& token) { |
+ GCMClient::AccountTokenInfo account_token; |
+ account_token.email = email; |
+ account_token.access_token = token; |
+ return account_token; |
+} |
+ |
+std::map<std::string, std::string> MakeEmailToTokenMap( |
+ const std::vector<GCMClient::AccountTokenInfo>& account_tokens) { |
+ std::map<std::string, std::string> email_token_map; |
+ for (std::vector<GCMClient::AccountTokenInfo>::const_iterator iter = |
+ account_tokens.begin(); iter != account_tokens.end(); ++iter) { |
+ email_token_map[iter->email] = iter->access_token; |
+ } |
+ return email_token_map; |
+} |
+ |
class FakeMCSClient : public MCSClient { |
public: |
FakeMCSClient(base::Clock* clock, |
@@ -843,14 +861,15 @@ TEST_F(GCMClientImplCheckinTest, CheckinWithAccounts) { |
GServicesSettings::CalculateDigest(settings), |
settings); |
- std::map<std::string, std::string> account_tokens; |
- account_tokens["test_user1@gmail.com"] = "token1"; |
- account_tokens["test_user2@gmail.com"] = "token2"; |
- gcm_client()->SetAccountsForCheckin(account_tokens); |
+ std::vector<GCMClient::AccountTokenInfo> account_tokens; |
+ account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); |
+ account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); |
+ gcm_client()->SetAccountTokens(account_tokens); |
EXPECT_TRUE(device_checkin_info().last_checkin_accounts.empty()); |
EXPECT_TRUE(device_checkin_info().accounts_set); |
- EXPECT_EQ(account_tokens, device_checkin_info().account_tokens); |
+ EXPECT_EQ(MakeEmailToTokenMap(account_tokens), |
+ device_checkin_info().account_tokens); |
PumpLoopUntilIdle(); |
CompleteCheckin(kDeviceAndroidId, |
@@ -863,7 +882,8 @@ TEST_F(GCMClientImplCheckinTest, CheckinWithAccounts) { |
accounts.insert("test_user2@gmail.com"); |
EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); |
EXPECT_TRUE(device_checkin_info().accounts_set); |
- EXPECT_EQ(account_tokens, device_checkin_info().account_tokens); |
+ EXPECT_EQ(MakeEmailToTokenMap(account_tokens), |
+ device_checkin_info().account_tokens); |
} |
// This test only checks that periodic checkin happens. |
@@ -879,10 +899,10 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountRemoved) { |
GServicesSettings::CalculateDigest(settings), |
settings); |
- std::map<std::string, std::string> account_tokens; |
- account_tokens["test_user1@gmail.com"] = "token1"; |
- account_tokens["test_user2@gmail.com"] = "token2"; |
- gcm_client()->SetAccountsForCheckin(account_tokens); |
+ std::vector<GCMClient::AccountTokenInfo> account_tokens; |
+ account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); |
+ account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); |
+ gcm_client()->SetAccountTokens(account_tokens); |
PumpLoopUntilIdle(); |
CompleteCheckin(kDeviceAndroidId, |
kDeviceSecurityToken, |
@@ -891,10 +911,11 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountRemoved) { |
EXPECT_EQ(2UL, device_checkin_info().last_checkin_accounts.size()); |
EXPECT_TRUE(device_checkin_info().accounts_set); |
- EXPECT_EQ(account_tokens, device_checkin_info().account_tokens); |
+ EXPECT_EQ(MakeEmailToTokenMap(account_tokens), |
+ device_checkin_info().account_tokens); |
- account_tokens.erase(account_tokens.find("test_user2@gmail.com")); |
- gcm_client()->SetAccountsForCheckin(account_tokens); |
+ account_tokens.erase(account_tokens.begin() + 1); |
+ gcm_client()->SetAccountTokens(account_tokens); |
PumpLoopUntilIdle(); |
CompleteCheckin(kDeviceAndroidId, |
@@ -906,7 +927,8 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountRemoved) { |
accounts.insert("test_user1@gmail.com"); |
EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); |
EXPECT_TRUE(device_checkin_info().accounts_set); |
- EXPECT_EQ(account_tokens, device_checkin_info().account_tokens); |
+ EXPECT_EQ(MakeEmailToTokenMap(account_tokens), |
+ device_checkin_info().account_tokens); |
} |
// This test only checks that periodic checkin happens. |
@@ -922,9 +944,9 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountReplaced) { |
GServicesSettings::CalculateDigest(settings), |
settings); |
- std::map<std::string, std::string> account_tokens; |
- account_tokens["test_user1@gmail.com"] = "token1"; |
- gcm_client()->SetAccountsForCheckin(account_tokens); |
+ std::vector<GCMClient::AccountTokenInfo> account_tokens; |
+ account_tokens.push_back(MakeAccountToken("test_user1@gmail.com", "token1")); |
+ gcm_client()->SetAccountTokens(account_tokens); |
PumpLoopUntilIdle(); |
CompleteCheckin(kDeviceAndroidId, |
@@ -938,9 +960,9 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountReplaced) { |
// This should trigger another checkin, because the list of accounts is |
// different. |
- account_tokens.erase(account_tokens.find("test_user1@gmail.com")); |
- account_tokens["test_user2@gmail.com"] = "token2"; |
- gcm_client()->SetAccountsForCheckin(account_tokens); |
+ account_tokens.clear(); |
+ account_tokens.push_back(MakeAccountToken("test_user2@gmail.com", "token2")); |
+ gcm_client()->SetAccountTokens(account_tokens); |
PumpLoopUntilIdle(); |
CompleteCheckin(kDeviceAndroidId, |
@@ -952,7 +974,8 @@ TEST_F(GCMClientImplCheckinTest, CheckinWhenAccountReplaced) { |
accounts.insert("test_user2@gmail.com"); |
EXPECT_EQ(accounts, device_checkin_info().last_checkin_accounts); |
EXPECT_TRUE(device_checkin_info().accounts_set); |
- EXPECT_EQ(account_tokens, device_checkin_info().account_tokens); |
+ EXPECT_EQ(MakeEmailToTokenMap(account_tokens), |
+ device_checkin_info().account_tokens); |
} |
class GCMClientImplStartAndStopTest : public GCMClientImplTest { |