OLD | NEW |
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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 | 171 |
172 virtual void SetUp() { | 172 virtual void SetUp() { |
173 AbstractProfileSyncServiceTest::SetUp(); | 173 AbstractProfileSyncServiceTest::SetUp(); |
174 profile_.CreateRequestContext(); | 174 profile_.CreateRequestContext(); |
175 password_store_ = static_cast<MockPasswordStore*>( | 175 password_store_ = static_cast<MockPasswordStore*>( |
176 PasswordStoreFactory::GetInstance()->SetTestingFactoryAndUse( | 176 PasswordStoreFactory::GetInstance()->SetTestingFactoryAndUse( |
177 &profile_, MockPasswordStore::Build).get()); | 177 &profile_, MockPasswordStore::Build).get()); |
178 } | 178 } |
179 | 179 |
180 virtual void TearDown() { | 180 virtual void TearDown() { |
181 if (password_store_) | 181 if (password_store_.get()) |
182 password_store_->ShutdownOnUIThread(); | 182 password_store_->ShutdownOnUIThread(); |
183 ProfileSyncServiceFactory::GetInstance()->SetTestingFactory( | 183 ProfileSyncServiceFactory::GetInstance()->SetTestingFactory( |
184 &profile_, NULL); | 184 &profile_, NULL); |
185 profile_.ResetRequestContext(); | 185 profile_.ResetRequestContext(); |
186 AbstractProfileSyncServiceTest::TearDown(); | 186 AbstractProfileSyncServiceTest::TearDown(); |
187 } | 187 } |
188 | 188 |
189 static void SignalEvent(base::WaitableEvent* done) { | 189 static void SignalEvent(base::WaitableEvent* done) { |
190 done->Signal(); | 190 done->Signal(); |
191 } | 191 } |
(...skipping 28 matching lines...) Expand all Loading... |
220 syncer::ModelTypeSet preferred_types = | 220 syncer::ModelTypeSet preferred_types = |
221 sync_service_->GetPreferredDataTypes(); | 221 sync_service_->GetPreferredDataTypes(); |
222 preferred_types.Put(syncer::PASSWORDS); | 222 preferred_types.Put(syncer::PASSWORDS); |
223 sync_service_->ChangePreferredDataTypes(preferred_types); | 223 sync_service_->ChangePreferredDataTypes(preferred_types); |
224 PasswordDataTypeController* data_type_controller = | 224 PasswordDataTypeController* data_type_controller = |
225 new PasswordDataTypeController(sync_service_->factory(), | 225 new PasswordDataTypeController(sync_service_->factory(), |
226 &profile_, | 226 &profile_, |
227 sync_service_); | 227 sync_service_); |
228 ProfileSyncComponentsFactoryMock* components = | 228 ProfileSyncComponentsFactoryMock* components = |
229 sync_service_->components_factory_mock(); | 229 sync_service_->components_factory_mock(); |
230 if (password_store_) { | 230 if (password_store_.get()) { |
231 EXPECT_CALL(*components, CreatePasswordSyncComponents(_, _, _)). | 231 EXPECT_CALL(*components, CreatePasswordSyncComponents(_, _, _)) |
232 Times(AtLeast(1)). // Can be more if we hit NEEDS_CRYPTO. | 232 .Times(AtLeast(1)). // Can be more if we hit NEEDS_CRYPTO. |
233 WillRepeatedly(MakePasswordSyncComponents(sync_service_, | 233 WillRepeatedly(MakePasswordSyncComponents( |
234 password_store_.get(), | 234 sync_service_, password_store_.get(), data_type_controller)); |
235 data_type_controller)); | |
236 } else { | 235 } else { |
237 // When the password store is unavailable, password sync components must | 236 // When the password store is unavailable, password sync components must |
238 // not be created. | 237 // not be created. |
239 EXPECT_CALL(*components, CreatePasswordSyncComponents(_, _, _)) | 238 EXPECT_CALL(*components, CreatePasswordSyncComponents(_, _, _)) |
240 .Times(0); | 239 .Times(0); |
241 } | 240 } |
242 EXPECT_CALL(*components, CreateDataTypeManager(_, _, _, _, _)). | 241 EXPECT_CALL(*components, CreateDataTypeManager(_, _, _, _, _)). |
243 WillOnce(ReturnNewDataTypeManager()); | 242 WillOnce(ReturnNewDataTypeManager()); |
244 | 243 |
245 // We need tokens to get the tests going | 244 // We need tokens to get the tests going |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 lhs.username_value == rhs.username_value && | 312 lhs.username_value == rhs.username_value && |
314 lhs.password_element == rhs.password_element && | 313 lhs.password_element == rhs.password_element && |
315 lhs.password_value == rhs.password_value && | 314 lhs.password_value == rhs.password_value && |
316 lhs.ssl_valid == rhs.ssl_valid && | 315 lhs.ssl_valid == rhs.ssl_valid && |
317 lhs.preferred == rhs.preferred && | 316 lhs.preferred == rhs.preferred && |
318 lhs.date_created == rhs.date_created && | 317 lhs.date_created == rhs.date_created && |
319 lhs.blacklisted_by_user == rhs.blacklisted_by_user; | 318 lhs.blacklisted_by_user == rhs.blacklisted_by_user; |
320 } | 319 } |
321 | 320 |
322 void SetIdleChangeProcessorExpectations() { | 321 void SetIdleChangeProcessorExpectations() { |
323 EXPECT_CALL(*password_store_, AddLoginImpl(_)).Times(0); | 322 EXPECT_CALL(*password_store_.get(), AddLoginImpl(_)).Times(0); |
324 EXPECT_CALL(*password_store_, UpdateLoginImpl(_)).Times(0); | 323 EXPECT_CALL(*password_store_.get(), UpdateLoginImpl(_)).Times(0); |
325 EXPECT_CALL(*password_store_, RemoveLoginImpl(_)).Times(0); | 324 EXPECT_CALL(*password_store_.get(), RemoveLoginImpl(_)).Times(0); |
326 } | 325 } |
327 | 326 |
328 content::MockNotificationObserver observer_; | 327 content::MockNotificationObserver observer_; |
329 ProfileMock profile_; | 328 ProfileMock profile_; |
330 scoped_refptr<MockPasswordStore> password_store_; | 329 scoped_refptr<MockPasswordStore> password_store_; |
331 content::NotificationRegistrar registrar_; | 330 content::NotificationRegistrar registrar_; |
332 }; | 331 }; |
333 | 332 |
334 void AddPasswordEntriesCallback(ProfileSyncServicePasswordTest* test, | 333 void AddPasswordEntriesCallback(ProfileSyncServicePasswordTest* test, |
335 const std::vector<PasswordForm>& entries) { | 334 const std::vector<PasswordForm>& entries) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 PasswordStoreFactory::GetInstance()->SetTestingFactoryAndUse( | 369 PasswordStoreFactory::GetInstance()->SetTestingFactoryAndUse( |
371 &profile_, NullPasswordStore::Build).get()); | 370 &profile_, NullPasswordStore::Build).get()); |
372 StartSyncService(base::Closure(), base::Closure()); | 371 StartSyncService(base::Closure(), base::Closure()); |
373 EXPECT_FALSE(sync_service_->HasUnrecoverableError()); | 372 EXPECT_FALSE(sync_service_->HasUnrecoverableError()); |
374 syncer::ModelTypeSet failed_types = | 373 syncer::ModelTypeSet failed_types = |
375 sync_service_->failed_datatypes_handler().GetFailedTypes(); | 374 sync_service_->failed_datatypes_handler().GetFailedTypes(); |
376 EXPECT_TRUE(failed_types.Equals(syncer::ModelTypeSet(syncer::PASSWORDS))); | 375 EXPECT_TRUE(failed_types.Equals(syncer::ModelTypeSet(syncer::PASSWORDS))); |
377 } | 376 } |
378 | 377 |
379 TEST_F(ProfileSyncServicePasswordTest, MAYBE_EmptyNativeEmptySync) { | 378 TEST_F(ProfileSyncServicePasswordTest, MAYBE_EmptyNativeEmptySync) { |
380 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 379 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
381 .WillOnce(Return(true)); | 380 .WillOnce(Return(true)); |
382 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)) | 381 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
383 .WillOnce(Return(true)); | 382 .WillOnce(Return(true)); |
384 SetIdleChangeProcessorExpectations(); | 383 SetIdleChangeProcessorExpectations(); |
385 CreateRootHelper create_root(this, syncer::PASSWORDS); | 384 CreateRootHelper create_root(this, syncer::PASSWORDS); |
386 StartSyncService(create_root.callback(), base::Closure()); | 385 StartSyncService(create_root.callback(), base::Closure()); |
387 std::vector<PasswordForm> sync_entries; | 386 std::vector<PasswordForm> sync_entries; |
388 GetPasswordEntriesFromSyncDB(&sync_entries); | 387 GetPasswordEntriesFromSyncDB(&sync_entries); |
389 EXPECT_EQ(0U, sync_entries.size()); | 388 EXPECT_EQ(0U, sync_entries.size()); |
390 } | 389 } |
391 | 390 |
392 TEST_F(ProfileSyncServicePasswordTest, MAYBE_HasNativeEntriesEmptySync) { | 391 TEST_F(ProfileSyncServicePasswordTest, MAYBE_HasNativeEntriesEmptySync) { |
393 std::vector<PasswordForm*> forms; | 392 std::vector<PasswordForm*> forms; |
394 std::vector<PasswordForm> expected_forms; | 393 std::vector<PasswordForm> expected_forms; |
395 PasswordForm* new_form = new PasswordForm; | 394 PasswordForm* new_form = new PasswordForm; |
396 new_form->scheme = PasswordForm::SCHEME_HTML; | 395 new_form->scheme = PasswordForm::SCHEME_HTML; |
397 new_form->signon_realm = "pie"; | 396 new_form->signon_realm = "pie"; |
398 new_form->origin = GURL("http://pie.com"); | 397 new_form->origin = GURL("http://pie.com"); |
399 new_form->action = GURL("http://pie.com/submit"); | 398 new_form->action = GURL("http://pie.com/submit"); |
400 new_form->username_element = UTF8ToUTF16("name"); | 399 new_form->username_element = UTF8ToUTF16("name"); |
401 new_form->username_value = UTF8ToUTF16("tom"); | 400 new_form->username_value = UTF8ToUTF16("tom"); |
402 new_form->password_element = UTF8ToUTF16("cork"); | 401 new_form->password_element = UTF8ToUTF16("cork"); |
403 new_form->password_value = UTF8ToUTF16("password1"); | 402 new_form->password_value = UTF8ToUTF16("password1"); |
404 new_form->ssl_valid = true; | 403 new_form->ssl_valid = true; |
405 new_form->preferred = false; | 404 new_form->preferred = false; |
406 new_form->date_created = base::Time::FromInternalValue(1234); | 405 new_form->date_created = base::Time::FromInternalValue(1234); |
407 new_form->blacklisted_by_user = false; | 406 new_form->blacklisted_by_user = false; |
408 forms.push_back(new_form); | 407 forms.push_back(new_form); |
409 expected_forms.push_back(*new_form); | 408 expected_forms.push_back(*new_form); |
410 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 409 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
411 .WillOnce(DoAll(SetArgumentPointee<0>(forms), Return(true))); | 410 .WillOnce(DoAll(SetArgumentPointee<0>(forms), Return(true))); |
412 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)) | 411 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
413 .WillOnce(Return(true)); | 412 .WillOnce(Return(true)); |
414 SetIdleChangeProcessorExpectations(); | 413 SetIdleChangeProcessorExpectations(); |
415 CreateRootHelper create_root(this, syncer::PASSWORDS); | 414 CreateRootHelper create_root(this, syncer::PASSWORDS); |
416 StartSyncService(create_root.callback(), base::Closure()); | 415 StartSyncService(create_root.callback(), base::Closure()); |
417 std::vector<PasswordForm> sync_forms; | 416 std::vector<PasswordForm> sync_forms; |
418 GetPasswordEntriesFromSyncDB(&sync_forms); | 417 GetPasswordEntriesFromSyncDB(&sync_forms); |
419 ASSERT_EQ(1U, sync_forms.size()); | 418 ASSERT_EQ(1U, sync_forms.size()); |
420 EXPECT_TRUE(ComparePasswords(expected_forms[0], sync_forms[0])); | 419 EXPECT_TRUE(ComparePasswords(expected_forms[0], sync_forms[0])); |
421 } | 420 } |
422 | 421 |
(...skipping 30 matching lines...) Expand all Loading... |
453 new_form->password_element = UTF8ToUTF16("cork"); | 452 new_form->password_element = UTF8ToUTF16("cork"); |
454 new_form->password_value = UTF8ToUTF16("password2"); | 453 new_form->password_value = UTF8ToUTF16("password2"); |
455 new_form->ssl_valid = true; | 454 new_form->ssl_valid = true; |
456 new_form->preferred = false; | 455 new_form->preferred = false; |
457 new_form->date_created = base::Time::FromInternalValue(1234); | 456 new_form->date_created = base::Time::FromInternalValue(1234); |
458 new_form->blacklisted_by_user = false; | 457 new_form->blacklisted_by_user = false; |
459 forms.push_back(new_form); | 458 forms.push_back(new_form); |
460 expected_forms.push_back(*new_form); | 459 expected_forms.push_back(*new_form); |
461 } | 460 } |
462 | 461 |
463 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 462 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
464 .WillOnce(DoAll(SetArgumentPointee<0>(forms), Return(true))); | 463 .WillOnce(DoAll(SetArgumentPointee<0>(forms), Return(true))); |
465 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)) | 464 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
466 .WillOnce(Return(true)); | 465 .WillOnce(Return(true)); |
467 SetIdleChangeProcessorExpectations(); | 466 SetIdleChangeProcessorExpectations(); |
468 CreateRootHelper create_root(this, syncer::PASSWORDS); | 467 CreateRootHelper create_root(this, syncer::PASSWORDS); |
469 StartSyncService(create_root.callback(), base::Closure()); | 468 StartSyncService(create_root.callback(), base::Closure()); |
470 std::vector<PasswordForm> sync_forms; | 469 std::vector<PasswordForm> sync_forms; |
471 GetPasswordEntriesFromSyncDB(&sync_forms); | 470 GetPasswordEntriesFromSyncDB(&sync_forms); |
472 ASSERT_EQ(2U, sync_forms.size()); | 471 ASSERT_EQ(2U, sync_forms.size()); |
473 EXPECT_TRUE(ComparePasswords(expected_forms[0], sync_forms[1])); | 472 EXPECT_TRUE(ComparePasswords(expected_forms[0], sync_forms[1])); |
474 EXPECT_TRUE(ComparePasswords(expected_forms[1], sync_forms[0])); | 473 EXPECT_TRUE(ComparePasswords(expected_forms[1], sync_forms[0])); |
475 } | 474 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 new_form.password_element = UTF8ToUTF16("cork2"); | 507 new_form.password_element = UTF8ToUTF16("cork2"); |
509 new_form.password_value = UTF8ToUTF16("password12"); | 508 new_form.password_value = UTF8ToUTF16("password12"); |
510 new_form.ssl_valid = false; | 509 new_form.ssl_valid = false; |
511 new_form.preferred = true; | 510 new_form.preferred = true; |
512 new_form.date_created = base::Time::FromInternalValue(12345); | 511 new_form.date_created = base::Time::FromInternalValue(12345); |
513 new_form.blacklisted_by_user = false; | 512 new_form.blacklisted_by_user = false; |
514 sync_forms.push_back(new_form); | 513 sync_forms.push_back(new_form); |
515 expected_forms.push_back(new_form); | 514 expected_forms.push_back(new_form); |
516 } | 515 } |
517 | 516 |
518 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 517 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
519 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), Return(true))); | 518 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), Return(true))); |
520 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)).WillOnce(Return(true)); | 519 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
521 EXPECT_CALL(*password_store_, AddLoginImpl(_)).Times(1); | 520 .WillOnce(Return(true)); |
| 521 EXPECT_CALL(*password_store_.get(), AddLoginImpl(_)).Times(1); |
522 | 522 |
523 CreateRootHelper create_root(this, syncer::PASSWORDS); | 523 CreateRootHelper create_root(this, syncer::PASSWORDS); |
524 StartSyncService(create_root.callback(), | 524 StartSyncService(create_root.callback(), |
525 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); | 525 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); |
526 | 526 |
527 std::vector<PasswordForm> new_sync_forms; | 527 std::vector<PasswordForm> new_sync_forms; |
528 GetPasswordEntriesFromSyncDB(&new_sync_forms); | 528 GetPasswordEntriesFromSyncDB(&new_sync_forms); |
529 | 529 |
530 EXPECT_EQ(2U, new_sync_forms.size()); | 530 EXPECT_EQ(2U, new_sync_forms.size()); |
531 EXPECT_TRUE(ComparePasswords(expected_forms[0], new_sync_forms[0])); | 531 EXPECT_TRUE(ComparePasswords(expected_forms[0], new_sync_forms[0])); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 new_form.password_element = UTF8ToUTF16("cork2"); | 568 new_form.password_element = UTF8ToUTF16("cork2"); |
569 new_form.password_value = UTF8ToUTF16("password12"); | 569 new_form.password_value = UTF8ToUTF16("password12"); |
570 new_form.ssl_valid = false; | 570 new_form.ssl_valid = false; |
571 new_form.preferred = true; | 571 new_form.preferred = true; |
572 new_form.date_created = base::Time::FromInternalValue(12345); | 572 new_form.date_created = base::Time::FromInternalValue(12345); |
573 new_form.blacklisted_by_user = false; | 573 new_form.blacklisted_by_user = false; |
574 sync_forms.push_back(new_form); | 574 sync_forms.push_back(new_form); |
575 expected_forms.push_back(new_form); | 575 expected_forms.push_back(new_form); |
576 } | 576 } |
577 | 577 |
578 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 578 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
579 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), | 579 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), |
580 AcquireSyncTransaction(this), | 580 AcquireSyncTransaction(this), |
581 Return(true))); | 581 Return(true))); |
582 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)) | 582 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
583 .WillOnce(DoAll(AcquireSyncTransaction(this), | 583 .WillOnce(DoAll(AcquireSyncTransaction(this), Return(true))); |
584 Return(true))); | 584 EXPECT_CALL(*password_store_.get(), AddLoginImpl(_)) |
585 EXPECT_CALL(*password_store_, AddLoginImpl(_)) | |
586 .WillOnce(AcquireSyncTransaction(this)); | 585 .WillOnce(AcquireSyncTransaction(this)); |
587 | 586 |
588 CreateRootHelper create_root(this, syncer::PASSWORDS); | 587 CreateRootHelper create_root(this, syncer::PASSWORDS); |
589 StartSyncService(create_root.callback(), | 588 StartSyncService(create_root.callback(), |
590 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); | 589 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); |
591 | 590 |
592 std::vector<PasswordForm> new_sync_forms; | 591 std::vector<PasswordForm> new_sync_forms; |
593 GetPasswordEntriesFromSyncDB(&new_sync_forms); | 592 GetPasswordEntriesFromSyncDB(&new_sync_forms); |
594 | 593 |
595 EXPECT_EQ(2U, new_sync_forms.size()); | 594 EXPECT_EQ(2U, new_sync_forms.size()); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 new_form.username_value = UTF8ToUTF16("tom"); | 645 new_form.username_value = UTF8ToUTF16("tom"); |
647 new_form.password_element = UTF8ToUTF16("cork"); | 646 new_form.password_element = UTF8ToUTF16("cork"); |
648 new_form.password_value = UTF8ToUTF16("password12"); | 647 new_form.password_value = UTF8ToUTF16("password12"); |
649 new_form.ssl_valid = false; | 648 new_form.ssl_valid = false; |
650 new_form.preferred = true; | 649 new_form.preferred = true; |
651 new_form.date_created = base::Time::FromInternalValue(12345); | 650 new_form.date_created = base::Time::FromInternalValue(12345); |
652 new_form.blacklisted_by_user = false; | 651 new_form.blacklisted_by_user = false; |
653 expected_forms.push_back(new_form); | 652 expected_forms.push_back(new_form); |
654 } | 653 } |
655 | 654 |
656 EXPECT_CALL(*password_store_, FillAutofillableLogins(_)) | 655 EXPECT_CALL(*password_store_.get(), FillAutofillableLogins(_)) |
657 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), Return(true))); | 656 .WillOnce(DoAll(SetArgumentPointee<0>(native_forms), Return(true))); |
658 EXPECT_CALL(*password_store_, FillBlacklistLogins(_)).WillOnce(Return(true)); | 657 EXPECT_CALL(*password_store_.get(), FillBlacklistLogins(_)) |
659 EXPECT_CALL(*password_store_, UpdateLoginImpl(_)).Times(1); | 658 .WillOnce(Return(true)); |
| 659 EXPECT_CALL(*password_store_.get(), UpdateLoginImpl(_)).Times(1); |
660 | 660 |
661 CreateRootHelper create_root(this, syncer::PASSWORDS); | 661 CreateRootHelper create_root(this, syncer::PASSWORDS); |
662 StartSyncService(create_root.callback(), | 662 StartSyncService(create_root.callback(), |
663 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); | 663 base::Bind(&AddPasswordEntriesCallback, this, sync_forms)); |
664 | 664 |
665 std::vector<PasswordForm> new_sync_forms; | 665 std::vector<PasswordForm> new_sync_forms; |
666 GetPasswordEntriesFromSyncDB(&new_sync_forms); | 666 GetPasswordEntriesFromSyncDB(&new_sync_forms); |
667 | 667 |
668 EXPECT_EQ(1U, new_sync_forms.size()); | 668 EXPECT_EQ(1U, new_sync_forms.size()); |
669 EXPECT_TRUE(ComparePasswords(expected_forms[0], new_sync_forms[0])); | 669 EXPECT_TRUE(ComparePasswords(expected_forms[0], new_sync_forms[0])); |
670 } | 670 } |
OLD | NEW |