Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: chrome/browser/sync/backend_migrator_unittest.cc

Issue 10167017: Fix some migration-related bugs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review changes Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/backend_migrator.cc ('k') | chrome/browser/sync/profile_sync_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/sync/backend_migrator.h" 5 #include "chrome/browser/sync/backend_migrator.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/tracked_objects.h" 8 #include "base/tracked_objects.h"
9 #include "chrome/browser/sync/glue/data_type_manager_mock.h" 9 #include "chrome/browser/sync/glue/data_type_manager_mock.h"
10 #include "chrome/browser/sync/internal_api/write_transaction.h" 10 #include "chrome/browser/sync/internal_api/write_transaction.h"
(...skipping 29 matching lines...) Expand all
40 Mock::VerifyAndClear(&service_); 40 Mock::VerifyAndClear(&service_);
41 preferred_types_.Put(syncable::BOOKMARKS); 41 preferred_types_.Put(syncable::BOOKMARKS);
42 preferred_types_.Put(syncable::PREFERENCES); 42 preferred_types_.Put(syncable::PREFERENCES);
43 preferred_types_.Put(syncable::AUTOFILL); 43 preferred_types_.Put(syncable::AUTOFILL);
44 44
45 ON_CALL(service_, GetPreferredDataTypes()). 45 ON_CALL(service_, GetPreferredDataTypes()).
46 WillByDefault(Return(preferred_types_)); 46 WillByDefault(Return(preferred_types_));
47 47
48 migrator_.reset( 48 migrator_.reset(
49 new BackendMigrator( 49 new BackendMigrator(
50 "Profile0", test_user_share_.user_share(), service(), manager())); 50 "Profile0", test_user_share_.user_share(), service(), manager(),
51 base::Closure()));
51 SetUnsyncedTypes(syncable::ModelTypeSet()); 52 SetUnsyncedTypes(syncable::ModelTypeSet());
52 } 53 }
53 54
54 virtual void TearDown() { 55 virtual void TearDown() {
55 migrator_.reset(); 56 migrator_.reset();
56 test_user_share_.TearDown(); 57 test_user_share_.TearDown();
57 } 58 }
58 59
59 // Marks all types in |unsynced_types| as unsynced and all other 60 // Marks all types in |unsynced_types| as unsynced and all other
60 // types as synced. 61 // types as synced.
61 void SetUnsyncedTypes(syncable::ModelTypeSet unsynced_types) { 62 void SetUnsyncedTypes(syncable::ModelTypeSet unsynced_types) {
62 sync_api::WriteTransaction trans(FROM_HERE, 63 sync_api::WriteTransaction trans(FROM_HERE,
63 test_user_share_.user_share()); 64 test_user_share_.user_share());
64 for (int i = syncable::FIRST_REAL_MODEL_TYPE; 65 for (int i = syncable::FIRST_REAL_MODEL_TYPE;
65 i < syncable::MODEL_TYPE_COUNT; ++i) { 66 i < syncable::MODEL_TYPE_COUNT; ++i) {
66 syncable::ModelType type = syncable::ModelTypeFromInt(i); 67 syncable::ModelType type = syncable::ModelTypeFromInt(i);
67 sync_pb::DataTypeProgressMarker progress_marker; 68 sync_pb::DataTypeProgressMarker progress_marker;
68 if (!unsynced_types.Has(type)) { 69 if (!unsynced_types.Has(type)) {
69 progress_marker.set_token("dummy"); 70 progress_marker.set_token("dummy");
70 } 71 }
71 trans.GetDirectory()->SetDownloadProgress(type, progress_marker); 72 trans.GetDirectory()->SetDownloadProgress(type, progress_marker);
72 } 73 }
73 } 74 }
74 75
75 void SendConfigureDone(DataTypeManager::ConfigureStatus status, 76 void SendConfigureDone(DataTypeManager::ConfigureStatus status,
76 syncable::ModelTypeSet requested_types) { 77 syncable::ModelTypeSet requested_types) {
77 if (status == DataTypeManager::OK) { 78 if (status == DataTypeManager::OK) {
78 DataTypeManager::ConfigureResult result(status, requested_types); 79 DataTypeManager::ConfigureResult result(status, requested_types);
79 content::NotificationService::current()->Notify( 80 migrator_->OnConfigureDone(result);
80 chrome::NOTIFICATION_SYNC_CONFIGURE_DONE,
81 content::Source<DataTypeManager>(&manager_),
82 content::Details<const DataTypeManager::ConfigureResult>(&result));
83 } else { 81 } else {
84 std::list<SyncError> errors; 82 std::list<SyncError> errors;
85 DataTypeManager::ConfigureResult result( 83 DataTypeManager::ConfigureResult result(
86 status, 84 status,
87 requested_types, 85 requested_types,
88 errors); 86 errors);
89 content::NotificationService::current()->Notify( 87 migrator_->OnConfigureDone(result);
90 chrome::NOTIFICATION_SYNC_CONFIGURE_DONE,
91 content::Source<DataTypeManager>(&manager_),
92 content::Details<const DataTypeManager::ConfigureResult>(&result));
93 } 88 }
94 message_loop_.RunAllPending(); 89 message_loop_.RunAllPending();
95 } 90 }
96 91
97 ProfileSyncService* service() { return &service_; } 92 ProfileSyncService* service() { return &service_; }
98 DataTypeManagerMock* manager() { return &manager_; } 93 DataTypeManagerMock* manager() { return &manager_; }
99 syncable::ModelTypeSet preferred_types() { return preferred_types_; } 94 syncable::ModelTypeSet preferred_types() { return preferred_types_; }
100 BackendMigrator* migrator() { return migrator_.get(); } 95 BackendMigrator* migrator() { return migrator_.get(); }
101 void RemovePreferredType(syncable::ModelType type) { 96 void RemovePreferredType(syncable::ModelType type) {
102 preferred_types_.Remove(type); 97 preferred_types_.Remove(type);
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 .WillOnce(Return(DataTypeManager::CONFIGURED)); 314 .WillOnce(Return(DataTypeManager::CONFIGURED));
320 EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION)) 315 EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION))
321 .Times(1); 316 .Times(1);
322 migrator()->MigrateTypes(to_migrate); 317 migrator()->MigrateTypes(to_migrate);
323 SetUnsyncedTypes(syncable::ModelTypeSet()); 318 SetUnsyncedTypes(syncable::ModelTypeSet());
324 SendConfigureDone(DataTypeManager::ABORTED, syncable::ModelTypeSet()); 319 SendConfigureDone(DataTypeManager::ABORTED, syncable::ModelTypeSet());
325 EXPECT_EQ(BackendMigrator::IDLE, migrator()->state()); 320 EXPECT_EQ(BackendMigrator::IDLE, migrator()->state());
326 } 321 }
327 322
328 }; // namespace browser_sync 323 }; // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/backend_migrator.cc ('k') | chrome/browser/sync/profile_sync_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698