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

Side by Side Diff: sync/internal_api/sync_encryption_handler_impl_unittest.cc

Issue 302173004: sync: Specialize functions that fetch type root (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/GET_BY_SERVER_TAG_DEPRECATED/GET_BY_SERVER_TAG/ Created 6 years, 6 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "sync/internal_api/sync_encryption_handler_impl.h" 5 #include "sync/internal_api/sync_encryption_handler_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/json/json_string_value_serializer.h" 10 #include "base/json/json_string_value_serializer.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 const std::string& passphrase) { 139 const std::string& passphrase) {
140 VerifyMigratedNigoriWithTimestamp(0, passphrase_type, passphrase); 140 VerifyMigratedNigoriWithTimestamp(0, passphrase_type, passphrase);
141 } 141 }
142 142
143 void VerifyMigratedNigoriWithTimestamp( 143 void VerifyMigratedNigoriWithTimestamp(
144 int64 migration_time, 144 int64 migration_time,
145 PassphraseType passphrase_type, 145 PassphraseType passphrase_type,
146 const std::string& passphrase) { 146 const std::string& passphrase) {
147 ReadTransaction trans(FROM_HERE, user_share()); 147 ReadTransaction trans(FROM_HERE, user_share());
148 ReadNode nigori_node(&trans); 148 ReadNode nigori_node(&trans);
149 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 149 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
150 const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics(); 150 const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics();
151 if (migration_time > 0) 151 if (migration_time > 0)
152 EXPECT_EQ(migration_time, nigori.keystore_migration_time()); 152 EXPECT_EQ(migration_time, nigori.keystore_migration_time());
153 else 153 else
154 EXPECT_TRUE(nigori.has_keystore_migration_time()); 154 EXPECT_TRUE(nigori.has_keystore_migration_time());
155 EXPECT_TRUE(nigori.keybag_is_frozen()); 155 EXPECT_TRUE(nigori.keybag_is_frozen());
156 if (passphrase_type == CUSTOM_PASSPHRASE || 156 if (passphrase_type == CUSTOM_PASSPHRASE ||
157 passphrase_type == FROZEN_IMPLICIT_PASSPHRASE) { 157 passphrase_type == FROZEN_IMPLICIT_PASSPHRASE) {
158 EXPECT_TRUE(nigori.encrypt_everything()); 158 EXPECT_TRUE(nigori.encrypt_everything());
159 EXPECT_TRUE(nigori.keystore_decryptor_token().blob().empty()); 159 EXPECT_TRUE(nigori.keystore_decryptor_token().blob().empty());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 } 232 }
233 233
234 // Build a migrated nigori node with the specified default passphrase 234 // Build a migrated nigori node with the specified default passphrase
235 // and keystore key and initialize the encryption handler with it. 235 // and keystore key and initialize the encryption handler with it.
236 void InitKeystoreMigratedNigori(int64 migration_time, 236 void InitKeystoreMigratedNigori(int64 migration_time,
237 const std::string& default_passphrase, 237 const std::string& default_passphrase,
238 const std::string& keystore_key) { 238 const std::string& keystore_key) {
239 { 239 {
240 WriteTransaction trans(FROM_HERE, user_share()); 240 WriteTransaction trans(FROM_HERE, user_share());
241 WriteNode nigori_node(&trans); 241 WriteNode nigori_node(&trans);
242 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 242 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
243 sync_pb::NigoriSpecifics nigori = BuildMigratedNigori( 243 sync_pb::NigoriSpecifics nigori = BuildMigratedNigori(
244 KEYSTORE_PASSPHRASE, 244 KEYSTORE_PASSPHRASE,
245 migration_time, 245 migration_time,
246 default_passphrase, 246 default_passphrase,
247 keystore_key); 247 keystore_key);
248 nigori_node.SetNigoriSpecifics(nigori); 248 nigori_node.SetNigoriSpecifics(nigori);
249 } 249 }
250 250
251 EXPECT_CALL(*observer(), 251 EXPECT_CALL(*observer(),
252 OnPassphraseTypeChanged(KEYSTORE_PASSPHRASE, _)); 252 OnPassphraseTypeChanged(KEYSTORE_PASSPHRASE, _));
(...skipping 12 matching lines...) Expand all
265 Mock::VerifyAndClearExpectations(observer()); 265 Mock::VerifyAndClearExpectations(observer());
266 } 266 }
267 267
268 // Build a migrated nigori node with the specified default passphrase 268 // Build a migrated nigori node with the specified default passphrase
269 // as a custom passphrase. 269 // as a custom passphrase.
270 void InitCustomPassMigratedNigori(int64 migration_time, 270 void InitCustomPassMigratedNigori(int64 migration_time,
271 const std::string& default_passphrase) { 271 const std::string& default_passphrase) {
272 { 272 {
273 WriteTransaction trans(FROM_HERE, user_share()); 273 WriteTransaction trans(FROM_HERE, user_share());
274 WriteNode nigori_node(&trans); 274 WriteNode nigori_node(&trans);
275 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 275 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
276 sync_pb::NigoriSpecifics nigori = BuildMigratedNigori( 276 sync_pb::NigoriSpecifics nigori = BuildMigratedNigori(
277 CUSTOM_PASSPHRASE, 277 CUSTOM_PASSPHRASE,
278 migration_time, 278 migration_time,
279 default_passphrase, 279 default_passphrase,
280 kKeystoreKey); 280 kKeystoreKey);
281 nigori_node.SetNigoriSpecifics(nigori); 281 nigori_node.SetNigoriSpecifics(nigori);
282 } 282 }
283 283
284 EXPECT_CALL(*observer(), 284 EXPECT_CALL(*observer(),
285 OnPassphraseTypeChanged(CUSTOM_PASSPHRASE, _)); 285 OnPassphraseTypeChanged(CUSTOM_PASSPHRASE, _));
(...skipping 16 matching lines...) Expand all
302 PassphraseType passphrase_type) { 302 PassphraseType passphrase_type) {
303 DCHECK_NE(passphrase_type, FROZEN_IMPLICIT_PASSPHRASE); 303 DCHECK_NE(passphrase_type, FROZEN_IMPLICIT_PASSPHRASE);
304 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 304 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
305 KeyParams default_key = {"localhost", "dummy", default_passphrase}; 305 KeyParams default_key = {"localhost", "dummy", default_passphrase};
306 other_cryptographer.AddKey(default_key); 306 other_cryptographer.AddKey(default_key);
307 EXPECT_TRUE(other_cryptographer.is_ready()); 307 EXPECT_TRUE(other_cryptographer.is_ready());
308 308
309 { 309 {
310 WriteTransaction trans(FROM_HERE, user_share()); 310 WriteTransaction trans(FROM_HERE, user_share());
311 WriteNode nigori_node(&trans); 311 WriteNode nigori_node(&trans);
312 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 312 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
313 sync_pb::NigoriSpecifics nigori; 313 sync_pb::NigoriSpecifics nigori;
314 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 314 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
315 nigori.set_keybag_is_frozen(passphrase_type == CUSTOM_PASSPHRASE); 315 nigori.set_keybag_is_frozen(passphrase_type == CUSTOM_PASSPHRASE);
316 nigori_node.SetNigoriSpecifics(nigori); 316 nigori_node.SetNigoriSpecifics(nigori);
317 } 317 }
318 318
319 if (passphrase_type != IMPLICIT_PASSPHRASE) { 319 if (passphrase_type != IMPLICIT_PASSPHRASE) {
320 EXPECT_CALL(*observer(), 320 EXPECT_CALL(*observer(),
321 OnPassphraseTypeChanged(passphrase_type, _)); 321 OnPassphraseTypeChanged(passphrase_type, _));
322 } 322 }
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 // specifics. 580 // specifics.
581 PumpLoop(); 581 PumpLoop();
582 582
583 { 583 {
584 // The cryptographer should be able to decrypt both sets of keys and still 584 // The cryptographer should be able to decrypt both sets of keys and still
585 // be encrypting with the newest, and the encrypted types should be the 585 // be encrypting with the newest, and the encrypted types should be the
586 // most recent. 586 // most recent.
587 // In addition, the nigori node should match the current encryption state. 587 // In addition, the nigori node should match the current encryption state.
588 ReadTransaction trans(FROM_HERE, user_share()); 588 ReadTransaction trans(FROM_HERE, user_share());
589 ReadNode nigori_node(&trans); 589 ReadNode nigori_node(&trans);
590 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 590 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
591 const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics(); 591 const sync_pb::NigoriSpecifics& nigori = nigori_node.GetNigoriSpecifics();
592 EXPECT_TRUE(GetCryptographer()->CanDecryptUsingDefaultKey( 592 EXPECT_TRUE(GetCryptographer()->CanDecryptUsingDefaultKey(
593 our_encrypted_specifics.encrypted())); 593 our_encrypted_specifics.encrypted()));
594 EXPECT_TRUE(GetCryptographer()->CanDecrypt( 594 EXPECT_TRUE(GetCryptographer()->CanDecrypt(
595 other_encrypted_specifics.encrypted())); 595 other_encrypted_specifics.encrypted()));
596 EXPECT_TRUE(GetCryptographer()->CanDecrypt(nigori.encryption_keybag())); 596 EXPECT_TRUE(GetCryptographer()->CanDecrypt(nigori.encryption_keybag()));
597 EXPECT_TRUE(nigori.encrypt_everything()); 597 EXPECT_TRUE(nigori.encrypt_everything());
598 EXPECT_TRUE( 598 EXPECT_TRUE(
599 GetCryptographer()->CanDecryptUsingDefaultKey( 599 GetCryptographer()->CanDecryptUsingDefaultKey(
600 nigori.encryption_keybag())); 600 nigori.encryption_keybag()));
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 encryption_handler()->SetKeystoreKeys(BuildEncryptionKeyProto( 723 encryption_handler()->SetKeystoreKeys(BuildEncryptionKeyProto(
724 kRawKeystoreKey), 724 kRawKeystoreKey),
725 trans.GetWrappedTrans()); 725 trans.GetWrappedTrans());
726 Mock::VerifyAndClearExpectations(observer()); 726 Mock::VerifyAndClearExpectations(observer());
727 } 727 }
728 EXPECT_FALSE(encryption_handler()->MigratedToKeystore()); 728 EXPECT_FALSE(encryption_handler()->MigratedToKeystore());
729 729
730 { 730 {
731 WriteTransaction trans(FROM_HERE, user_share()); 731 WriteTransaction trans(FROM_HERE, user_share());
732 WriteNode nigori_node(&trans); 732 WriteNode nigori_node(&trans);
733 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 733 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
734 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 734 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
735 KeyParams other_key = {"localhost", "dummy", kOtherKey}; 735 KeyParams other_key = {"localhost", "dummy", kOtherKey};
736 other_cryptographer.AddKey(other_key); 736 other_cryptographer.AddKey(other_key);
737 737
738 sync_pb::NigoriSpecifics nigori; 738 sync_pb::NigoriSpecifics nigori;
739 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 739 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
740 nigori.set_keybag_is_frozen(false); 740 nigori.set_keybag_is_frozen(false);
741 nigori.set_encrypt_everything(false); 741 nigori.set_encrypt_everything(false);
742 EXPECT_CALL(*observer(), 742 EXPECT_CALL(*observer(),
743 OnCryptographerStateChanged(_)).Times(AnyNumber()); 743 OnCryptographerStateChanged(_)).Times(AnyNumber());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 encryption_handler()->SetKeystoreKeys(BuildEncryptionKeyProto( 780 encryption_handler()->SetKeystoreKeys(BuildEncryptionKeyProto(
781 kRawKeystoreKey), 781 kRawKeystoreKey),
782 trans.GetWrappedTrans()); 782 trans.GetWrappedTrans());
783 Mock::VerifyAndClearExpectations(observer()); 783 Mock::VerifyAndClearExpectations(observer());
784 } 784 }
785 EXPECT_FALSE(encryption_handler()->MigratedToKeystore()); 785 EXPECT_FALSE(encryption_handler()->MigratedToKeystore());
786 786
787 { 787 {
788 WriteTransaction trans(FROM_HERE, user_share()); 788 WriteTransaction trans(FROM_HERE, user_share());
789 WriteNode nigori_node(&trans); 789 WriteNode nigori_node(&trans);
790 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 790 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
791 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 791 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
792 KeyParams other_key = {"localhost", "dummy", kOtherKey}; 792 KeyParams other_key = {"localhost", "dummy", kOtherKey};
793 other_cryptographer.AddKey(other_key); 793 other_cryptographer.AddKey(other_key);
794 794
795 sync_pb::NigoriSpecifics nigori; 795 sync_pb::NigoriSpecifics nigori;
796 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 796 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
797 nigori.set_keybag_is_frozen(true); 797 nigori.set_keybag_is_frozen(true);
798 nigori.set_encrypt_everything(false); 798 nigori.set_encrypt_everything(false);
799 EXPECT_CALL(*observer(), 799 EXPECT_CALL(*observer(),
800 OnCryptographerStateChanged(_)).Times(AnyNumber()); 800 OnCryptographerStateChanged(_)).Times(AnyNumber());
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 EXPECT_FALSE(encryption_handler()->MigratedToKeystore()); 1028 EXPECT_FALSE(encryption_handler()->MigratedToKeystore());
1029 EXPECT_FALSE(GetCryptographer()->is_ready()); 1029 EXPECT_FALSE(GetCryptographer()->is_ready());
1030 EXPECT_NE(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE); 1030 EXPECT_NE(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE);
1031 1031
1032 // Now build a nigori node with the generated keystore decryptor token and 1032 // Now build a nigori node with the generated keystore decryptor token and
1033 // initialize the encryption handler with it. The cryptographer should be 1033 // initialize the encryption handler with it. The cryptographer should be
1034 // initialized properly to decrypt both kCurKey and kKeystoreKey. 1034 // initialized properly to decrypt both kCurKey and kKeystoreKey.
1035 { 1035 {
1036 WriteTransaction trans(FROM_HERE, user_share()); 1036 WriteTransaction trans(FROM_HERE, user_share());
1037 WriteNode nigori_node(&trans); 1037 WriteNode nigori_node(&trans);
1038 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1038 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1039 sync_pb::NigoriSpecifics nigori; 1039 sync_pb::NigoriSpecifics nigori;
1040 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1040 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1041 keystore_decryptor_token); 1041 keystore_decryptor_token);
1042 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1042 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1043 nigori.set_keybag_is_frozen(true); 1043 nigori.set_keybag_is_frozen(true);
1044 nigori.set_keystore_migration_time(1); 1044 nigori.set_keystore_migration_time(1);
1045 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1045 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1046 1046
1047 EXPECT_CALL(*observer(), OnPassphraseAccepted()); 1047 EXPECT_CALL(*observer(), OnPassphraseAccepted());
1048 EXPECT_CALL(*observer(), 1048 EXPECT_CALL(*observer(),
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 EXPECT_CALL(*observer(), 1108 EXPECT_CALL(*observer(),
1109 OnPassphraseTypeChanged(FROZEN_IMPLICIT_PASSPHRASE, _)); 1109 OnPassphraseTypeChanged(FROZEN_IMPLICIT_PASSPHRASE, _));
1110 EXPECT_CALL(*observer(), 1110 EXPECT_CALL(*observer(),
1111 OnPassphraseRequired(_, _)); 1111 OnPassphraseRequired(_, _));
1112 EXPECT_CALL(*observer(), 1112 EXPECT_CALL(*observer(),
1113 OnCryptographerStateChanged(_)).Times(AnyNumber()); 1113 OnCryptographerStateChanged(_)).Times(AnyNumber());
1114 EXPECT_CALL(*observer(), 1114 EXPECT_CALL(*observer(),
1115 OnEncryptedTypesChanged(_, true)); 1115 OnEncryptedTypesChanged(_, true));
1116 WriteTransaction trans(FROM_HERE, user_share()); 1116 WriteTransaction trans(FROM_HERE, user_share());
1117 WriteNode nigori_node(&trans); 1117 WriteNode nigori_node(&trans);
1118 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1118 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1119 sync_pb::NigoriSpecifics nigori; 1119 sync_pb::NigoriSpecifics nigori;
1120 nigori.set_keybag_is_frozen(true); 1120 nigori.set_keybag_is_frozen(true);
1121 nigori.set_passphrase_type( 1121 nigori.set_passphrase_type(
1122 sync_pb::NigoriSpecifics::FROZEN_IMPLICIT_PASSPHRASE); 1122 sync_pb::NigoriSpecifics::FROZEN_IMPLICIT_PASSPHRASE);
1123 nigori.set_keystore_migration_time(1); 1123 nigori.set_keystore_migration_time(1);
1124 nigori.set_encrypt_everything(true); 1124 nigori.set_encrypt_everything(true);
1125 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1125 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1126 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans()); 1126 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans());
1127 nigori_node.SetNigoriSpecifics(nigori); 1127 nigori_node.SetNigoriSpecifics(nigori);
1128 } 1128 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1188 EXPECT_CALL(*observer(), 1188 EXPECT_CALL(*observer(),
1189 OnPassphraseTypeChanged(CUSTOM_PASSPHRASE, _)); 1189 OnPassphraseTypeChanged(CUSTOM_PASSPHRASE, _));
1190 EXPECT_CALL(*observer(), 1190 EXPECT_CALL(*observer(),
1191 OnPassphraseRequired(_, _)); 1191 OnPassphraseRequired(_, _));
1192 EXPECT_CALL(*observer(), 1192 EXPECT_CALL(*observer(),
1193 OnCryptographerStateChanged(_)).Times(AnyNumber()); 1193 OnCryptographerStateChanged(_)).Times(AnyNumber());
1194 EXPECT_CALL(*observer(), 1194 EXPECT_CALL(*observer(),
1195 OnEncryptedTypesChanged(_, true)); 1195 OnEncryptedTypesChanged(_, true));
1196 WriteTransaction trans(FROM_HERE, user_share()); 1196 WriteTransaction trans(FROM_HERE, user_share());
1197 WriteNode nigori_node(&trans); 1197 WriteNode nigori_node(&trans);
1198 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1198 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1199 sync_pb::NigoriSpecifics nigori; 1199 sync_pb::NigoriSpecifics nigori;
1200 nigori.set_keybag_is_frozen(true); 1200 nigori.set_keybag_is_frozen(true);
1201 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE); 1201 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE);
1202 nigori.set_keystore_migration_time(1); 1202 nigori.set_keystore_migration_time(1);
1203 nigori.set_encrypt_everything(true); 1203 nigori.set_encrypt_everything(true);
1204 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1204 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1205 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans()); 1205 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans());
1206 nigori_node.SetNigoriSpecifics(nigori); 1206 nigori_node.SetNigoriSpecifics(nigori);
1207 } 1207 }
1208 // Run any tasks posted via AppplyNigoriUpdate. 1208 // Run any tasks posted via AppplyNigoriUpdate.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1250 sync_pb::EncryptedData encrypted; 1250 sync_pb::EncryptedData encrypted;
1251 KeyParams old_key = {"localhost", "dummy", kOldKey}; 1251 KeyParams old_key = {"localhost", "dummy", kOldKey};
1252 KeyParams cur_key = {"localhost", "dummy", kCurKey}; 1252 KeyParams cur_key = {"localhost", "dummy", kCurKey};
1253 GetCryptographer()->AddKey(old_key); 1253 GetCryptographer()->AddKey(old_key);
1254 GetCryptographer()->AddKey(cur_key); 1254 GetCryptographer()->AddKey(cur_key);
1255 1255
1256 // Build a migrated nigori with full encryption. 1256 // Build a migrated nigori with full encryption.
1257 { 1257 {
1258 WriteTransaction trans(FROM_HERE, user_share()); 1258 WriteTransaction trans(FROM_HERE, user_share());
1259 WriteNode nigori_node(&trans); 1259 WriteNode nigori_node(&trans);
1260 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1260 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1261 sync_pb::NigoriSpecifics nigori; 1261 sync_pb::NigoriSpecifics nigori;
1262 GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag()); 1262 GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag());
1263 nigori.set_keybag_is_frozen(true); 1263 nigori.set_keybag_is_frozen(true);
1264 nigori.set_keystore_migration_time(1); 1264 nigori.set_keystore_migration_time(1);
1265 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE); 1265 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE);
1266 nigori.set_encrypt_everything(true); 1266 nigori.set_encrypt_everything(true);
1267 nigori_node.SetNigoriSpecifics(nigori); 1267 nigori_node.SetNigoriSpecifics(nigori);
1268 } 1268 }
1269 1269
1270 EXPECT_CALL(*observer(), 1270 EXPECT_CALL(*observer(),
(...skipping 24 matching lines...) Expand all
1295 // Now build an old unmigrated nigori node with old encrypted types. We should 1295 // Now build an old unmigrated nigori node with old encrypted types. We should
1296 // properly overwrite it with the migrated + encrypt everything state. 1296 // properly overwrite it with the migrated + encrypt everything state.
1297 EXPECT_CALL(*observer(), 1297 EXPECT_CALL(*observer(),
1298 OnCryptographerStateChanged(_)).Times(AnyNumber()); 1298 OnCryptographerStateChanged(_)).Times(AnyNumber());
1299 EXPECT_CALL(*observer(), OnEncryptionComplete()); 1299 EXPECT_CALL(*observer(), OnEncryptionComplete());
1300 { 1300 {
1301 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 1301 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
1302 other_cryptographer.AddKey(old_key); 1302 other_cryptographer.AddKey(old_key);
1303 WriteTransaction trans(FROM_HERE, user_share()); 1303 WriteTransaction trans(FROM_HERE, user_share());
1304 WriteNode nigori_node(&trans); 1304 WriteNode nigori_node(&trans);
1305 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1305 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1306 sync_pb::NigoriSpecifics nigori; 1306 sync_pb::NigoriSpecifics nigori;
1307 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1307 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1308 nigori.set_keybag_is_frozen(false); 1308 nigori.set_keybag_is_frozen(false);
1309 nigori.set_encrypt_everything(false); 1309 nigori.set_encrypt_everything(false);
1310 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans()); 1310 encryption_handler()->ApplyNigoriUpdate(nigori, trans.GetWrappedTrans());
1311 nigori_node.SetNigoriSpecifics(nigori); 1311 nigori_node.SetNigoriSpecifics(nigori);
1312 } 1312 }
1313 PumpLoop(); 1313 PumpLoop();
1314 1314
1315 // Verify we're still migrated and have proper encryption state. 1315 // Verify we're still migrated and have proper encryption state.
(...skipping 13 matching lines...) Expand all
1329 sync_pb::EncryptedData encrypted; 1329 sync_pb::EncryptedData encrypted;
1330 KeyParams old_key = {"localhost", "dummy", kOldKey}; 1330 KeyParams old_key = {"localhost", "dummy", kOldKey};
1331 KeyParams cur_key = {"localhost", "dummy", kCurKey}; 1331 KeyParams cur_key = {"localhost", "dummy", kCurKey};
1332 GetCryptographer()->AddKey(old_key); 1332 GetCryptographer()->AddKey(old_key);
1333 GetCryptographer()->AddKey(cur_key); 1333 GetCryptographer()->AddKey(cur_key);
1334 1334
1335 // Build a migrated nigori with full encryption. 1335 // Build a migrated nigori with full encryption.
1336 { 1336 {
1337 WriteTransaction trans(FROM_HERE, user_share()); 1337 WriteTransaction trans(FROM_HERE, user_share());
1338 WriteNode nigori_node(&trans); 1338 WriteNode nigori_node(&trans);
1339 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1339 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1340 sync_pb::NigoriSpecifics nigori; 1340 sync_pb::NigoriSpecifics nigori;
1341 GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag()); 1341 GetCryptographer()->GetKeys(nigori.mutable_encryption_keybag());
1342 nigori.set_keybag_is_frozen(true); 1342 nigori.set_keybag_is_frozen(true);
1343 nigori.set_keystore_migration_time(1); 1343 nigori.set_keystore_migration_time(1);
1344 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE); 1344 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::CUSTOM_PASSPHRASE);
1345 nigori.set_encrypt_everything(true); 1345 nigori.set_encrypt_everything(true);
1346 nigori_node.SetNigoriSpecifics(nigori); 1346 nigori_node.SetNigoriSpecifics(nigori);
1347 } 1347 }
1348 1348
1349 EXPECT_CALL(*observer(), 1349 EXPECT_CALL(*observer(),
(...skipping 22 matching lines...) Expand all
1372 Mock::VerifyAndClearExpectations(observer()); 1372 Mock::VerifyAndClearExpectations(observer());
1373 1373
1374 // Now build an old keystore nigori node with old encrypted types. We should 1374 // Now build an old keystore nigori node with old encrypted types. We should
1375 // properly overwrite it with the migrated + encrypt everything state. 1375 // properly overwrite it with the migrated + encrypt everything state.
1376 EXPECT_CALL(*observer(), 1376 EXPECT_CALL(*observer(),
1377 OnCryptographerStateChanged(_)).Times(AnyNumber()); 1377 OnCryptographerStateChanged(_)).Times(AnyNumber());
1378 EXPECT_CALL(*observer(), OnEncryptionComplete()); 1378 EXPECT_CALL(*observer(), OnEncryptionComplete());
1379 { 1379 {
1380 WriteTransaction trans(FROM_HERE, user_share()); 1380 WriteTransaction trans(FROM_HERE, user_share());
1381 WriteNode nigori_node(&trans); 1381 WriteNode nigori_node(&trans);
1382 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1382 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1383 sync_pb::NigoriSpecifics nigori; 1383 sync_pb::NigoriSpecifics nigori;
1384 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 1384 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
1385 other_cryptographer.AddKey(old_key); 1385 other_cryptographer.AddKey(old_key);
1386 encryption_handler()->GetKeystoreDecryptor( 1386 encryption_handler()->GetKeystoreDecryptor(
1387 other_cryptographer, 1387 other_cryptographer,
1388 kKeystoreKey, 1388 kKeystoreKey,
1389 nigori.mutable_keystore_decryptor_token()); 1389 nigori.mutable_keystore_decryptor_token());
1390 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1390 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1391 nigori.set_keybag_is_frozen(true); 1391 nigori.set_keybag_is_frozen(true);
1392 nigori.set_encrypt_everything(false); 1392 nigori.set_encrypt_everything(false);
(...skipping 28 matching lines...) Expand all
1421 EXPECT_FALSE(encryption_handler()->MigratedToKeystore()); 1421 EXPECT_FALSE(encryption_handler()->MigratedToKeystore());
1422 EXPECT_FALSE(GetCryptographer()->is_ready()); 1422 EXPECT_FALSE(GetCryptographer()->is_ready());
1423 EXPECT_NE(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE); 1423 EXPECT_NE(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE);
1424 1424
1425 // Now build a nigori node with the generated keystore decryptor token and 1425 // Now build a nigori node with the generated keystore decryptor token and
1426 // initialize the encryption handler with it. The cryptographer should be 1426 // initialize the encryption handler with it. The cryptographer should be
1427 // initialized properly to decrypt both kCurKey and kKeystoreKey. 1427 // initialized properly to decrypt both kCurKey and kKeystoreKey.
1428 { 1428 {
1429 WriteTransaction trans(FROM_HERE, user_share()); 1429 WriteTransaction trans(FROM_HERE, user_share());
1430 WriteNode nigori_node(&trans); 1430 WriteNode nigori_node(&trans);
1431 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1431 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1432 sync_pb::NigoriSpecifics nigori; 1432 sync_pb::NigoriSpecifics nigori;
1433 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1433 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1434 keystore_decryptor_token); 1434 keystore_decryptor_token);
1435 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1435 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1436 nigori.set_keybag_is_frozen(true); 1436 nigori.set_keybag_is_frozen(true);
1437 nigori.set_keystore_migration_time(1); 1437 nigori.set_keystore_migration_time(1);
1438 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1438 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1439 1439
1440 EXPECT_CALL(*observer(), 1440 EXPECT_CALL(*observer(),
1441 OnPassphraseTypeChanged(KEYSTORE_PASSPHRASE, _)); 1441 OnPassphraseTypeChanged(KEYSTORE_PASSPHRASE, _));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1502 other_cryptographer, 1502 other_cryptographer,
1503 kKeystoreKey, 1503 kKeystoreKey,
1504 &keystore_decryptor_token)); 1504 &keystore_decryptor_token));
1505 1505
1506 // Build a nigori node with the generated keystore decryptor token and 1506 // Build a nigori node with the generated keystore decryptor token and
1507 // initialize the encryption handler with it. The cryptographer should be 1507 // initialize the encryption handler with it. The cryptographer should be
1508 // initialized properly to decrypt both kOldKey and kKeystoreKey. 1508 // initialized properly to decrypt both kOldKey and kKeystoreKey.
1509 { 1509 {
1510 WriteTransaction trans(FROM_HERE, user_share()); 1510 WriteTransaction trans(FROM_HERE, user_share());
1511 WriteNode nigori_node(&trans); 1511 WriteNode nigori_node(&trans);
1512 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1512 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1513 sync_pb::NigoriSpecifics nigori; 1513 sync_pb::NigoriSpecifics nigori;
1514 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1514 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1515 keystore_decryptor_token); 1515 keystore_decryptor_token);
1516 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1516 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1517 nigori.set_keybag_is_frozen(true); 1517 nigori.set_keybag_is_frozen(true);
1518 nigori.set_keystore_migration_time(1); 1518 nigori.set_keystore_migration_time(1);
1519 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1519 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1520 nigori_node.SetNigoriSpecifics(nigori); 1520 nigori_node.SetNigoriSpecifics(nigori);
1521 EXPECT_CALL(*observer(), 1521 EXPECT_CALL(*observer(),
1522 OnBootstrapTokenUpdated(_, KEYSTORE_BOOTSTRAP_TOKEN)); 1522 OnBootstrapTokenUpdated(_, KEYSTORE_BOOTSTRAP_TOKEN));
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1604 other_cryptographer, 1604 other_cryptographer,
1605 kKeystoreKey, 1605 kKeystoreKey,
1606 &keystore_decryptor_token)); 1606 &keystore_decryptor_token));
1607 1607
1608 // Build a nigori node with the generated keystore decryptor token and 1608 // Build a nigori node with the generated keystore decryptor token and
1609 // initialize the encryption handler with it. The cryptographer will have 1609 // initialize the encryption handler with it. The cryptographer will have
1610 // pending keys until we provide the decryption passphrase. 1610 // pending keys until we provide the decryption passphrase.
1611 { 1611 {
1612 WriteTransaction trans(FROM_HERE, user_share()); 1612 WriteTransaction trans(FROM_HERE, user_share());
1613 WriteNode nigori_node(&trans); 1613 WriteNode nigori_node(&trans);
1614 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1614 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1615 sync_pb::NigoriSpecifics nigori; 1615 sync_pb::NigoriSpecifics nigori;
1616 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1616 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1617 keystore_decryptor_token); 1617 keystore_decryptor_token);
1618 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1618 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1619 nigori.set_keybag_is_frozen(true); 1619 nigori.set_keybag_is_frozen(true);
1620 nigori.set_keystore_migration_time(1); 1620 nigori.set_keystore_migration_time(1);
1621 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1621 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1622 nigori_node.SetNigoriSpecifics(nigori); 1622 nigori_node.SetNigoriSpecifics(nigori);
1623 } 1623 }
1624 1624
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1711 other_cryptographer, 1711 other_cryptographer,
1712 kKeystoreKey, 1712 kKeystoreKey,
1713 &keystore_decryptor_token)); 1713 &keystore_decryptor_token));
1714 1714
1715 // Build a nigori node with the generated keystore decryptor token and 1715 // Build a nigori node with the generated keystore decryptor token and
1716 // initialize the encryption handler with it. The cryptographer will have 1716 // initialize the encryption handler with it. The cryptographer will have
1717 // pending keys until we provide the decryption passphrase. 1717 // pending keys until we provide the decryption passphrase.
1718 { 1718 {
1719 WriteTransaction trans(FROM_HERE, user_share()); 1719 WriteTransaction trans(FROM_HERE, user_share());
1720 WriteNode nigori_node(&trans); 1720 WriteNode nigori_node(&trans);
1721 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1721 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1722 sync_pb::NigoriSpecifics nigori; 1722 sync_pb::NigoriSpecifics nigori;
1723 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1723 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1724 keystore_decryptor_token); 1724 keystore_decryptor_token);
1725 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1725 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1726 nigori.set_keybag_is_frozen(true); 1726 nigori.set_keybag_is_frozen(true);
1727 nigori.set_keystore_migration_time(1); 1727 nigori.set_keystore_migration_time(1);
1728 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1728 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1729 nigori_node.SetNigoriSpecifics(nigori); 1729 nigori_node.SetNigoriSpecifics(nigori);
1730 } 1730 }
1731 1731
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1806 other_cryptographer, 1806 other_cryptographer,
1807 kKeystoreKey, 1807 kKeystoreKey,
1808 &keystore_decryptor_token)); 1808 &keystore_decryptor_token));
1809 1809
1810 // Build a nigori node with the generated keystore decryptor token and 1810 // Build a nigori node with the generated keystore decryptor token and
1811 // initialize the encryption handler with it. The cryptographer will have 1811 // initialize the encryption handler with it. The cryptographer will have
1812 // pending keys until we provide the decryption passphrase. 1812 // pending keys until we provide the decryption passphrase.
1813 { 1813 {
1814 WriteTransaction trans(FROM_HERE, user_share()); 1814 WriteTransaction trans(FROM_HERE, user_share());
1815 WriteNode nigori_node(&trans); 1815 WriteNode nigori_node(&trans);
1816 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1816 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1817 sync_pb::NigoriSpecifics nigori; 1817 sync_pb::NigoriSpecifics nigori;
1818 nigori.mutable_keystore_decryptor_token()->CopyFrom( 1818 nigori.mutable_keystore_decryptor_token()->CopyFrom(
1819 keystore_decryptor_token); 1819 keystore_decryptor_token);
1820 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1820 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1821 nigori.set_keybag_is_frozen(true); 1821 nigori.set_keybag_is_frozen(true);
1822 nigori.set_keystore_migration_time(1); 1822 nigori.set_keystore_migration_time(1);
1823 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE); 1823 nigori.set_passphrase_type(sync_pb::NigoriSpecifics::KEYSTORE_PASSPHRASE);
1824 nigori_node.SetNigoriSpecifics(nigori); 1824 nigori_node.SetNigoriSpecifics(nigori);
1825 } 1825 }
1826 EXPECT_CALL(*observer(), 1826 EXPECT_CALL(*observer(),
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1924 EXPECT_EQ(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE); 1924 EXPECT_EQ(encryption_handler()->GetPassphraseType(), KEYSTORE_PASSPHRASE);
1925 VerifyMigratedNigori(KEYSTORE_PASSPHRASE, kCurKey); 1925 VerifyMigratedNigori(KEYSTORE_PASSPHRASE, kCurKey);
1926 1926
1927 // Now build an old keystore passphrase nigori node. 1927 // Now build an old keystore passphrase nigori node.
1928 EXPECT_CALL(*observer(), 1928 EXPECT_CALL(*observer(),
1929 OnCryptographerStateChanged(_)).Times(AnyNumber()); 1929 OnCryptographerStateChanged(_)).Times(AnyNumber());
1930 EXPECT_CALL(*observer(), OnEncryptionComplete()); 1930 EXPECT_CALL(*observer(), OnEncryptionComplete());
1931 { 1931 {
1932 WriteTransaction trans(FROM_HERE, user_share()); 1932 WriteTransaction trans(FROM_HERE, user_share());
1933 WriteNode nigori_node(&trans); 1933 WriteNode nigori_node(&trans);
1934 ASSERT_EQ(nigori_node.InitByTagLookup(kNigoriTag), BaseNode::INIT_OK); 1934 ASSERT_EQ(nigori_node.InitTypeRoot(NIGORI), BaseNode::INIT_OK);
1935 sync_pb::NigoriSpecifics nigori; 1935 sync_pb::NigoriSpecifics nigori;
1936 Cryptographer other_cryptographer(GetCryptographer()->encryptor()); 1936 Cryptographer other_cryptographer(GetCryptographer()->encryptor());
1937 other_cryptographer.AddKey(old_key); 1937 other_cryptographer.AddKey(old_key);
1938 encryption_handler()->GetKeystoreDecryptor( 1938 encryption_handler()->GetKeystoreDecryptor(
1939 other_cryptographer, 1939 other_cryptographer,
1940 kKeystoreKey, 1940 kKeystoreKey,
1941 nigori.mutable_keystore_decryptor_token()); 1941 nigori.mutable_keystore_decryptor_token());
1942 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag()); 1942 other_cryptographer.GetKeys(nigori.mutable_encryption_keybag());
1943 nigori.set_keybag_is_frozen(true); 1943 nigori.set_keybag_is_frozen(true);
1944 nigori.set_encrypt_everything(false); 1944 nigori.set_encrypt_everything(false);
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
2273 encryption_handler()->SetKeystoreKeys(keys, 2273 encryption_handler()->SetKeystoreKeys(keys,
2274 trans.GetWrappedTrans()); 2274 trans.GetWrappedTrans());
2275 } 2275 }
2276 PumpLoop(); 2276 PumpLoop();
2277 Mock::VerifyAndClearExpectations(observer()); 2277 Mock::VerifyAndClearExpectations(observer());
2278 2278
2279 VerifyMigratedNigoriWithTimestamp(1, CUSTOM_PASSPHRASE, kCustomPass); 2279 VerifyMigratedNigoriWithTimestamp(1, CUSTOM_PASSPHRASE, kCustomPass);
2280 } 2280 }
2281 2281
2282 } // namespace syncer 2282 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/sync_encryption_handler_impl.cc ('k') | sync/internal_api/sync_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698