| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "google_apis/gcm/engine/gcm_store_impl.h" | 5 #include "google_apis/gcm/engine/gcm_store_impl.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 101 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 102 scoped_ptr<GCMStore::LoadResult> load_result; | 102 scoped_ptr<GCMStore::LoadResult> load_result; |
| 103 gcm_store->Load(base::Bind( | 103 gcm_store->Load(base::Bind( |
| 104 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 104 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 105 PumpLoop(); | 105 PumpLoop(); |
| 106 | 106 |
| 107 EXPECT_EQ(0U, load_result->device_android_id); | 107 EXPECT_EQ(0U, load_result->device_android_id); |
| 108 EXPECT_EQ(0U, load_result->device_security_token); | 108 EXPECT_EQ(0U, load_result->device_security_token); |
| 109 EXPECT_TRUE(load_result->incoming_messages.empty()); | 109 EXPECT_TRUE(load_result->incoming_messages.empty()); |
| 110 EXPECT_TRUE(load_result->outgoing_messages.empty()); | 110 EXPECT_TRUE(load_result->outgoing_messages.empty()); |
| 111 EXPECT_TRUE(load_result->gservices_settings.empty()); |
| 112 EXPECT_EQ(base::Time::FromInternalValue(0LL), load_result->last_checkin_time); |
| 111 } | 113 } |
| 112 | 114 |
| 113 TEST_F(GCMStoreImplTest, DeviceCredentials) { | 115 TEST_F(GCMStoreImplTest, DeviceCredentials) { |
| 114 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 116 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 115 scoped_ptr<GCMStore::LoadResult> load_result; | 117 scoped_ptr<GCMStore::LoadResult> load_result; |
| 116 gcm_store->Load(base::Bind( | 118 gcm_store->Load(base::Bind( |
| 117 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 119 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 118 PumpLoop(); | 120 PumpLoop(); |
| 119 | 121 |
| 120 gcm_store->SetDeviceCredentials( | 122 gcm_store->SetDeviceCredentials( |
| 121 kDeviceId, | 123 kDeviceId, |
| 122 kDeviceToken, | 124 kDeviceToken, |
| 123 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); | 125 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 124 PumpLoop(); | 126 PumpLoop(); |
| 125 | 127 |
| 126 gcm_store = BuildGCMStore().Pass(); | 128 gcm_store = BuildGCMStore().Pass(); |
| 127 gcm_store->Load(base::Bind( | 129 gcm_store->Load(base::Bind( |
| 128 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 130 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 129 PumpLoop(); | 131 PumpLoop(); |
| 130 | 132 |
| 131 ASSERT_EQ(kDeviceId, load_result->device_android_id); | 133 ASSERT_EQ(kDeviceId, load_result->device_android_id); |
| 132 ASSERT_EQ(kDeviceToken, load_result->device_security_token); | 134 ASSERT_EQ(kDeviceToken, load_result->device_security_token); |
| 133 } | 135 } |
| 134 | 136 |
| 137 TEST_F(GCMStoreImplTest, GServicesSettings) { |
| 138 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 139 scoped_ptr<GCMStore::LoadResult> load_result; |
| 140 gcm_store->Load(base::Bind( |
| 141 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 142 PumpLoop(); |
| 143 |
| 144 std::vector<std::string> settings_to_remove; |
| 145 std::map<std::string, std::string> settings_to_add; |
| 146 settings_to_add["checkin_interval"] = "12345"; |
| 147 settings_to_add["mcs_port"] = "438"; |
| 148 settings_to_add["checkin_url"] = "http://checkin.google.com"; |
| 149 base::Time last_checkin_time = base::Time::Now(); |
| 150 |
| 151 std::map<std::string, std::string> expected_settings = settings_to_add; |
| 152 |
| 153 gcm_store->UpdateGServicesSettings( |
| 154 settings_to_remove, |
| 155 settings_to_add, |
| 156 last_checkin_time, |
| 157 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 158 PumpLoop(); |
| 159 |
| 160 gcm_store = BuildGCMStore().Pass(); |
| 161 gcm_store->Load(base::Bind( |
| 162 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 163 PumpLoop(); |
| 164 |
| 165 ASSERT_EQ(expected_settings, load_result->gservices_settings); |
| 166 ASSERT_EQ(last_checkin_time, load_result->last_checkin_time); |
| 167 |
| 168 // Remove some, and add some. |
| 169 settings_to_add.clear(); |
| 170 settings_to_add["checkin_interval"] = "54321"; |
| 171 settings_to_add["registration_url"] = "http://registration.google.com"; |
| 172 settings_to_remove.push_back("checkin_url"); |
| 173 expected_settings = settings_to_add; |
| 174 expected_settings["mcs_port"] = "438"; |
| 175 last_checkin_time = base::Time::Now(); |
| 176 |
| 177 gcm_store->UpdateGServicesSettings( |
| 178 settings_to_remove, |
| 179 settings_to_add, |
| 180 last_checkin_time, |
| 181 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 182 |
| 183 gcm_store = BuildGCMStore().Pass(); |
| 184 gcm_store->Load(base::Bind( |
| 185 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 186 PumpLoop(); |
| 187 |
| 188 ASSERT_EQ(expected_settings, load_result->gservices_settings); |
| 189 ASSERT_EQ(last_checkin_time, load_result->last_checkin_time); |
| 190 |
| 191 // Replace the complete set of settings with a new set. |
| 192 settings_to_add.clear(); |
| 193 settings_to_add["checkin_interval"] = "12345"; |
| 194 settings_to_add["checkin_url"] = "http://checkin.google.com"; |
| 195 settings_to_add["registration_url"] = "http://registration.google.com"; |
| 196 settings_to_remove.clear(); |
| 197 settings_to_remove.push_back("checkin_interval"); |
| 198 settings_to_remove.push_back("registration_url"); |
| 199 settings_to_remove.push_back("mcs_port"); |
| 200 expected_settings = settings_to_add; |
| 201 last_checkin_time = base::Time::Now(); |
| 202 |
| 203 gcm_store->UpdateGServicesSettings( |
| 204 settings_to_remove, |
| 205 settings_to_add, |
| 206 last_checkin_time, |
| 207 base::Bind(&GCMStoreImplTest::UpdateCallback, base::Unretained(this))); |
| 208 |
| 209 gcm_store = BuildGCMStore().Pass(); |
| 210 gcm_store->Load(base::Bind( |
| 211 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 212 PumpLoop(); |
| 213 |
| 214 ASSERT_EQ(expected_settings, load_result->gservices_settings); |
| 215 ASSERT_EQ(last_checkin_time, load_result->last_checkin_time); |
| 216 } |
| 217 |
| 135 TEST_F(GCMStoreImplTest, Registrations) { | 218 TEST_F(GCMStoreImplTest, Registrations) { |
| 136 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); | 219 scoped_ptr<GCMStore> gcm_store(BuildGCMStore()); |
| 137 scoped_ptr<GCMStore::LoadResult> load_result; | 220 scoped_ptr<GCMStore::LoadResult> load_result; |
| 138 gcm_store->Load(base::Bind( | 221 gcm_store->Load(base::Bind( |
| 139 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); | 222 &GCMStoreImplTest::LoadCallback, base::Unretained(this), &load_result)); |
| 140 PumpLoop(); | 223 PumpLoop(); |
| 141 | 224 |
| 142 // Add one registration with one sender. | 225 // Add one registration with one sender. |
| 143 linked_ptr<RegistrationInfo> registration1(new RegistrationInfo); | 226 linked_ptr<RegistrationInfo> registration1(new RegistrationInfo); |
| 144 registration1->sender_ids.push_back("sender1"); | 227 registration1->sender_ids.push_back("sender1"); |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 | 547 |
| 465 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, | 548 gcm_store->Load(base::Bind(&GCMStoreImplTest::LoadCallback, |
| 466 base::Unretained(this), | 549 base::Unretained(this), |
| 467 &load_result)); | 550 &load_result)); |
| 468 PumpLoop(); | 551 PumpLoop(); |
| 469 } | 552 } |
| 470 | 553 |
| 471 } // namespace | 554 } // namespace |
| 472 | 555 |
| 473 } // namespace gcm | 556 } // namespace gcm |
| OLD | NEW |