| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/managed_mode/managed_user_settings_service.h" | 10 #include "chrome/browser/managed_mode/managed_user_settings_service.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 virtual ~ManagedUserSettingsServiceTest() {} | 60 virtual ~ManagedUserSettingsServiceTest() {} |
| 61 | 61 |
| 62 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { | 62 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { |
| 63 sync_processor_.reset(new syncer::FakeSyncChangeProcessor); | 63 sync_processor_.reset(new syncer::FakeSyncChangeProcessor); |
| 64 return scoped_ptr<syncer::SyncChangeProcessor>( | 64 return scoped_ptr<syncer::SyncChangeProcessor>( |
| 65 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 65 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
| 66 } | 66 } |
| 67 | 67 |
| 68 void StartSyncing(const syncer::SyncDataList& initial_sync_data) { | 68 void StartSyncing(const syncer::SyncDataList& initial_sync_data) { |
| 69 scoped_ptr<syncer::SyncErrorFactory> error_handler( | 69 scoped_ptr<syncer::SyncErrorFactory> error_handler( |
| 70 new MockSyncErrorFactory(syncer::MANAGED_USER_SETTINGS)); | 70 new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS)); |
| 71 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( | 71 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( |
| 72 syncer::MANAGED_USER_SETTINGS, | 72 syncer::SUPERVISED_USER_SETTINGS, |
| 73 initial_sync_data, | 73 initial_sync_data, |
| 74 CreateSyncProcessor(), | 74 CreateSyncProcessor(), |
| 75 error_handler.Pass()); | 75 error_handler.Pass()); |
| 76 EXPECT_FALSE(result.error().IsSet()); | 76 EXPECT_FALSE(result.error().IsSet()); |
| 77 } | 77 } |
| 78 | 78 |
| 79 void UploadSplitItem(const std::string& key, const std::string& value) { | 79 void UploadSplitItem(const std::string& key, const std::string& value) { |
| 80 split_items_.SetStringWithoutPathExpansion(key, value); | 80 split_items_.SetStringWithoutPathExpansion(key, value); |
| 81 settings_service_.UploadItem( | 81 settings_service_.UploadItem( |
| 82 ManagedUserSettingsService::MakeSplitSettingKey(kSplitItemName, | 82 ManagedUserSettingsService::MakeSplitSettingKey(kSplitItemName, |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 sync_processor_->changes().begin(); | 225 sync_processor_->changes().begin(); |
| 226 it != sync_processor_->changes().end(); | 226 it != sync_processor_->changes().end(); |
| 227 ++it) { | 227 ++it) { |
| 228 ASSERT_TRUE(it->IsValid()); | 228 ASSERT_TRUE(it->IsValid()); |
| 229 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, it->change_type()); | 229 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, it->change_type()); |
| 230 VerifySyncDataItem(it->sync_data()); | 230 VerifySyncDataItem(it->sync_data()); |
| 231 } | 231 } |
| 232 | 232 |
| 233 // It should also show up in local Sync data. | 233 // It should also show up in local Sync data. |
| 234 syncer::SyncDataList sync_data = | 234 syncer::SyncDataList sync_data = |
| 235 settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); | 235 settings_service_.GetAllSyncData(syncer::SUPERVISED_USER_SETTINGS); |
| 236 EXPECT_EQ(3u, sync_data.size()); | 236 EXPECT_EQ(3u, sync_data.size()); |
| 237 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 237 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); |
| 238 it != sync_data.end(); ++it) { | 238 it != sync_data.end(); ++it) { |
| 239 VerifySyncDataItem(*it); | 239 VerifySyncDataItem(*it); |
| 240 } | 240 } |
| 241 | 241 |
| 242 // Uploading after we have started syncing should work too. | 242 // Uploading after we have started syncing should work too. |
| 243 sync_processor_->changes().clear(); | 243 sync_processor_->changes().clear(); |
| 244 UploadSplitItem("froodle", "narf"); | 244 UploadSplitItem("froodle", "narf"); |
| 245 ASSERT_EQ(1u, sync_processor_->changes().size()); | 245 ASSERT_EQ(1u, sync_processor_->changes().size()); |
| 246 syncer::SyncChange change = sync_processor_->changes()[0]; | 246 syncer::SyncChange change = sync_processor_->changes()[0]; |
| 247 ASSERT_TRUE(change.IsValid()); | 247 ASSERT_TRUE(change.IsValid()); |
| 248 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); | 248 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); |
| 249 VerifySyncDataItem(change.sync_data()); | 249 VerifySyncDataItem(change.sync_data()); |
| 250 | 250 |
| 251 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); | 251 sync_data = settings_service_.GetAllSyncData( |
| 252 syncer::SUPERVISED_USER_SETTINGS); |
| 252 EXPECT_EQ(4u, sync_data.size()); | 253 EXPECT_EQ(4u, sync_data.size()); |
| 253 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 254 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); |
| 254 it != sync_data.end(); ++it) { | 255 it != sync_data.end(); ++it) { |
| 255 VerifySyncDataItem(*it); | 256 VerifySyncDataItem(*it); |
| 256 } | 257 } |
| 257 | 258 |
| 258 // Uploading an item with a previously seen key should create an UPDATE | 259 // Uploading an item with a previously seen key should create an UPDATE |
| 259 // action. | 260 // action. |
| 260 sync_processor_->changes().clear(); | 261 sync_processor_->changes().clear(); |
| 261 UploadSplitItem("blurp", "snarl"); | 262 UploadSplitItem("blurp", "snarl"); |
| 262 ASSERT_EQ(1u, sync_processor_->changes().size()); | 263 ASSERT_EQ(1u, sync_processor_->changes().size()); |
| 263 change = sync_processor_->changes()[0]; | 264 change = sync_processor_->changes()[0]; |
| 264 ASSERT_TRUE(change.IsValid()); | 265 ASSERT_TRUE(change.IsValid()); |
| 265 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); | 266 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); |
| 266 VerifySyncDataItem(change.sync_data()); | 267 VerifySyncDataItem(change.sync_data()); |
| 267 | 268 |
| 268 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); | 269 sync_data = settings_service_.GetAllSyncData( |
| 270 syncer::SUPERVISED_USER_SETTINGS); |
| 269 EXPECT_EQ(4u, sync_data.size()); | 271 EXPECT_EQ(4u, sync_data.size()); |
| 270 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 272 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); |
| 271 it != sync_data.end(); ++it) { | 273 it != sync_data.end(); ++it) { |
| 272 VerifySyncDataItem(*it); | 274 VerifySyncDataItem(*it); |
| 273 } | 275 } |
| 274 | 276 |
| 275 sync_processor_->changes().clear(); | 277 sync_processor_->changes().clear(); |
| 276 UploadAtomicItem("fjord"); | 278 UploadAtomicItem("fjord"); |
| 277 ASSERT_EQ(1u, sync_processor_->changes().size()); | 279 ASSERT_EQ(1u, sync_processor_->changes().size()); |
| 278 change = sync_processor_->changes()[0]; | 280 change = sync_processor_->changes()[0]; |
| 279 ASSERT_TRUE(change.IsValid()); | 281 ASSERT_TRUE(change.IsValid()); |
| 280 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); | 282 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); |
| 281 VerifySyncDataItem(change.sync_data()); | 283 VerifySyncDataItem(change.sync_data()); |
| 282 | 284 |
| 283 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); | 285 sync_data = settings_service_.GetAllSyncData( |
| 286 syncer::SUPERVISED_USER_SETTINGS); |
| 284 EXPECT_EQ(4u, sync_data.size()); | 287 EXPECT_EQ(4u, sync_data.size()); |
| 285 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); | 288 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); |
| 286 it != sync_data.end(); ++it) { | 289 it != sync_data.end(); ++it) { |
| 287 VerifySyncDataItem(*it); | 290 VerifySyncDataItem(*it); |
| 288 } | 291 } |
| 289 | 292 |
| 290 // The uploaded items should not show up as settings. | 293 // The uploaded items should not show up as settings. |
| 291 const base::Value* value = NULL; | 294 const base::Value* value = NULL; |
| 292 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); | 295 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); |
| 293 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); | 296 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); |
| 294 | 297 |
| 295 // Restarting sync should not create any new changes. | 298 // Restarting sync should not create any new changes. |
| 296 settings_service_.StopSyncing(syncer::MANAGED_USER_SETTINGS); | 299 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); |
| 297 StartSyncing(sync_data); | 300 StartSyncing(sync_data); |
| 298 ASSERT_EQ(0u, sync_processor_->changes().size()); | 301 ASSERT_EQ(0u, sync_processor_->changes().size()); |
| 299 } | 302 } |
| OLD | NEW |