| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/prefs/tracked/tracked_preferences_migration.h" | 5 #include "chrome/browser/prefs/tracked/tracked_preferences_migration.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 // There is no pending cleanup task for the modern hash stores. | 524 // There is no pending cleanup task for the modern hash stores. |
| 525 EXPECT_FALSE( | 525 EXPECT_FALSE( |
| 526 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); | 526 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); |
| 527 EXPECT_FALSE( | 527 EXPECT_FALSE( |
| 528 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); | 528 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); |
| 529 | 529 |
| 530 // Both stores were modified as hashes were moved from Local State. | 530 // Both stores were modified as hashes were moved from Local State. |
| 531 EXPECT_TRUE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); | 531 EXPECT_TRUE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); |
| 532 EXPECT_TRUE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); | 532 EXPECT_TRUE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); |
| 533 | 533 |
| 534 std::vector<std::pair<std::string, std::string> > expected_unprotected_values; | 534 base::StringPairs expected_unprotected_values; |
| 535 expected_unprotected_values.push_back( | 535 expected_unprotected_values.push_back( |
| 536 std::make_pair(kUnprotectedPref, kUnprotectedPrefValue)); | 536 std::make_pair(kUnprotectedPref, kUnprotectedPrefValue)); |
| 537 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, expected_unprotected_values); | 537 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, expected_unprotected_values); |
| 538 | 538 |
| 539 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 539 base::StringPairs expected_protected_values; |
| 540 expected_protected_values.push_back( | 540 expected_protected_values.push_back( |
| 541 std::make_pair(kProtectedPref, kProtectedPrefValue)); | 541 std::make_pair(kProtectedPref, kProtectedPrefValue)); |
| 542 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 542 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 543 | 543 |
| 544 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); | 544 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); |
| 545 EXPECT_FALSE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kProtectedPref)); | 545 EXPECT_FALSE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kProtectedPref)); |
| 546 | 546 |
| 547 EXPECT_TRUE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kProtectedPref)); | 547 EXPECT_TRUE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kProtectedPref)); |
| 548 EXPECT_FALSE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kUnprotectedPref)); | 548 EXPECT_FALSE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kUnprotectedPref)); |
| 549 | 549 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 EXPECT_TRUE(ContainsLegacyHash(kProtectedPref)); | 605 EXPECT_TRUE(ContainsLegacyHash(kProtectedPref)); |
| 606 EXPECT_TRUE(ContainsLegacyHash(kPreviouslyProtectedPref)); | 606 EXPECT_TRUE(ContainsLegacyHash(kPreviouslyProtectedPref)); |
| 607 | 607 |
| 608 // Perform a first-pass migration. | 608 // Perform a first-pass migration. |
| 609 HandPrefsToMigrator(MOCK_UNPROTECTED_PREF_STORE); | 609 HandPrefsToMigrator(MOCK_UNPROTECTED_PREF_STORE); |
| 610 HandPrefsToMigrator(MOCK_PROTECTED_PREF_STORE); | 610 HandPrefsToMigrator(MOCK_PROTECTED_PREF_STORE); |
| 611 EXPECT_TRUE(MigrationCompleted()); | 611 EXPECT_TRUE(MigrationCompleted()); |
| 612 | 612 |
| 613 // All values should have been moved to their preferred locations, including | 613 // All values should have been moved to their preferred locations, including |
| 614 // MACs. | 614 // MACs. |
| 615 std::vector<std::pair<std::string, std::string> > expected_unprotected_values; | 615 base::StringPairs expected_unprotected_values; |
| 616 expected_unprotected_values.push_back( | 616 expected_unprotected_values.push_back( |
| 617 std::make_pair(kUnprotectedPref, kUnprotectedPrefValue)); | 617 std::make_pair(kUnprotectedPref, kUnprotectedPrefValue)); |
| 618 expected_unprotected_values.push_back( | 618 expected_unprotected_values.push_back( |
| 619 std::make_pair(kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 619 std::make_pair(kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 620 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 620 base::StringPairs expected_protected_values; |
| 621 expected_protected_values.push_back( | 621 expected_protected_values.push_back( |
| 622 std::make_pair(kProtectedPref, kProtectedPrefValue)); | 622 std::make_pair(kProtectedPref, kProtectedPrefValue)); |
| 623 expected_protected_values.push_back(std::make_pair( | 623 expected_protected_values.push_back(std::make_pair( |
| 624 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 624 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 625 | 625 |
| 626 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, expected_unprotected_values); | 626 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, expected_unprotected_values); |
| 627 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 627 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 628 | 628 |
| 629 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); | 629 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); |
| 630 EXPECT_TRUE( | 630 EXPECT_TRUE( |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 731 EXPECT_TRUE( | 731 EXPECT_TRUE( |
| 732 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); | 732 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); |
| 733 EXPECT_TRUE( | 733 EXPECT_TRUE( |
| 734 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); | 734 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); |
| 735 EXPECT_TRUE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); | 735 EXPECT_TRUE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); |
| 736 EXPECT_TRUE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); | 736 EXPECT_TRUE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); |
| 737 | 737 |
| 738 // Values should have been migrated to their store, but migrated values should | 738 // Values should have been migrated to their store, but migrated values should |
| 739 // still remain in the source store until cleanup tasks are later invoked. | 739 // still remain in the source store until cleanup tasks are later invoked. |
| 740 { | 740 { |
| 741 std::vector<std::pair<std::string, std::string> > | 741 base::StringPairs expected_unprotected_values; |
| 742 expected_unprotected_values; | |
| 743 expected_unprotected_values.push_back(std::make_pair( | 742 expected_unprotected_values.push_back(std::make_pair( |
| 744 kUnprotectedPref, kUnprotectedPrefValue)); | 743 kUnprotectedPref, kUnprotectedPrefValue)); |
| 745 expected_unprotected_values.push_back(std::make_pair( | 744 expected_unprotected_values.push_back(std::make_pair( |
| 746 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 745 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 747 expected_unprotected_values.push_back(std::make_pair( | 746 expected_unprotected_values.push_back(std::make_pair( |
| 748 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 747 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 749 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, | 748 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, |
| 750 expected_unprotected_values); | 749 expected_unprotected_values); |
| 751 | 750 |
| 752 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 751 base::StringPairs expected_protected_values; |
| 753 expected_protected_values.push_back(std::make_pair( | 752 expected_protected_values.push_back(std::make_pair( |
| 754 kProtectedPref, kProtectedPrefValue)); | 753 kProtectedPref, kProtectedPrefValue)); |
| 755 expected_protected_values.push_back(std::make_pair( | 754 expected_protected_values.push_back(std::make_pair( |
| 756 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 755 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 757 expected_unprotected_values.push_back(std::make_pair( | 756 expected_unprotected_values.push_back(std::make_pair( |
| 758 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 757 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 759 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 758 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 760 | 759 |
| 761 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); | 760 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); |
| 762 EXPECT_TRUE( | 761 EXPECT_TRUE( |
| 763 ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kPreviouslyUnprotectedPref)); | 762 ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kPreviouslyUnprotectedPref)); |
| 764 EXPECT_FALSE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kProtectedPref)); | 763 EXPECT_FALSE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kProtectedPref)); |
| 765 EXPECT_TRUE( | 764 EXPECT_TRUE( |
| 766 ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kPreviouslyProtectedPref)); | 765 ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kPreviouslyProtectedPref)); |
| 767 | 766 |
| 768 EXPECT_FALSE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kUnprotectedPref)); | 767 EXPECT_FALSE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kUnprotectedPref)); |
| 769 EXPECT_TRUE( | 768 EXPECT_TRUE( |
| 770 ContainsHash(MOCK_PROTECTED_PREF_STORE, kPreviouslyUnprotectedPref)); | 769 ContainsHash(MOCK_PROTECTED_PREF_STORE, kPreviouslyUnprotectedPref)); |
| 771 EXPECT_TRUE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kProtectedPref)); | 770 EXPECT_TRUE(ContainsHash(MOCK_PROTECTED_PREF_STORE, kProtectedPref)); |
| 772 EXPECT_TRUE( | 771 EXPECT_TRUE( |
| 773 ContainsHash(MOCK_PROTECTED_PREF_STORE, kPreviouslyProtectedPref)); | 772 ContainsHash(MOCK_PROTECTED_PREF_STORE, kPreviouslyProtectedPref)); |
| 774 } | 773 } |
| 775 | 774 |
| 776 // A successful write of the protected pref store should result in a clean up | 775 // A successful write of the protected pref store should result in a clean up |
| 777 // of the unprotected store. | 776 // of the unprotected store. |
| 778 SimulateSuccessfulWrite(MOCK_PROTECTED_PREF_STORE); | 777 SimulateSuccessfulWrite(MOCK_PROTECTED_PREF_STORE); |
| 779 | 778 |
| 780 { | 779 { |
| 781 std::vector<std::pair<std::string, std::string> > | 780 base::StringPairs expected_unprotected_values; |
| 782 expected_unprotected_values; | |
| 783 expected_unprotected_values.push_back(std::make_pair( | 781 expected_unprotected_values.push_back(std::make_pair( |
| 784 kUnprotectedPref, kUnprotectedPrefValue)); | 782 kUnprotectedPref, kUnprotectedPrefValue)); |
| 785 expected_unprotected_values.push_back(std::make_pair( | 783 expected_unprotected_values.push_back(std::make_pair( |
| 786 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 784 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 787 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, | 785 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, |
| 788 expected_unprotected_values); | 786 expected_unprotected_values); |
| 789 | 787 |
| 790 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 788 base::StringPairs expected_protected_values; |
| 791 expected_protected_values.push_back(std::make_pair( | 789 expected_protected_values.push_back(std::make_pair( |
| 792 kProtectedPref, kProtectedPrefValue)); | 790 kProtectedPref, kProtectedPrefValue)); |
| 793 expected_protected_values.push_back(std::make_pair( | 791 expected_protected_values.push_back(std::make_pair( |
| 794 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 792 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 795 expected_unprotected_values.push_back(std::make_pair( | 793 expected_unprotected_values.push_back(std::make_pair( |
| 796 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 794 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 797 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 795 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 798 } | 796 } |
| 799 | 797 |
| 800 SimulateSuccessfulWrite(MOCK_UNPROTECTED_PREF_STORE); | 798 SimulateSuccessfulWrite(MOCK_UNPROTECTED_PREF_STORE); |
| 801 | 799 |
| 802 { | 800 { |
| 803 std::vector<std::pair<std::string, std::string> > | 801 base::StringPairs expected_unprotected_values; |
| 804 expected_unprotected_values; | |
| 805 expected_unprotected_values.push_back(std::make_pair( | 802 expected_unprotected_values.push_back(std::make_pair( |
| 806 kUnprotectedPref, kUnprotectedPrefValue)); | 803 kUnprotectedPref, kUnprotectedPrefValue)); |
| 807 expected_unprotected_values.push_back(std::make_pair( | 804 expected_unprotected_values.push_back(std::make_pair( |
| 808 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 805 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 809 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, | 806 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, |
| 810 expected_unprotected_values); | 807 expected_unprotected_values); |
| 811 | 808 |
| 812 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 809 base::StringPairs expected_protected_values; |
| 813 expected_protected_values.push_back(std::make_pair( | 810 expected_protected_values.push_back(std::make_pair( |
| 814 kProtectedPref, kProtectedPrefValue)); | 811 kProtectedPref, kProtectedPrefValue)); |
| 815 expected_protected_values.push_back(std::make_pair( | 812 expected_protected_values.push_back(std::make_pair( |
| 816 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 813 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 817 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 814 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 818 } | 815 } |
| 819 | 816 |
| 820 // Hashes are not cleaned up yet. | 817 // Hashes are not cleaned up yet. |
| 821 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); | 818 EXPECT_TRUE(ContainsHash(MOCK_UNPROTECTED_PREF_STORE, kUnprotectedPref)); |
| 822 EXPECT_TRUE( | 819 EXPECT_TRUE( |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 EXPECT_FALSE( | 883 EXPECT_FALSE( |
| 887 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); | 884 WasOnSuccessfulWriteCallbackRegistered(MOCK_UNPROTECTED_PREF_STORE)); |
| 888 EXPECT_FALSE( | 885 EXPECT_FALSE( |
| 889 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); | 886 WasOnSuccessfulWriteCallbackRegistered(MOCK_PROTECTED_PREF_STORE)); |
| 890 EXPECT_FALSE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); | 887 EXPECT_FALSE(StoreModifiedByMigration(MOCK_UNPROTECTED_PREF_STORE)); |
| 891 EXPECT_FALSE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); | 888 EXPECT_FALSE(StoreModifiedByMigration(MOCK_PROTECTED_PREF_STORE)); |
| 892 | 889 |
| 893 // Cleanup should happen synchronously if the values were already present in | 890 // Cleanup should happen synchronously if the values were already present in |
| 894 // their destination stores. | 891 // their destination stores. |
| 895 { | 892 { |
| 896 std::vector<std::pair<std::string, std::string> > | 893 base::StringPairs expected_unprotected_values; |
| 897 expected_unprotected_values; | |
| 898 expected_unprotected_values.push_back(std::make_pair( | 894 expected_unprotected_values.push_back(std::make_pair( |
| 899 kUnprotectedPref, kUnprotectedPrefValue)); | 895 kUnprotectedPref, kUnprotectedPrefValue)); |
| 900 expected_unprotected_values.push_back(std::make_pair( | 896 expected_unprotected_values.push_back(std::make_pair( |
| 901 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); | 897 kPreviouslyProtectedPref, kPreviouslyProtectedPrefValue)); |
| 902 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, | 898 VerifyValuesStored(MOCK_UNPROTECTED_PREF_STORE, |
| 903 expected_unprotected_values); | 899 expected_unprotected_values); |
| 904 | 900 |
| 905 std::vector<std::pair<std::string, std::string> > expected_protected_values; | 901 base::StringPairs expected_protected_values; |
| 906 expected_protected_values.push_back(std::make_pair( | 902 expected_protected_values.push_back(std::make_pair( |
| 907 kProtectedPref, kProtectedPrefValue)); | 903 kProtectedPref, kProtectedPrefValue)); |
| 908 expected_protected_values.push_back(std::make_pair( | 904 expected_protected_values.push_back(std::make_pair( |
| 909 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); | 905 kPreviouslyUnprotectedPref, kPreviouslyUnprotectedPrefValue)); |
| 910 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); | 906 VerifyValuesStored(MOCK_PROTECTED_PREF_STORE, expected_protected_values); |
| 911 } | 907 } |
| 912 } | 908 } |
| OLD | NEW |