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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/prefs/testing_pref_store.h" | 8 #include "base/prefs/testing_pref_store.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" | 10 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 } | 214 } |
215 | 215 |
216 TEST_F(SupervisedUserSettingsServiceTest, UploadItem) { | 216 TEST_F(SupervisedUserSettingsServiceTest, UploadItem) { |
217 UploadSplitItem("foo", "bar"); | 217 UploadSplitItem("foo", "bar"); |
218 UploadSplitItem("blurp", "baz"); | 218 UploadSplitItem("blurp", "baz"); |
219 UploadAtomicItem("hurdle"); | 219 UploadAtomicItem("hurdle"); |
220 | 220 |
221 // Uploading should produce changes when we start syncing. | 221 // Uploading should produce changes when we start syncing. |
222 StartSyncing(syncer::SyncDataList()); | 222 StartSyncing(syncer::SyncDataList()); |
223 ASSERT_EQ(3u, sync_processor_->changes().size()); | 223 ASSERT_EQ(3u, sync_processor_->changes().size()); |
224 for (syncer::SyncChangeList::const_iterator it = | 224 for (const syncer::SyncChange& sync_change : sync_processor_->changes()) { |
225 sync_processor_->changes().begin(); | 225 ASSERT_TRUE(sync_change.IsValid()); |
226 it != sync_processor_->changes().end(); | 226 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, sync_change.change_type()); |
227 ++it) { | 227 VerifySyncDataItem(sync_change.sync_data()); |
228 ASSERT_TRUE(it->IsValid()); | |
229 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, it->change_type()); | |
230 VerifySyncDataItem(it->sync_data()); | |
231 } | 228 } |
232 | 229 |
233 // It should also show up in local Sync data. | 230 // It should also show up in local Sync data. |
234 syncer::SyncDataList sync_data = | 231 syncer::SyncDataList sync_data = |
235 settings_service_.GetAllSyncData(syncer::SUPERVISED_USER_SETTINGS); | 232 settings_service_.GetAllSyncData(syncer::SUPERVISED_USER_SETTINGS); |
236 EXPECT_EQ(3u, sync_data.size()); | 233 EXPECT_EQ(3u, sync_data.size()); |
237 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 234 for (const syncer::SyncData& sync_data_item : sync_data) |
238 it != sync_data.end(); ++it) { | 235 VerifySyncDataItem(sync_data_item); |
239 VerifySyncDataItem(*it); | |
240 } | |
241 | 236 |
242 // Uploading after we have started syncing should work too. | 237 // Uploading after we have started syncing should work too. |
243 sync_processor_->changes().clear(); | 238 sync_processor_->changes().clear(); |
244 UploadSplitItem("froodle", "narf"); | 239 UploadSplitItem("froodle", "narf"); |
245 ASSERT_EQ(1u, sync_processor_->changes().size()); | 240 ASSERT_EQ(1u, sync_processor_->changes().size()); |
246 syncer::SyncChange change = sync_processor_->changes()[0]; | 241 syncer::SyncChange change = sync_processor_->changes()[0]; |
247 ASSERT_TRUE(change.IsValid()); | 242 ASSERT_TRUE(change.IsValid()); |
248 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); | 243 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); |
249 VerifySyncDataItem(change.sync_data()); | 244 VerifySyncDataItem(change.sync_data()); |
250 | 245 |
251 sync_data = settings_service_.GetAllSyncData( | 246 sync_data = settings_service_.GetAllSyncData( |
252 syncer::SUPERVISED_USER_SETTINGS); | 247 syncer::SUPERVISED_USER_SETTINGS); |
253 EXPECT_EQ(4u, sync_data.size()); | 248 EXPECT_EQ(4u, sync_data.size()); |
254 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 249 for (const syncer::SyncData& sync_data_item : sync_data) |
255 it != sync_data.end(); ++it) { | 250 VerifySyncDataItem(sync_data_item); |
256 VerifySyncDataItem(*it); | |
257 } | |
258 | 251 |
259 // Uploading an item with a previously seen key should create an UPDATE | 252 // Uploading an item with a previously seen key should create an UPDATE |
260 // action. | 253 // action. |
261 sync_processor_->changes().clear(); | 254 sync_processor_->changes().clear(); |
262 UploadSplitItem("blurp", "snarl"); | 255 UploadSplitItem("blurp", "snarl"); |
263 ASSERT_EQ(1u, sync_processor_->changes().size()); | 256 ASSERT_EQ(1u, sync_processor_->changes().size()); |
264 change = sync_processor_->changes()[0]; | 257 change = sync_processor_->changes()[0]; |
265 ASSERT_TRUE(change.IsValid()); | 258 ASSERT_TRUE(change.IsValid()); |
266 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); | 259 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); |
267 VerifySyncDataItem(change.sync_data()); | 260 VerifySyncDataItem(change.sync_data()); |
268 | 261 |
269 sync_data = settings_service_.GetAllSyncData( | 262 sync_data = settings_service_.GetAllSyncData( |
270 syncer::SUPERVISED_USER_SETTINGS); | 263 syncer::SUPERVISED_USER_SETTINGS); |
271 EXPECT_EQ(4u, sync_data.size()); | 264 EXPECT_EQ(4u, sync_data.size()); |
272 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 265 for (const syncer::SyncData& sync_data_item : sync_data) |
273 it != sync_data.end(); ++it) { | 266 VerifySyncDataItem(sync_data_item); |
274 VerifySyncDataItem(*it); | |
275 } | |
276 | 267 |
277 sync_processor_->changes().clear(); | 268 sync_processor_->changes().clear(); |
278 UploadAtomicItem("fjord"); | 269 UploadAtomicItem("fjord"); |
279 ASSERT_EQ(1u, sync_processor_->changes().size()); | 270 ASSERT_EQ(1u, sync_processor_->changes().size()); |
280 change = sync_processor_->changes()[0]; | 271 change = sync_processor_->changes()[0]; |
281 ASSERT_TRUE(change.IsValid()); | 272 ASSERT_TRUE(change.IsValid()); |
282 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); | 273 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); |
283 VerifySyncDataItem(change.sync_data()); | 274 VerifySyncDataItem(change.sync_data()); |
284 | 275 |
285 sync_data = settings_service_.GetAllSyncData( | 276 sync_data = settings_service_.GetAllSyncData( |
286 syncer::SUPERVISED_USER_SETTINGS); | 277 syncer::SUPERVISED_USER_SETTINGS); |
287 EXPECT_EQ(4u, sync_data.size()); | 278 EXPECT_EQ(4u, sync_data.size()); |
288 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 279 for (const syncer::SyncData& sync_data_item : sync_data) |
289 it != sync_data.end(); ++it) { | 280 VerifySyncDataItem(sync_data_item); |
290 VerifySyncDataItem(*it); | |
291 } | |
292 | 281 |
293 // The uploaded items should not show up as settings. | 282 // The uploaded items should not show up as settings. |
294 const base::Value* value = NULL; | 283 const base::Value* value = NULL; |
295 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); | 284 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); |
296 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); | 285 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); |
297 | 286 |
298 // Restarting sync should not create any new changes. | 287 // Restarting sync should not create any new changes. |
299 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); | 288 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); |
300 StartSyncing(sync_data); | 289 StartSyncing(sync_data); |
301 ASSERT_EQ(0u, sync_processor_->changes().size()); | 290 ASSERT_EQ(0u, sync_processor_->changes().size()); |
302 } | 291 } |
OLD | NEW |