OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/message_loop.h" | 5 #include "base/message_loop.h" |
6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
7 #include "base/scoped_temp_dir.h" | 7 #include "base/scoped_temp_dir.h" |
8 #include "base/stl_util-inl.h" | 8 #include "base/stl_util-inl.h" |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 void RegisterPreferences() { | 584 void RegisterPreferences() { |
585 prefs()->pref_service()->RegisterStringPref(kPref1, kDefaultPref1); | 585 prefs()->pref_service()->RegisterStringPref(kPref1, kDefaultPref1); |
586 prefs()->pref_service()->RegisterStringPref(kPref2, kDefaultPref2); | 586 prefs()->pref_service()->RegisterStringPref(kPref2, kDefaultPref2); |
587 prefs()->pref_service()->RegisterStringPref(kPref3, kDefaultPref3); | 587 prefs()->pref_service()->RegisterStringPref(kPref3, kDefaultPref3); |
588 prefs()->pref_service()->RegisterStringPref(kPref4, kDefaultPref4); | 588 prefs()->pref_service()->RegisterStringPref(kPref4, kDefaultPref4); |
589 } | 589 } |
590 | 590 |
591 void InstallExtControlledPref(Extension *ext, | 591 void InstallExtControlledPref(Extension *ext, |
592 const std::string& key, | 592 const std::string& key, |
593 Value* val) { | 593 Value* val) { |
594 // Install extension the first time a preference is set for it. | 594 EnsureExtensionInstalled(ext); |
| 595 const bool incognito = false; |
| 596 prefs()->SetExtensionControlledPref(ext->id(), key, incognito, val); |
| 597 } |
| 598 |
| 599 void InstallExtControlledPrefIncognito(Extension *ext, |
| 600 const std::string& key, |
| 601 Value* val) { |
| 602 EnsureExtensionInstalled(ext); |
| 603 const bool incognito = true; |
| 604 prefs()->SetExtensionControlledPref(ext->id(), key, incognito, val); |
| 605 } |
| 606 |
| 607 void UninstallExtension(const std::string& extension_id) { |
595 Extension* extensions[] = {ext1_, ext2_, ext3_}; | 608 Extension* extensions[] = {ext1_, ext2_, ext3_}; |
596 for (int i = 0; i < 3; ++i) { | 609 for (int i = 0; i < 3; ++i) { |
597 if (ext == extensions[i] && !installed[i]) { | 610 if (extensions[i]->id() == extension_id) { |
598 prefs()->OnExtensionInstalled(ext, Extension::ENABLED, true); | 611 installed[i] = false; |
599 installed[i] = true; | |
600 break; | 612 break; |
601 } | 613 } |
602 } | 614 } |
603 | |
604 prefs()->SetExtensionControlledPref(ext->id(), key, val); | |
605 } | |
606 | |
607 void UninstallExtension(const std::string& extension_id) { | |
608 prefs()->OnExtensionUninstalled(extension_id, Extension::INTERNAL, false); | 615 prefs()->OnExtensionUninstalled(extension_id, Extension::INTERNAL, false); |
609 } | 616 } |
610 | 617 |
611 // Weak references, for convenience. | 618 // Weak references, for convenience. |
612 Extension* ext1_; | 619 Extension* ext1_; |
613 Extension* ext2_; | 620 Extension* ext2_; |
614 Extension* ext3_; | 621 Extension* ext3_; |
615 | 622 |
616 // Flags indicating whether each of the extensions has been installed, yet. | 623 // Flags indicating whether each of the extensions has been installed, yet. |
617 bool installed[3]; | 624 bool installed[3]; |
618 | 625 |
619 private: | 626 private: |
| 627 void EnsureExtensionInstalled(Extension *ext) { |
| 628 // Install extension the first time a preference is set for it. |
| 629 Extension* extensions[] = {ext1_, ext2_, ext3_}; |
| 630 for (int i = 0; i < 3; ++i) { |
| 631 if (ext == extensions[i] && !installed[i]) { |
| 632 prefs()->OnExtensionInstalled(ext, Extension::ENABLED, true); |
| 633 installed[i] = true; |
| 634 break; |
| 635 } |
| 636 } |
| 637 } |
| 638 |
620 scoped_refptr<Extension> ext1_scoped_; | 639 scoped_refptr<Extension> ext1_scoped_; |
621 scoped_refptr<Extension> ext2_scoped_; | 640 scoped_refptr<Extension> ext2_scoped_; |
622 scoped_refptr<Extension> ext3_scoped_; | 641 scoped_refptr<Extension> ext3_scoped_; |
623 }; | 642 }; |
624 | 643 |
625 class ExtensionPrefsInstallOneExtension | 644 class ExtensionPrefsInstallOneExtension |
626 : public ExtensionPrefsPreferencesBase { | 645 : public ExtensionPrefsPreferencesBase { |
627 virtual void Initialize() { | 646 virtual void Initialize() { |
628 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 647 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
629 } | 648 } |
630 virtual void Verify() { | 649 virtual void Verify() { |
631 std::string actual = prefs()->pref_service()->GetString(kPref1); | 650 std::string actual = prefs()->pref_service()->GetString(kPref1); |
632 EXPECT_EQ("val1", actual); | 651 EXPECT_EQ("val1", actual); |
633 } | 652 } |
634 }; | 653 }; |
635 TEST_F(ExtensionPrefsInstallOneExtension, ExtensionPrefsInstallOneExtension) {} | 654 TEST_F(ExtensionPrefsInstallOneExtension, ExtensionPrefsInstallOneExtension) {} |
636 | 655 |
| 656 // Check that we forget incognito values after a reload. |
| 657 class ExtensionPrefsInstallIncognito |
| 658 : public ExtensionPrefsPreferencesBase { |
| 659 public: |
| 660 ExtensionPrefsInstallIncognito() : iteration(0) {} |
| 661 |
| 662 virtual void Initialize() { |
| 663 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
| 664 InstallExtControlledPrefIncognito(ext1_, kPref1, |
| 665 Value::CreateStringValue("val2")); |
| 666 std::string actual = prefs_.incognito_pref_service()->GetString(kPref1); |
| 667 EXPECT_EQ("val2", actual); |
| 668 } |
| 669 virtual void Verify() { |
| 670 // main pref service shall see only non-incognito settings |
| 671 std::string actual = prefs()->pref_service()->GetString(kPref1); |
| 672 EXPECT_EQ("val1", actual); |
| 673 // incognito pref service shall see incognito values only during first run |
| 674 actual = prefs_.incognito_pref_service()->GetString(kPref1); |
| 675 if (iteration == 0) { |
| 676 EXPECT_EQ("val2", actual); |
| 677 } else { |
| 678 EXPECT_EQ("val1", actual); |
| 679 } |
| 680 ++iteration; |
| 681 } |
| 682 int iteration; |
| 683 }; |
| 684 TEST_F(ExtensionPrefsInstallIncognito, ExtensionPrefsInstallOneExtension) {} |
| 685 |
637 // Make sure the last-installed extension wins for each preference. | 686 // Make sure the last-installed extension wins for each preference. |
638 class ExtensionPrefsInstallOverwrittenExtensions | 687 class ExtensionPrefsInstallOverwrittenExtensions |
639 : public ExtensionPrefsPreferencesBase { | 688 : public ExtensionPrefsPreferencesBase { |
640 virtual void Initialize() { | 689 virtual void Initialize() { |
641 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 690 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
642 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); | 691 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); |
643 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3")); | 692 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3")); |
644 | 693 |
645 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4")); | 694 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4")); |
646 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val5")); | 695 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val5")); |
647 | 696 |
648 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val6")); | 697 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val6")); |
649 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val7")); | 698 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val7")); |
650 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val8")); | 699 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val8")); |
651 } | 700 } |
652 virtual void Verify() { | 701 virtual void Verify() { |
653 std::string actual; | 702 std::string actual; |
654 actual = prefs()->pref_service()->GetString(kPref1); | 703 actual = prefs()->pref_service()->GetString(kPref1); |
655 EXPECT_EQ("val3", actual); | 704 EXPECT_EQ("val3", actual); |
656 actual = prefs()->pref_service()->GetString(kPref2); | 705 actual = prefs()->pref_service()->GetString(kPref2); |
657 EXPECT_EQ("val5", actual); | 706 EXPECT_EQ("val5", actual); |
658 actual = prefs()->pref_service()->GetString(kPref3); | 707 actual = prefs()->pref_service()->GetString(kPref3); |
659 EXPECT_EQ("val8", actual); | 708 EXPECT_EQ("val8", actual); |
660 } | 709 } |
661 }; | 710 }; |
662 TEST_F(ExtensionPrefsInstallOverwrittenExtensions, | 711 TEST_F(ExtensionPrefsInstallOverwrittenExtensions, |
663 ExtensionPrefsInstallOverwrittenExtensions) {} | 712 ExtensionPrefsInstallOverwrittenExtensions) {} |
664 | 713 |
| 714 // Make sure the last-installed extension wins for each preference. |
| 715 class ExtensionPrefsInstallOverwrittenExtensionsIncognito |
| 716 : public ExtensionPrefsPreferencesBase { |
| 717 virtual void Initialize() { |
| 718 const char* strings[] = { |
| 719 kDefaultPref1, |
| 720 "val1", |
| 721 "val2", |
| 722 "val3", |
| 723 "val4" |
| 724 }; |
| 725 int values[][6] = { |
| 726 // columns: |
| 727 // 0: pref value of extension 1 |
| 728 // 1: pref value of extension 1 incognito |
| 729 // 2: pref value of extension 2 |
| 730 // 3: pref value of extension 2 incognito |
| 731 // 4: desired winner regular |
| 732 // 5: desired winner incognito |
| 733 // e.g. { 1, 0, 0, 4, 1, 4}, means: |
| 734 // ext1 regular is set to "val1", ext2 incognito is set to "val4" |
| 735 // --> the winning regular value is "val1", the winning incognito |
| 736 // value is "val4". |
| 737 { 1, 0, 0, 0, 1, 1}, |
| 738 { 1, 2, 0, 0, 1, 2}, |
| 739 { 1, 0, 3, 0, 3, 3}, |
| 740 { 1, 0, 0, 4, 1, 4}, |
| 741 { 1, 2, 3, 0, 3, 3}, // The last 3 here is intentional! |
| 742 { 1, 2, 0, 4, 1, 4}, |
| 743 { 1, 2, 3, 4, 3, 4} |
| 744 }; |
| 745 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
| 746 for (size_t row = 0; row < arraysize(values); ++row) { |
| 747 LOG(INFO) << "Testing row " << row; |
| 748 UninstallExtension(ext1_->id()); |
| 749 UninstallExtension(ext2_->id()); |
| 750 if (values[row][0]) { |
| 751 InstallExtControlledPref( |
| 752 ext1_, kPref1, Value::CreateStringValue(strings[values[row][0]])); |
| 753 } |
| 754 if (values[row][1]) { |
| 755 InstallExtControlledPrefIncognito( |
| 756 ext1_, kPref1, Value::CreateStringValue(strings[values[row][1]])); |
| 757 } |
| 758 if (values[row][2]) { |
| 759 InstallExtControlledPref( |
| 760 ext2_, kPref1, Value::CreateStringValue(strings[values[row][2]])); |
| 761 } |
| 762 if (values[row][3]) { |
| 763 InstallExtControlledPrefIncognito( |
| 764 ext2_, kPref1, Value::CreateStringValue(strings[values[row][3]])); |
| 765 } |
| 766 std::string actual; |
| 767 actual = prefs()->pref_service()->GetString(kPref1); |
| 768 EXPECT_EQ(strings[values[row][4]], actual); |
| 769 actual = prefs_.incognito_pref_service()->GetString(kPref1); |
| 770 EXPECT_EQ(strings[values[row][5]], actual); |
| 771 } |
| 772 } |
| 773 virtual void Verify() {} |
| 774 }; |
| 775 TEST_F(ExtensionPrefsInstallOverwrittenExtensionsIncognito, |
| 776 ExtensionPrefsInstallOverwrittenExtensionsIncognito) {} |
| 777 |
665 // Make sure the last-installed extension wins even if other extensions set | 778 // Make sure the last-installed extension wins even if other extensions set |
666 // the same or different preferences later. | 779 // the same or different preferences later. |
667 class ExtensionPrefsInstallInterleavedExtensions | 780 class ExtensionPrefsInstallInterleavedExtensions |
668 : public ExtensionPrefsPreferencesBase { | 781 : public ExtensionPrefsPreferencesBase { |
669 virtual void Initialize() { | 782 virtual void Initialize() { |
670 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 783 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
671 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val2")); | 784 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val2")); |
672 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val3")); | 785 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val3")); |
673 | 786 |
674 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val4")); | 787 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val4")); |
675 InstallExtControlledPref(ext2_, kPref3, Value::CreateStringValue("val5")); | 788 InstallExtControlledPref(ext2_, kPref3, Value::CreateStringValue("val5")); |
676 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val6")); | 789 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val6")); |
677 | 790 |
678 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val7")); | 791 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val7")); |
679 } | 792 } |
680 virtual void Verify() { | 793 virtual void Verify() { |
681 std::string actual; | 794 std::string actual; |
682 actual = prefs()->pref_service()->GetString(kPref1); | 795 actual = prefs()->pref_service()->GetString(kPref1); |
683 EXPECT_EQ("val7", actual); | 796 EXPECT_EQ("val7", actual); |
| 797 actual = prefs_.incognito_pref_service()->GetString(kPref1); |
| 798 EXPECT_EQ("val7", actual); |
684 actual = prefs()->pref_service()->GetString(kPref2); | 799 actual = prefs()->pref_service()->GetString(kPref2); |
685 EXPECT_EQ("val2", actual); | 800 EXPECT_EQ("val2", actual); |
| 801 actual = prefs_.incognito_pref_service()->GetString(kPref2); |
| 802 EXPECT_EQ("val2", actual); |
686 actual = prefs()->pref_service()->GetString(kPref3); | 803 actual = prefs()->pref_service()->GetString(kPref3); |
687 EXPECT_EQ("val4", actual); | 804 EXPECT_EQ("val4", actual); |
| 805 actual = prefs_.incognito_pref_service()->GetString(kPref3); |
| 806 EXPECT_EQ("val4", actual); |
688 } | 807 } |
689 }; | 808 }; |
690 TEST_F(ExtensionPrefsInstallInterleavedExtensions, | 809 TEST_F(ExtensionPrefsInstallInterleavedExtensions, |
691 ExtensionPrefsInstallInterleavedExtensions) {} | 810 ExtensionPrefsInstallInterleavedExtensions) {} |
692 | 811 |
693 class ExtensionPrefsUninstallOnlyExtension | 812 class ExtensionPrefsUninstallOnlyExtension |
694 : public ExtensionPrefsPreferencesBase { | 813 : public ExtensionPrefsPreferencesBase { |
695 virtual void Initialize() { | 814 virtual void Initialize() { |
696 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 815 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
697 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val2")); | 816 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val2")); |
(...skipping 30 matching lines...) Expand all Loading... |
728 actual = prefs()->pref_service()->GetString(kPref2); | 847 actual = prefs()->pref_service()->GetString(kPref2); |
729 EXPECT_EQ("val4", actual); | 848 EXPECT_EQ("val4", actual); |
730 } | 849 } |
731 }; | 850 }; |
732 TEST_F(ExtensionPrefsUninstallIrrelevantExtension, | 851 TEST_F(ExtensionPrefsUninstallIrrelevantExtension, |
733 ExtensionPrefsUninstallIrrelevantExtension) {} | 852 ExtensionPrefsUninstallIrrelevantExtension) {} |
734 | 853 |
735 // Tests uninstalling an extension that was winning for all preferences. | 854 // Tests uninstalling an extension that was winning for all preferences. |
736 class ExtensionPrefsUninstallExtensionFromTop | 855 class ExtensionPrefsUninstallExtensionFromTop |
737 : public ExtensionPrefsPreferencesBase { | 856 : public ExtensionPrefsPreferencesBase { |
| 857 public: |
| 858 ExtensionPrefsUninstallExtensionFromTop() : iteration(0) {} |
| 859 |
738 virtual void Initialize() { | 860 virtual void Initialize() { |
739 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 861 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
| 862 InstallExtControlledPrefIncognito(ext1_, kPref1, |
| 863 Value::CreateStringValue("val1i")); |
740 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); | 864 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); |
| 865 InstallExtControlledPrefIncognito(ext2_, kPref1, |
| 866 Value::CreateStringValue("val2i")); |
741 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3")); | 867 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3")); |
| 868 InstallExtControlledPrefIncognito(ext3_, kPref1, |
| 869 Value::CreateStringValue("val3i")); |
742 | 870 |
743 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4")); | 871 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4")); |
| 872 InstallExtControlledPrefIncognito(ext1_, kPref2, |
| 873 Value::CreateStringValue("val4i")); |
744 InstallExtControlledPref(ext3_, kPref2, Value::CreateStringValue("val5")); | 874 InstallExtControlledPref(ext3_, kPref2, Value::CreateStringValue("val5")); |
| 875 InstallExtControlledPrefIncognito(ext3_, kPref2, |
| 876 Value::CreateStringValue("val5i")); |
745 | 877 |
746 UninstallExtension(ext3_->id()); | 878 UninstallExtension(ext3_->id()); |
747 } | 879 } |
748 virtual void Verify() { | 880 virtual void Verify() { |
749 std::string actual; | 881 std::string actual; |
750 actual = prefs()->pref_service()->GetString(kPref1); | 882 actual = prefs()->pref_service()->GetString(kPref1); |
751 EXPECT_EQ("val2", actual); | 883 EXPECT_EQ("val2", actual); |
752 actual = prefs()->pref_service()->GetString(kPref2); | 884 actual = prefs()->pref_service()->GetString(kPref2); |
753 EXPECT_EQ("val4", actual); | 885 EXPECT_EQ("val4", actual); |
| 886 // After the reload (iteration == 1) all incognito settings are forgotten. |
| 887 actual = prefs_.incognito_pref_service()->GetString(kPref1); |
| 888 EXPECT_EQ((iteration == 0 ? "val2i" : "val2"), actual); |
| 889 actual = prefs_.incognito_pref_service()->GetString(kPref2); |
| 890 EXPECT_EQ((iteration == 0 ? "val4i" : "val4"), actual); |
| 891 ++iteration; |
754 } | 892 } |
| 893 int iteration; |
755 }; | 894 }; |
756 TEST_F(ExtensionPrefsUninstallExtensionFromTop, | 895 TEST_F(ExtensionPrefsUninstallExtensionFromTop, |
757 ExtensionPrefsUninstallExtensionFromTop) {} | 896 ExtensionPrefsUninstallExtensionFromTop) {} |
758 | 897 |
759 // Tests uninstalling an extension that was winning for only some preferences. | 898 // Tests uninstalling an extension that was winning for only some preferences. |
760 class ExtensionPrefsUninstallExtensionFromMiddle | 899 class ExtensionPrefsUninstallExtensionFromMiddle |
761 : public ExtensionPrefsPreferencesBase { | 900 : public ExtensionPrefsPreferencesBase { |
762 virtual void Initialize() { | 901 virtual void Initialize() { |
763 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); | 902 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
764 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); | 903 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2")); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
869 } | 1008 } |
870 MOCK_METHOD0(Die, void()); | 1009 MOCK_METHOD0(Die, void()); |
871 }; | 1010 }; |
872 | 1011 |
873 class ExtensionPrefsSetExtensionControlledPref | 1012 class ExtensionPrefsSetExtensionControlledPref |
874 : public ExtensionPrefsPreferencesBase { | 1013 : public ExtensionPrefsPreferencesBase { |
875 public: | 1014 public: |
876 virtual void Initialize() { | 1015 virtual void Initialize() { |
877 MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); | 1016 MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); |
878 MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); | 1017 MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); |
| 1018 MockStringValue* v1i = new MockStringValue("https://www.chromium.org"); |
| 1019 MockStringValue* v2i = new MockStringValue("https://www.chromium.org"); |
879 // Ownership is taken, value shall not be deleted. | 1020 // Ownership is taken, value shall not be deleted. |
880 EXPECT_CALL(*v1, Die()).Times(0); | 1021 EXPECT_CALL(*v1, Die()).Times(0); |
| 1022 EXPECT_CALL(*v1i, Die()).Times(0); |
881 InstallExtControlledPref(ext1_, kPref1, v1); | 1023 InstallExtControlledPref(ext1_, kPref1, v1); |
| 1024 InstallExtControlledPrefIncognito(ext1_, kPref1, v1i); |
882 testing::Mock::VerifyAndClearExpectations(v1); | 1025 testing::Mock::VerifyAndClearExpectations(v1); |
| 1026 testing::Mock::VerifyAndClearExpectations(v1i); |
883 // Make sure there is no memory leak and both values are deleted. | 1027 // Make sure there is no memory leak and both values are deleted. |
| 1028 EXPECT_CALL(*v1, Die()).Times(1); |
| 1029 EXPECT_CALL(*v1i, Die()).Times(1); |
884 EXPECT_CALL(*v2, Die()).Times(1); | 1030 EXPECT_CALL(*v2, Die()).Times(1); |
885 EXPECT_CALL(*v1, Die()).Times(1); | 1031 EXPECT_CALL(*v2i, Die()).Times(1); |
886 InstallExtControlledPref(ext1_, kPref1, v2); | 1032 InstallExtControlledPref(ext1_, kPref1, v2); |
| 1033 InstallExtControlledPrefIncognito(ext1_, kPref1, v2i); |
887 prefs_.RecreateExtensionPrefs(); | 1034 prefs_.RecreateExtensionPrefs(); |
| 1035 testing::Mock::VerifyAndClearExpectations(v1); |
| 1036 testing::Mock::VerifyAndClearExpectations(v1i); |
| 1037 testing::Mock::VerifyAndClearExpectations(v2); |
| 1038 testing::Mock::VerifyAndClearExpectations(v2i); |
888 } | 1039 } |
889 | 1040 |
890 virtual void Verify() { | 1041 virtual void Verify() { |
891 } | 1042 } |
892 }; | 1043 }; |
893 TEST_F(ExtensionPrefsSetExtensionControlledPref, | 1044 TEST_F(ExtensionPrefsSetExtensionControlledPref, |
894 ExtensionPrefsSetExtensionControlledPref) {} | 1045 ExtensionPrefsSetExtensionControlledPref) {} |
OLD | NEW |