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

Side by Side Diff: sync/util/cryptographer_unittest.cc

Issue 10825137: FYI: Control Data + Per-Device Metadata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add PER_USER_METADATA, refactor some encryption code Created 8 years, 4 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 (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 "sync/util/cryptographer.h" 5 #include "sync/util/cryptographer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 cryptographer_.UpdateNigoriFromEncryptedTypes(&nigori); 267 cryptographer_.UpdateNigoriFromEncryptedTypes(&nigori);
268 cryptographer2.UpdateEncryptedTypesFromNigori(nigori); 268 cryptographer2.UpdateEncryptedTypesFromNigori(nigori);
269 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes())); 269 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes()));
270 EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes())); 270 EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes()));
271 271
272 Mock::VerifyAndClearExpectations(&observer); 272 Mock::VerifyAndClearExpectations(&observer);
273 Mock::VerifyAndClearExpectations(&observer2); 273 Mock::VerifyAndClearExpectations(&observer2);
274 274
275 EXPECT_CALL(observer, 275 EXPECT_CALL(observer,
276 OnEncryptedTypesChanged( 276 OnEncryptedTypesChanged(
277 HasModelTypes(ModelTypeSet::All()), false)); 277 HasModelTypes(syncer::EncryptableTypes()), false));
278 EXPECT_CALL(observer2, 278 EXPECT_CALL(observer2,
279 OnEncryptedTypesChanged( 279 OnEncryptedTypesChanged(
280 HasModelTypes(ModelTypeSet::All()), false)); 280 HasModelTypes(syncer::EncryptableTypes()), false));
281 281
282 // Set all encrypted types 282 // Set all encryptable types
283 encrypted_types = ModelTypeSet::All(); 283 encrypted_types = syncer::EncryptableTypes();
284 cryptographer_.MergeEncryptedTypesForTest(encrypted_types); 284 cryptographer_.MergeEncryptedTypesForTest(encrypted_types);
285 cryptographer_.UpdateNigoriFromEncryptedTypes(&nigori); 285 cryptographer_.UpdateNigoriFromEncryptedTypes(&nigori);
286 cryptographer2.UpdateEncryptedTypesFromNigori(nigori); 286 cryptographer2.UpdateEncryptedTypesFromNigori(nigori);
287 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes())); 287 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes()));
288 EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes())); 288 EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes()));
289 289
290 // Receiving an empty nigori should not reset any encrypted types or trigger 290 // Receiving an empty nigori should not reset any encrypted types or trigger
291 // an observer notification. 291 // an observer notification.
292 Mock::VerifyAndClearExpectations(&observer); 292 Mock::VerifyAndClearExpectations(&observer);
293 nigori = sync_pb::NigoriSpecifics(); 293 nigori = sync_pb::NigoriSpecifics();
294 cryptographer_.UpdateEncryptedTypesFromNigori(nigori); 294 cryptographer_.UpdateEncryptedTypesFromNigori(nigori);
295 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes())); 295 EXPECT_TRUE(encrypted_types.Equals(cryptographer_.GetEncryptedTypes()));
296 } 296 }
297 297
298 TEST_F(SyncCryptographerTest, EncryptEverythingExplicit) { 298 TEST_F(SyncCryptographerTest, EncryptEverythingExplicit) {
299 ModelTypeSet real_types = ModelTypeSet::All(); 299 ModelTypeSet encryptable_types = syncer::EncryptableTypes();
300 sync_pb::NigoriSpecifics specifics; 300 sync_pb::NigoriSpecifics specifics;
301 specifics.set_encrypt_everything(true); 301 specifics.set_encrypt_everything(true);
302 302
303 StrictMock<MockObserver> observer; 303 StrictMock<MockObserver> observer;
304 cryptographer_.AddObserver(&observer); 304 cryptographer_.AddObserver(&observer);
305 305
306 EXPECT_CALL(observer, 306 EXPECT_CALL(observer,
307 OnEncryptedTypesChanged( 307 OnEncryptedTypesChanged(
308 HasModelTypes(ModelTypeSet::All()), true)); 308 HasModelTypes(syncer::EncryptableTypes()), true));
309 309
310 EXPECT_FALSE(cryptographer_.encrypt_everything()); 310 EXPECT_FALSE(cryptographer_.encrypt_everything());
311 ModelTypeSet encrypted_types = cryptographer_.GetEncryptedTypes(); 311 ModelTypeSet encrypted_types = cryptographer_.GetEncryptedTypes();
312 for (ModelTypeSet::Iterator iter = real_types.First(); 312 for (ModelTypeSet::Iterator iter = encryptable_types.First();
313 iter.Good(); iter.Inc()) { 313 iter.Good(); iter.Inc()) {
314 if (iter.Get() == PASSWORDS || iter.Get() == NIGORI) 314 if (iter.Get() == PASSWORDS || iter.Get() == NIGORI)
315 EXPECT_TRUE(encrypted_types.Has(iter.Get())); 315 EXPECT_TRUE(encrypted_types.Has(iter.Get()));
316 else 316 else
317 EXPECT_FALSE(encrypted_types.Has(iter.Get())); 317 EXPECT_FALSE(encrypted_types.Has(iter.Get()));
318 } 318 }
319 319
320 cryptographer_.UpdateEncryptedTypesFromNigori(specifics); 320 cryptographer_.UpdateEncryptedTypesFromNigori(specifics);
321 321
322 EXPECT_TRUE(cryptographer_.encrypt_everything()); 322 EXPECT_TRUE(cryptographer_.encrypt_everything());
323 encrypted_types = cryptographer_.GetEncryptedTypes(); 323 encrypted_types = cryptographer_.GetEncryptedTypes();
324 for (ModelTypeSet::Iterator iter = real_types.First(); 324 for (ModelTypeSet::Iterator iter = encryptable_types.First();
325 iter.Good(); iter.Inc()) { 325 iter.Good(); iter.Inc()) {
326 EXPECT_TRUE(encrypted_types.Has(iter.Get())); 326 EXPECT_TRUE(encrypted_types.Has(iter.Get()));
327 } 327 }
328 328
329 // Shouldn't trigger another notification. 329 // Shouldn't trigger another notification.
330 specifics.set_encrypt_everything(true); 330 specifics.set_encrypt_everything(true);
331 331
332 cryptographer_.RemoveObserver(&observer); 332 cryptographer_.RemoveObserver(&observer);
333 } 333 }
334 334
335 TEST_F(SyncCryptographerTest, EncryptEverythingImplicit) { 335 TEST_F(SyncCryptographerTest, EncryptEverythingImplicit) {
336 ModelTypeSet real_types = ModelTypeSet::All(); 336 ModelTypeSet encryptable_types = syncer::EncryptableTypes();
337 sync_pb::NigoriSpecifics specifics; 337 sync_pb::NigoriSpecifics specifics;
338 specifics.set_encrypt_bookmarks(true); // Non-passwords = encrypt everything 338 specifics.set_encrypt_bookmarks(true); // Non-passwords = encrypt everything
339 339
340 StrictMock<MockObserver> observer; 340 StrictMock<MockObserver> observer;
341 cryptographer_.AddObserver(&observer); 341 cryptographer_.AddObserver(&observer);
342 342
343 EXPECT_CALL(observer, 343 EXPECT_CALL(observer,
344 OnEncryptedTypesChanged( 344 OnEncryptedTypesChanged(
345 HasModelTypes(ModelTypeSet::All()), true)); 345 HasModelTypes(syncer::EncryptableTypes()), true));
346 346
347 EXPECT_FALSE(cryptographer_.encrypt_everything()); 347 EXPECT_FALSE(cryptographer_.encrypt_everything());
348 ModelTypeSet encrypted_types = cryptographer_.GetEncryptedTypes(); 348 ModelTypeSet encrypted_types = cryptographer_.GetEncryptedTypes();
349 for (ModelTypeSet::Iterator iter = real_types.First(); 349 for (ModelTypeSet::Iterator iter = encryptable_types.First();
350 iter.Good(); iter.Inc()) { 350 iter.Good(); iter.Inc()) {
351 if (iter.Get() == PASSWORDS || iter.Get() == NIGORI) 351 if (iter.Get() == PASSWORDS || iter.Get() == NIGORI)
352 EXPECT_TRUE(encrypted_types.Has(iter.Get())); 352 EXPECT_TRUE(encrypted_types.Has(iter.Get()));
353 else 353 else
354 EXPECT_FALSE(encrypted_types.Has(iter.Get())); 354 EXPECT_FALSE(encrypted_types.Has(iter.Get()));
355 } 355 }
356 356
357 cryptographer_.UpdateEncryptedTypesFromNigori(specifics); 357 cryptographer_.UpdateEncryptedTypesFromNigori(specifics);
358 358
359 EXPECT_TRUE(cryptographer_.encrypt_everything()); 359 EXPECT_TRUE(cryptographer_.encrypt_everything());
360 encrypted_types = cryptographer_.GetEncryptedTypes(); 360 encrypted_types = cryptographer_.GetEncryptedTypes();
361 for (ModelTypeSet::Iterator iter = real_types.First(); 361 for (ModelTypeSet::Iterator iter = encryptable_types.First();
362 iter.Good(); iter.Inc()) { 362 iter.Good(); iter.Inc()) {
363 EXPECT_TRUE(encrypted_types.Has(iter.Get())); 363 EXPECT_TRUE(encrypted_types.Has(iter.Get()));
364 } 364 }
365 365
366 // Shouldn't trigger another notification. 366 // Shouldn't trigger another notification.
367 specifics.set_encrypt_everything(true); 367 specifics.set_encrypt_everything(true);
368 368
369 cryptographer_.RemoveObserver(&observer); 369 cryptographer_.RemoveObserver(&observer);
370 } 370 }
371 371
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 iter.Get() == BOOKMARKS) 408 iter.Get() == BOOKMARKS)
409 EXPECT_TRUE(encrypted_types.Has(iter.Get())); 409 EXPECT_TRUE(encrypted_types.Has(iter.Get()));
410 else 410 else
411 EXPECT_FALSE(encrypted_types.Has(iter.Get())); 411 EXPECT_FALSE(encrypted_types.Has(iter.Get()));
412 } 412 }
413 413
414 cryptographer_.RemoveObserver(&observer); 414 cryptographer_.RemoveObserver(&observer);
415 } 415 }
416 416
417 } // namespace syncer 417 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698