summaryrefslogtreecommitdiffstats
path: root/google_apis
diff options
context:
space:
mode:
authorfgorski <fgorski@chromium.org>2014-09-24 16:40:17 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-24 23:46:24 +0000
commitd578c18be6220adb21d8e1261c9196cc27c4a879 (patch)
tree0c23376ecd4755e7b0a784053677b69e2d93738c /google_apis
parent9e2bd7aff70c6ead6e8d66bc370bf61dea076a56 (diff)
downloadchromium_src-d578c18be6220adb21d8e1261c9196cc27c4a879.zip
chromium_src-d578c18be6220adb21d8e1261c9196cc27c4a879.tar.gz
chromium_src-d578c18be6220adb21d8e1261c9196cc27c4a879.tar.bz2
Loading the account mappings from store to the driver.
This is to make sure the starting list of account mapping properly reflects the mappings present in the previous Chrome session. BUG=374969 Review URL: https://codereview.chromium.org/600053002 Cr-Commit-Position: refs/heads/master@{#296567}
Diffstat (limited to 'google_apis')
-rw-r--r--google_apis/gcm/engine/gcm_store.h6
-rw-r--r--google_apis/gcm/engine/gcm_store_impl.cc6
-rw-r--r--google_apis/gcm/engine/gcm_store_impl_unittest.cc41
3 files changed, 25 insertions, 28 deletions
diff --git a/google_apis/gcm/engine/gcm_store.h b/google_apis/gcm/engine/gcm_store.h
index 2b35549..9a1d8d8 100644
--- a/google_apis/gcm/engine/gcm_store.h
+++ b/google_apis/gcm/engine/gcm_store.h
@@ -34,8 +34,8 @@ class GCM_EXPORT GCMStore {
typedef std::map<std::string, linked_ptr<google::protobuf::MessageLite> >
OutgoingMessageMap;
- // Map of account id to account info for account mappings.
- typedef std::map<std::string, AccountMapping> AccountMappingMap;
+ // List of account mappings.
+ typedef std::vector<AccountMapping> AccountMappings;
// Container for Load(..) results.
struct GCM_EXPORT LoadResult {
@@ -54,7 +54,7 @@ class GCM_EXPORT GCMStore {
std::string gservices_digest;
base::Time last_checkin_time;
std::set<std::string> last_checkin_accounts;
- AccountMappingMap account_mappings;
+ AccountMappings account_mappings;
};
typedef std::vector<std::string> PersistentIdList;
diff --git a/google_apis/gcm/engine/gcm_store_impl.cc b/google_apis/gcm/engine/gcm_store_impl.cc
index fe761ce..64683ed 100644
--- a/google_apis/gcm/engine/gcm_store_impl.cc
+++ b/google_apis/gcm/engine/gcm_store_impl.cc
@@ -179,7 +179,7 @@ class GCMStoreImpl::Backend
std::set<std::string>* accounts);
bool LoadGServicesSettings(std::map<std::string, std::string>* settings,
std::string* digest);
- bool LoadAccountMappingInfo(AccountMappingMap* account_mappings);
+ bool LoadAccountMappingInfo(AccountMappings* account_mappings);
const base::FilePath path_;
scoped_refptr<base::SequencedTaskRunner> foreground_task_runner_;
@@ -792,7 +792,7 @@ bool GCMStoreImpl::Backend::LoadGServicesSettings(
}
bool GCMStoreImpl::Backend::LoadAccountMappingInfo(
- AccountMappingMap* account_mappings) {
+ AccountMappings* account_mappings) {
leveldb::ReadOptions read_options;
read_options.verify_checksums = true;
@@ -808,7 +808,7 @@ bool GCMStoreImpl::Backend::LoadAccountMappingInfo(
return false;
}
DVLOG(1) << "Found account mapping with ID: " << account_mapping.account_id;
- (*account_mappings)[account_mapping.account_id] = account_mapping;
+ account_mappings->push_back(account_mapping);
}
return true;
diff --git a/google_apis/gcm/engine/gcm_store_impl_unittest.cc b/google_apis/gcm/engine/gcm_store_impl_unittest.cc
index 81b5bbf..939ef80 100644
--- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc
+++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc
@@ -558,25 +558,23 @@ TEST_F(GCMStoreImplTest, AccountMapping) {
PumpLoop();
EXPECT_EQ(2UL, load_result->account_mappings.size());
- GCMStore::AccountMappingMap::iterator iter =
+ GCMStore::AccountMappings::iterator iter =
load_result->account_mappings.begin();
- EXPECT_EQ("account_id_1", iter->first);
- EXPECT_EQ(account_mapping1.account_id, iter->second.account_id);
- EXPECT_EQ(account_mapping1.email, iter->second.email);
- EXPECT_TRUE(iter->second.access_token.empty());
- EXPECT_EQ(AccountMapping::ADDING, iter->second.status);
+ EXPECT_EQ(account_mapping1.account_id, iter->account_id);
+ EXPECT_EQ(account_mapping1.email, iter->email);
+ EXPECT_TRUE(iter->access_token.empty());
+ EXPECT_EQ(AccountMapping::ADDING, iter->status);
EXPECT_EQ(account_mapping1.status_change_timestamp,
- iter->second.status_change_timestamp);
- EXPECT_EQ(account_mapping1.last_message_id, iter->second.last_message_id);
+ iter->status_change_timestamp);
+ EXPECT_EQ(account_mapping1.last_message_id, iter->last_message_id);
++iter;
- EXPECT_EQ("account_id_2", iter->first);
- EXPECT_EQ(account_mapping2.account_id, iter->second.account_id);
- EXPECT_EQ(account_mapping2.email, iter->second.email);
- EXPECT_TRUE(iter->second.access_token.empty());
- EXPECT_EQ(AccountMapping::REMOVING, iter->second.status);
+ EXPECT_EQ(account_mapping2.account_id, iter->account_id);
+ EXPECT_EQ(account_mapping2.email, iter->email);
+ EXPECT_TRUE(iter->access_token.empty());
+ EXPECT_EQ(AccountMapping::REMOVING, iter->status);
EXPECT_EQ(account_mapping2.status_change_timestamp,
- iter->second.status_change_timestamp);
- EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id);
+ iter->status_change_timestamp);
+ EXPECT_EQ(account_mapping2.last_message_id, iter->last_message_id);
gcm_store->RemoveAccountMapping(
account_mapping1.account_id,
@@ -590,14 +588,13 @@ TEST_F(GCMStoreImplTest, AccountMapping) {
EXPECT_EQ(1UL, load_result->account_mappings.size());
iter = load_result->account_mappings.begin();
- EXPECT_EQ("account_id_2", iter->first);
- EXPECT_EQ(account_mapping2.account_id, iter->second.account_id);
- EXPECT_EQ(account_mapping2.email, iter->second.email);
- EXPECT_TRUE(iter->second.access_token.empty());
- EXPECT_EQ(AccountMapping::REMOVING, iter->second.status);
+ EXPECT_EQ(account_mapping2.account_id, iter->account_id);
+ EXPECT_EQ(account_mapping2.email, iter->email);
+ EXPECT_TRUE(iter->access_token.empty());
+ EXPECT_EQ(AccountMapping::REMOVING, iter->status);
EXPECT_EQ(account_mapping2.status_change_timestamp,
- iter->second.status_change_timestamp);
- EXPECT_EQ(account_mapping2.last_message_id, iter->second.last_message_id);
+ iter->status_change_timestamp);
+ EXPECT_EQ(account_mapping2.last_message_id, iter->last_message_id);
}
// When the database is destroyed, all database updates should fail. At the