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

Side by Side Diff: chrome/browser/sync/internal_api/syncapi_unittest.cc

Issue 8851006: [Sync] Replace all instances of ModelTypeSet with ModelEnumSet (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleanup pass #2 Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Unit tests for the SyncApi. Note that a lot of the underlying 5 // Unit tests for the SyncApi. Note that a lot of the underlying
6 // functionality is provided by the Syncable layer, which has its own 6 // functionality is provided by the Syncable layer, which has its own
7 // unit tests. We'll test SyncApi specific things in this harness. 7 // unit tests. We'll test SyncApi specific things in this harness.
8 8
9 #include <cstddef> 9 #include <cstddef>
10 #include <map> 10 #include <map>
(...skipping 28 matching lines...) Expand all
39 #include "chrome/browser/sync/js/js_test_util.h" 39 #include "chrome/browser/sync/js/js_test_util.h"
40 #include "chrome/browser/sync/notifier/sync_notifier.h" 40 #include "chrome/browser/sync/notifier/sync_notifier.h"
41 #include "chrome/browser/sync/notifier/sync_notifier_observer.h" 41 #include "chrome/browser/sync/notifier/sync_notifier_observer.h"
42 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h" 42 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h"
43 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" 43 #include "chrome/browser/sync/protocol/extension_specifics.pb.h"
44 #include "chrome/browser/sync/protocol/password_specifics.pb.h" 44 #include "chrome/browser/sync/protocol/password_specifics.pb.h"
45 #include "chrome/browser/sync/protocol/proto_value_conversions.h" 45 #include "chrome/browser/sync/protocol/proto_value_conversions.h"
46 #include "chrome/browser/sync/protocol/sync.pb.h" 46 #include "chrome/browser/sync/protocol/sync.pb.h"
47 #include "chrome/browser/sync/sessions/sync_session.h" 47 #include "chrome/browser/sync/sessions/sync_session.h"
48 #include "chrome/browser/sync/syncable/directory_manager.h" 48 #include "chrome/browser/sync/syncable/directory_manager.h"
49 #include "chrome/browser/sync/syncable/model_type_test_util.h"
49 #include "chrome/browser/sync/syncable/syncable.h" 50 #include "chrome/browser/sync/syncable/syncable.h"
50 #include "chrome/browser/sync/syncable/syncable_id.h" 51 #include "chrome/browser/sync/syncable/syncable_id.h"
51 #include "chrome/browser/sync/test/engine/test_user_share.h" 52 #include "chrome/browser/sync/test/engine/test_user_share.h"
52 #include "chrome/browser/sync/util/cryptographer.h" 53 #include "chrome/browser/sync/util/cryptographer.h"
53 #include "chrome/browser/sync/util/time.h" 54 #include "chrome/browser/sync/util/time.h"
54 #include "chrome/test/base/values_test_util.h" 55 #include "chrome/test/base/values_test_util.h"
55 #include "content/test/test_browser_thread.h" 56 #include "content/test/test_browser_thread.h"
56 #include "testing/gmock/include/gmock/gmock.h" 57 #include "testing/gmock/include/gmock/gmock.h"
57 #include "testing/gtest/include/gtest/gtest.h" 58 #include "testing/gtest/include/gtest/gtest.h"
58 59
59 using browser_sync::Cryptographer; 60 using browser_sync::Cryptographer;
60 using browser_sync::HasArgsAsList; 61 using browser_sync::HasArgsAsList;
61 using browser_sync::HasDetailsAsDictionary; 62 using browser_sync::HasDetailsAsDictionary;
62 using browser_sync::KeyParams; 63 using browser_sync::KeyParams;
63 using browser_sync::JsArgList; 64 using browser_sync::JsArgList;
64 using browser_sync::JsBackend; 65 using browser_sync::JsBackend;
65 using browser_sync::JsEventHandler; 66 using browser_sync::JsEventHandler;
66 using browser_sync::JsReplyHandler; 67 using browser_sync::JsReplyHandler;
67 using browser_sync::MockJsEventHandler; 68 using browser_sync::MockJsEventHandler;
68 using browser_sync::MockJsReplyHandler; 69 using browser_sync::MockJsReplyHandler;
69 using browser_sync::ModelSafeRoutingInfo; 70 using browser_sync::ModelSafeRoutingInfo;
70 using browser_sync::ModelSafeWorker; 71 using browser_sync::ModelSafeWorker;
71 using browser_sync::ModelSafeWorkerRegistrar; 72 using browser_sync::ModelSafeWorkerRegistrar;
72 using browser_sync::sessions::SyncSessionSnapshot; 73 using browser_sync::sessions::SyncSessionSnapshot;
73 using browser_sync::WeakHandle; 74 using browser_sync::WeakHandle;
74 using content::BrowserThread; 75 using content::BrowserThread;
75 using syncable::GetAllRealModelTypes;
76 using syncable::kEncryptedString; 76 using syncable::kEncryptedString;
77 using syncable::ModelEnumSet;
77 using syncable::ModelType; 78 using syncable::ModelType;
78 using syncable::ModelTypeSet;
79 using test::ExpectDictStringValue; 79 using test::ExpectDictStringValue;
80 using testing::_; 80 using testing::_;
81 using testing::AnyNumber; 81 using testing::AnyNumber;
82 using testing::AtLeast; 82 using testing::AtLeast;
83 using testing::InSequence; 83 using testing::InSequence;
84 using testing::Invoke; 84 using testing::Invoke;
85 using testing::SaveArg; 85 using testing::SaveArg;
86 using testing::StrictMock; 86 using testing::StrictMock;
87 87
88 namespace sync_api { 88 namespace sync_api {
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 void(const WeakHandle<JsBackend>&, bool)); // NOLINT 625 void(const WeakHandle<JsBackend>&, bool)); // NOLINT
626 MOCK_METHOD1(OnAuthError, void(const GoogleServiceAuthError&)); // NOLINT 626 MOCK_METHOD1(OnAuthError, void(const GoogleServiceAuthError&)); // NOLINT
627 MOCK_METHOD1(OnPassphraseRequired, 627 MOCK_METHOD1(OnPassphraseRequired,
628 void(sync_api::PassphraseRequiredReason)); // NOLINT 628 void(sync_api::PassphraseRequiredReason)); // NOLINT
629 MOCK_METHOD1(OnPassphraseAccepted, void(const std::string&)); // NOLINT 629 MOCK_METHOD1(OnPassphraseAccepted, void(const std::string&)); // NOLINT
630 MOCK_METHOD0(OnStopSyncingPermanently, void()); // NOLINT 630 MOCK_METHOD0(OnStopSyncingPermanently, void()); // NOLINT
631 MOCK_METHOD1(OnUpdatedToken, void(const std::string&)); // NOLINT 631 MOCK_METHOD1(OnUpdatedToken, void(const std::string&)); // NOLINT
632 MOCK_METHOD0(OnClearServerDataFailed, void()); // NOLINT 632 MOCK_METHOD0(OnClearServerDataFailed, void()); // NOLINT
633 MOCK_METHOD0(OnClearServerDataSucceeded, void()); // NOLINT 633 MOCK_METHOD0(OnClearServerDataSucceeded, void()); // NOLINT
634 MOCK_METHOD2(OnEncryptedTypesChanged, 634 MOCK_METHOD2(OnEncryptedTypesChanged,
635 void(const ModelTypeSet&, bool)); // NOLINT 635 void(ModelEnumSet, bool)); // NOLINT
636 MOCK_METHOD0(OnEncryptionComplete, void()); // NOLINT 636 MOCK_METHOD0(OnEncryptionComplete, void()); // NOLINT
637 MOCK_METHOD1(OnActionableError, 637 MOCK_METHOD1(OnActionableError,
638 void(const browser_sync::SyncProtocolError&)); // NOLINT 638 void(const browser_sync::SyncProtocolError&)); // NOLINT
639 }; 639 };
640 640
641 class SyncNotifierMock : public sync_notifier::SyncNotifier { 641 class SyncNotifierMock : public sync_notifier::SyncNotifier {
642 public: 642 public:
643 MOCK_METHOD1(AddObserver, void(sync_notifier::SyncNotifierObserver*)); 643 MOCK_METHOD1(AddObserver, void(sync_notifier::SyncNotifierObserver*));
644 MOCK_METHOD1(RemoveObserver, void(sync_notifier::SyncNotifierObserver*)); 644 MOCK_METHOD1(RemoveObserver, void(sync_notifier::SyncNotifierObserver*));
645 MOCK_METHOD1(SetUniqueId, void(const std::string&)); 645 MOCK_METHOD1(SetUniqueId, void(const std::string&));
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 }; 847 };
848 848
849 TEST_F(SyncManagerTest, UpdateEnabledTypes) { 849 TEST_F(SyncManagerTest, UpdateEnabledTypes) {
850 EXPECT_EQ(1, update_enabled_types_call_count_); 850 EXPECT_EQ(1, update_enabled_types_call_count_);
851 // Triggers SyncNotifierUpdateEnabledTypes. 851 // Triggers SyncNotifierUpdateEnabledTypes.
852 sync_manager_.UpdateEnabledTypes(); 852 sync_manager_.UpdateEnabledTypes();
853 EXPECT_EQ(2, update_enabled_types_call_count_); 853 EXPECT_EQ(2, update_enabled_types_call_count_);
854 } 854 }
855 855
856 TEST_F(SyncManagerTest, DoNotSyncTabsInNigoriNode) { 856 TEST_F(SyncManagerTest, DoNotSyncTabsInNigoriNode) {
857 syncable::ModelEnumSet encrypted_types(syncable::TYPED_URLS); 857 const syncable::ModelEnumSet encrypted_types(syncable::TYPED_URLS);
858 sync_manager_.MaybeSetSyncTabsInNigoriNode(encrypted_types); 858 sync_manager_.MaybeSetSyncTabsInNigoriNode(encrypted_types);
859 859
860 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 860 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
861 ReadNode node(&trans); 861 ReadNode node(&trans);
862 ASSERT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI))); 862 ASSERT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI)));
863 EXPECT_FALSE(node.GetNigoriSpecifics().sync_tabs()); 863 EXPECT_FALSE(node.GetNigoriSpecifics().sync_tabs());
864 } 864 }
865 865
866 TEST_F(SyncManagerTest, SyncTabsInNigoriNode) { 866 TEST_F(SyncManagerTest, SyncTabsInNigoriNode) {
867 syncable::ModelEnumSet encrypted_types(syncable::SESSIONS); 867 const syncable::ModelEnumSet encrypted_types(syncable::SESSIONS);
868 sync_manager_.MaybeSetSyncTabsInNigoriNode(encrypted_types); 868 sync_manager_.MaybeSetSyncTabsInNigoriNode(encrypted_types);
869 869
870 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 870 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
871 ReadNode node(&trans); 871 ReadNode node(&trans);
872 ASSERT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI))); 872 ASSERT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI)));
873 EXPECT_TRUE(node.GetNigoriSpecifics().sync_tabs()); 873 EXPECT_TRUE(node.GetNigoriSpecifics().sync_tabs());
874 } 874 }
875 875
876 TEST_F(SyncManagerTest, ProcessJsMessage) { 876 TEST_F(SyncManagerTest, ProcessJsMessage) {
877 const JsArgList kNoArgs; 877 const JsArgList kNoArgs;
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 sync_manager_.TriggerOnNotificationStateChangeForTest(false); 1152 sync_manager_.TriggerOnNotificationStateChangeForTest(false);
1153 1153
1154 // Should trigger the replies. 1154 // Should trigger the replies.
1155 PumpLoop(); 1155 PumpLoop();
1156 } 1156 }
1157 1157
1158 TEST_F(SyncManagerTest, OnIncomingNotification) { 1158 TEST_F(SyncManagerTest, OnIncomingNotification) {
1159 StrictMock<MockJsEventHandler> event_handler; 1159 StrictMock<MockJsEventHandler> event_handler;
1160 1160
1161 const syncable::ModelEnumSet empty_model_types; 1161 const syncable::ModelEnumSet empty_model_types;
1162 syncable::ModelEnumSet model_types(syncable::BOOKMARKS, syncable::THEMES); 1162 const syncable::ModelEnumSet model_types(
1163 syncable::BOOKMARKS, syncable::THEMES);
1163 1164
1164 // Build expected_args to have a single argument with the string 1165 // Build expected_args to have a single argument with the string
1165 // equivalents of model_types. 1166 // equivalents of model_types.
1166 DictionaryValue expected_details; 1167 DictionaryValue expected_details;
1167 { 1168 {
1168 ListValue* model_type_list = new ListValue(); 1169 ListValue* model_type_list = new ListValue();
1169 expected_details.Set("changedTypes", model_type_list); 1170 expected_details.Set("changedTypes", model_type_list);
1170 for (syncable::ModelEnumSet::Iterator it = model_types.First(); 1171 for (syncable::ModelEnumSet::Iterator it = model_types.First();
1171 it.Good(); it.Inc()) { 1172 it.Good(); it.Inc()) {
1172 model_type_list->Append( 1173 model_type_list->Append(
(...skipping 17 matching lines...) Expand all
1190 sync_manager_.TriggerOnIncomingNotificationForTest(model_types); 1191 sync_manager_.TriggerOnIncomingNotificationForTest(model_types);
1191 1192
1192 // Should trigger the replies. 1193 // Should trigger the replies.
1193 PumpLoop(); 1194 PumpLoop();
1194 } 1195 }
1195 1196
1196 TEST_F(SyncManagerTest, RefreshEncryptionReady) { 1197 TEST_F(SyncManagerTest, RefreshEncryptionReady) {
1197 EXPECT_TRUE(SetUpEncryption(true)); 1198 EXPECT_TRUE(SetUpEncryption(true));
1198 EXPECT_CALL(observer_, OnEncryptionComplete()); 1199 EXPECT_CALL(observer_, OnEncryptionComplete());
1199 sync_manager_.RefreshEncryption(); 1200 sync_manager_.RefreshEncryption();
1200 syncable::ModelTypeSet encrypted_types = 1201 const syncable::ModelEnumSet encrypted_types =
1201 sync_manager_.GetEncryptedDataTypesForTest(); 1202 sync_manager_.GetEncryptedDataTypesForTest();
1202 EXPECT_EQ(1U, encrypted_types.count(syncable::PASSWORDS)); 1203 EXPECT_TRUE(encrypted_types.Has(syncable::PASSWORDS));
1203 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest()); 1204 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest());
1204 { 1205 {
1205 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1206 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1206 ReadNode node(&trans); 1207 ReadNode node(&trans);
1207 EXPECT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI))); 1208 EXPECT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI)));
1208 sync_pb::NigoriSpecifics nigori = node.GetNigoriSpecifics(); 1209 sync_pb::NigoriSpecifics nigori = node.GetNigoriSpecifics();
1209 EXPECT_TRUE(nigori.has_encrypted()); 1210 EXPECT_TRUE(nigori.has_encrypted());
1210 Cryptographer* cryptographer = trans.GetCryptographer(); 1211 Cryptographer* cryptographer = trans.GetCryptographer();
1211 EXPECT_TRUE(cryptographer->is_ready()); 1212 EXPECT_TRUE(cryptographer->is_ready());
1212 EXPECT_TRUE(cryptographer->CanDecrypt(nigori.encrypted())); 1213 EXPECT_TRUE(cryptographer->CanDecrypt(nigori.encrypted()));
1213 } 1214 }
1214 } 1215 }
1215 1216
1216 // Attempt to refresh encryption when nigori not downloaded. 1217 // Attempt to refresh encryption when nigori not downloaded.
1217 TEST_F(SyncManagerTest, RefreshEncryptionNotReady) { 1218 TEST_F(SyncManagerTest, RefreshEncryptionNotReady) {
1218 // Don't set up encryption (no nigori node created). 1219 // Don't set up encryption (no nigori node created).
1219 sync_manager_.RefreshEncryption(); // Should fail. 1220 sync_manager_.RefreshEncryption(); // Should fail.
1220 syncable::ModelTypeSet encrypted_types = 1221 const syncable::ModelEnumSet encrypted_types =
1221 sync_manager_.GetEncryptedDataTypesForTest(); 1222 sync_manager_.GetEncryptedDataTypesForTest();
1222 EXPECT_EQ(1U, encrypted_types.count(syncable::PASSWORDS)); // Hardcoded. 1223 EXPECT_TRUE(encrypted_types.Has(syncable::PASSWORDS)); // Hardcoded.
1223 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest()); 1224 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest());
1224 } 1225 }
1225 1226
1226 // Attempt to refresh encryption when nigori is empty. 1227 // Attempt to refresh encryption when nigori is empty.
1227 TEST_F(SyncManagerTest, RefreshEncryptionEmptyNigori) { 1228 TEST_F(SyncManagerTest, RefreshEncryptionEmptyNigori) {
1228 EXPECT_TRUE(SetUpEncryption(false)); 1229 EXPECT_TRUE(SetUpEncryption(false));
1229 EXPECT_CALL(observer_, OnEncryptionComplete()); 1230 EXPECT_CALL(observer_, OnEncryptionComplete());
1230 sync_manager_.RefreshEncryption(); // Should write to nigori. 1231 sync_manager_.RefreshEncryption(); // Should write to nigori.
1231 syncable::ModelTypeSet encrypted_types = 1232 const syncable::ModelEnumSet encrypted_types =
1232 sync_manager_.GetEncryptedDataTypesForTest(); 1233 sync_manager_.GetEncryptedDataTypesForTest();
1233 EXPECT_EQ(1U, encrypted_types.count(syncable::PASSWORDS)); // Hardcoded. 1234 EXPECT_TRUE(encrypted_types.Has(syncable::PASSWORDS)); // Hardcoded.
1234 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest()); 1235 EXPECT_FALSE(sync_manager_.EncryptEverythingEnabledForTest());
1235 { 1236 {
1236 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1237 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1237 ReadNode node(&trans); 1238 ReadNode node(&trans);
1238 EXPECT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI))); 1239 EXPECT_TRUE(node.InitByIdLookup(GetIdForDataType(syncable::NIGORI)));
1239 sync_pb::NigoriSpecifics nigori = node.GetNigoriSpecifics(); 1240 sync_pb::NigoriSpecifics nigori = node.GetNigoriSpecifics();
1240 EXPECT_TRUE(nigori.has_encrypted()); 1241 EXPECT_TRUE(nigori.has_encrypted());
1241 Cryptographer* cryptographer = trans.GetCryptographer(); 1242 Cryptographer* cryptographer = trans.GetCryptographer();
1242 EXPECT_TRUE(cryptographer->is_ready()); 1243 EXPECT_TRUE(cryptographer->is_ready());
1243 EXPECT_TRUE(cryptographer->CanDecrypt(nigori.encrypted())); 1244 EXPECT_TRUE(cryptographer->CanDecrypt(nigori.encrypted()));
1244 } 1245 }
1245 } 1246 }
1246 1247
1247 TEST_F(SyncManagerTest, EncryptDataTypesWithNoData) { 1248 TEST_F(SyncManagerTest, EncryptDataTypesWithNoData) {
1248 EXPECT_TRUE(SetUpEncryption(true)); 1249 EXPECT_TRUE(SetUpEncryption(true));
1249 EXPECT_CALL(observer_, 1250 EXPECT_CALL(observer_,
1250 OnEncryptedTypesChanged(GetAllRealModelTypes(), true)); 1251 OnEncryptedTypesChanged(
1252 HasModelTypes(syncable::ModelEnumSet::All()), true));
1251 EXPECT_CALL(observer_, OnEncryptionComplete()); 1253 EXPECT_CALL(observer_, OnEncryptionComplete());
1252 sync_manager_.EnableEncryptEverything(); 1254 sync_manager_.EnableEncryptEverything();
1253 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest()); 1255 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest());
1254 } 1256 }
1255 1257
1256 TEST_F(SyncManagerTest, EncryptDataTypesWithData) { 1258 TEST_F(SyncManagerTest, EncryptDataTypesWithData) {
1257 size_t batch_size = 5; 1259 size_t batch_size = 5;
1258 EXPECT_TRUE(SetUpEncryption(true)); 1260 EXPECT_TRUE(SetUpEncryption(true));
1259 1261
1260 // Create some unencrypted unsynced data. 1262 // Create some unencrypted unsynced data.
(...skipping 15 matching lines...) Expand all
1276 } 1278 }
1277 // Last batch_size nodes are a third type that will not need encryption. 1279 // Last batch_size nodes are a third type that will not need encryption.
1278 for (; i < 3*batch_size; ++i) { 1280 for (; i < 3*batch_size; ++i) {
1279 MakeNodeWithParent(sync_manager_.GetUserShare(), syncable::THEMES, 1281 MakeNodeWithParent(sync_manager_.GetUserShare(), syncable::THEMES,
1280 base::StringPrintf("%"PRIuS"", i), 1282 base::StringPrintf("%"PRIuS"", i),
1281 GetIdForDataType(syncable::THEMES)); 1283 GetIdForDataType(syncable::THEMES));
1282 } 1284 }
1283 1285
1284 { 1286 {
1285 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1287 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1286 EXPECT_EQ(Cryptographer::SensitiveTypes(), GetEncryptedTypes(&trans)); 1288 EXPECT_TRUE(GetEncryptedTypes(&trans).Equals(
1289 Cryptographer::SensitiveTypes()));
1287 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1290 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1288 trans.GetWrappedTrans(), 1291 trans.GetWrappedTrans(),
1289 trans.GetCryptographer(), 1292 trans.GetCryptographer(),
1290 syncable::BOOKMARKS, 1293 syncable::BOOKMARKS,
1291 false /* not encrypted */)); 1294 false /* not encrypted */));
1292 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1295 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1293 trans.GetWrappedTrans(), 1296 trans.GetWrappedTrans(),
1294 trans.GetCryptographer(), 1297 trans.GetCryptographer(),
1295 syncable::SESSIONS, 1298 syncable::SESSIONS,
1296 false /* not encrypted */)); 1299 false /* not encrypted */));
1297 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1300 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1298 trans.GetWrappedTrans(), 1301 trans.GetWrappedTrans(),
1299 trans.GetCryptographer(), 1302 trans.GetCryptographer(),
1300 syncable::THEMES, 1303 syncable::THEMES,
1301 false /* not encrypted */)); 1304 false /* not encrypted */));
1302 } 1305 }
1303 1306
1304 EXPECT_CALL(observer_, 1307 EXPECT_CALL(observer_,
1305 OnEncryptedTypesChanged(GetAllRealModelTypes(), true)); 1308 OnEncryptedTypesChanged(
1309 HasModelTypes(syncable::ModelEnumSet::All()), true));
1306 EXPECT_CALL(observer_, OnEncryptionComplete()); 1310 EXPECT_CALL(observer_, OnEncryptionComplete());
1307 sync_manager_.EnableEncryptEverything(); 1311 sync_manager_.EnableEncryptEverything();
1308 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest()); 1312 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest());
1309 { 1313 {
1310 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1314 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1311 EXPECT_EQ(GetAllRealModelTypes(), GetEncryptedTypes(&trans)); 1315 EXPECT_TRUE(GetEncryptedTypes(&trans).Equals(
1316 syncable::ModelEnumSet::All()));
1312 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1317 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1313 trans.GetWrappedTrans(), 1318 trans.GetWrappedTrans(),
1314 trans.GetCryptographer(), 1319 trans.GetCryptographer(),
1315 syncable::BOOKMARKS, 1320 syncable::BOOKMARKS,
1316 true /* is encrypted */)); 1321 true /* is encrypted */));
1317 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1322 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1318 trans.GetWrappedTrans(), 1323 trans.GetWrappedTrans(),
1319 trans.GetCryptographer(), 1324 trans.GetCryptographer(),
1320 syncable::SESSIONS, 1325 syncable::SESSIONS,
1321 true /* is encrypted */)); 1326 true /* is encrypted */));
1322 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1327 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1323 trans.GetWrappedTrans(), 1328 trans.GetWrappedTrans(),
1324 trans.GetCryptographer(), 1329 trans.GetCryptographer(),
1325 syncable::THEMES, 1330 syncable::THEMES,
1326 true /* is encrypted */)); 1331 true /* is encrypted */));
1327 } 1332 }
1328 1333
1329 // Trigger's a ReEncryptEverything with new passphrase. 1334 // Trigger's a ReEncryptEverything with new passphrase.
1330 testing::Mock::VerifyAndClearExpectations(&observer_); 1335 testing::Mock::VerifyAndClearExpectations(&observer_);
1331 EXPECT_CALL(observer_, OnPassphraseAccepted(_)); 1336 EXPECT_CALL(observer_, OnPassphraseAccepted(_));
1332 EXPECT_CALL(observer_, OnEncryptionComplete()); 1337 EXPECT_CALL(observer_, OnEncryptionComplete());
1333 sync_manager_.SetPassphrase("new_passphrase", true); 1338 sync_manager_.SetPassphrase("new_passphrase", true);
1334 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest()); 1339 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest());
1335 { 1340 {
1336 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1341 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1337 EXPECT_EQ(GetAllRealModelTypes(), GetEncryptedTypes(&trans)); 1342 EXPECT_TRUE(GetEncryptedTypes(&trans).Equals(
1343 syncable::ModelEnumSet::All()));
1338 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1344 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1339 trans.GetWrappedTrans(), 1345 trans.GetWrappedTrans(),
1340 trans.GetCryptographer(), 1346 trans.GetCryptographer(),
1341 syncable::BOOKMARKS, 1347 syncable::BOOKMARKS,
1342 true /* is encrypted */)); 1348 true /* is encrypted */));
1343 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1349 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1344 trans.GetWrappedTrans(), 1350 trans.GetWrappedTrans(),
1345 trans.GetCryptographer(), 1351 trans.GetCryptographer(),
1346 syncable::SESSIONS, 1352 syncable::SESSIONS,
1347 true /* is encrypted */)); 1353 true /* is encrypted */));
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 { 1493 {
1488 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1494 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1489 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1495 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1490 trans.GetWrappedTrans(), 1496 trans.GetWrappedTrans(),
1491 trans.GetCryptographer(), 1497 trans.GetCryptographer(),
1492 syncable::BOOKMARKS, 1498 syncable::BOOKMARKS,
1493 false /* not encrypted */)); 1499 false /* not encrypted */));
1494 } 1500 }
1495 1501
1496 EXPECT_CALL(observer_, 1502 EXPECT_CALL(observer_,
1497 OnEncryptedTypesChanged(GetAllRealModelTypes(), true)); 1503 OnEncryptedTypesChanged(
1504 HasModelTypes(syncable::ModelEnumSet::All()), true));
1498 EXPECT_CALL(observer_, OnEncryptionComplete()); 1505 EXPECT_CALL(observer_, OnEncryptionComplete());
1499 sync_manager_.EnableEncryptEverything(); 1506 sync_manager_.EnableEncryptEverything();
1500 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest()); 1507 EXPECT_TRUE(sync_manager_.EncryptEverythingEnabledForTest());
1501 1508
1502 { 1509 {
1503 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 1510 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
1504 EXPECT_EQ(GetAllRealModelTypes(), GetEncryptedTypes(&trans)); 1511 EXPECT_TRUE(GetEncryptedTypes(&trans).Equals(
1512 syncable::ModelEnumSet::All()));
1505 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest( 1513 EXPECT_TRUE(syncable::VerifyDataTypeEncryptionForTest(
1506 trans.GetWrappedTrans(), 1514 trans.GetWrappedTrans(),
1507 trans.GetCryptographer(), 1515 trans.GetCryptographer(),
1508 syncable::BOOKMARKS, 1516 syncable::BOOKMARKS,
1509 true /* is encrypted */)); 1517 true /* is encrypted */));
1510 1518
1511 ReadNode node(&trans); 1519 ReadNode node(&trans);
1512 EXPECT_TRUE(node.InitByIdLookup(node_id1)); 1520 EXPECT_TRUE(node.InitByIdLookup(node_id1));
1513 EXPECT_EQ(syncable::BOOKMARKS, node.GetModelType()); 1521 EXPECT_EQ(syncable::BOOKMARKS, node.GetModelType());
1514 EXPECT_EQ(title, node.GetTitle()); 1522 EXPECT_EQ(title, node.GetTitle());
1515 EXPECT_EQ(title, node.GetBookmarkSpecifics().title()); 1523 EXPECT_EQ(title, node.GetBookmarkSpecifics().title());
1516 EXPECT_EQ(url, node.GetBookmarkSpecifics().url()); 1524 EXPECT_EQ(url, node.GetBookmarkSpecifics().url());
1517 1525
1518 ReadNode node2(&trans); 1526 ReadNode node2(&trans);
1519 EXPECT_TRUE(node2.InitByIdLookup(node_id2)); 1527 EXPECT_TRUE(node2.InitByIdLookup(node_id2));
1520 EXPECT_EQ(syncable::BOOKMARKS, node2.GetModelType()); 1528 EXPECT_EQ(syncable::BOOKMARKS, node2.GetModelType());
1521 // We should de-canonicalize the title in GetTitle(), but the title in the 1529 // We should de-canonicalize the title in GetTitle(), but the title in the
1522 // specifics should be stored in the server legal form. 1530 // specifics should be stored in the server legal form.
1523 EXPECT_EQ(raw_title2, node2.GetTitle()); 1531 EXPECT_EQ(raw_title2, node2.GetTitle());
1524 EXPECT_EQ(title2, node2.GetBookmarkSpecifics().title()); 1532 EXPECT_EQ(title2, node2.GetBookmarkSpecifics().title());
1525 EXPECT_EQ(url2, node2.GetBookmarkSpecifics().url()); 1533 EXPECT_EQ(url2, node2.GetBookmarkSpecifics().url());
1526 } 1534 }
1527 } 1535 }
1528 1536
1529 } // namespace browser_sync 1537 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/internal_api/sync_manager.cc ('k') | chrome/browser/sync/internal_api/write_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698