| 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 auto& 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 auto& 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 auto& 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 auto& 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 auto& 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 |