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

Side by Side Diff: chrome/browser/extensions/extension_prefs_unittest.cc

Issue 5915004: Introduce incognito preference settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed whitespaces in mac files Created 9 years, 11 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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"
11 #include "chrome/browser/extensions/extension_prefs.h" 11 #include "chrome/browser/extensions/extension_prefs.h"
12 #include "chrome/browser/extensions/test_extension_prefs.h" 12 #include "chrome/browser/extensions/test_extension_prefs.h"
13 #include "chrome/browser/prefs/pref_change_registrar.h" 13 #include "chrome/browser/prefs/pref_change_registrar.h"
14 #include "chrome/common/chrome_paths.h" 14 #include "chrome/common/chrome_paths.h"
15 #include "chrome/common/extensions/extension_constants.h" 15 #include "chrome/common/extensions/extension_constants.h"
16 #include "chrome/common/notification_details.h" 16 #include "chrome/common/notification_details.h"
17 #include "chrome/common/notification_observer_mock.h" 17 #include "chrome/common/notification_observer_mock.h"
18 #include "chrome/common/notification_source.h" 18 #include "chrome/common/notification_source.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 using base::Time; 21 using base::Time;
22 using base::TimeDelta; 22 using base::TimeDelta;
23 23
24 namespace {
25
24 const char kPref1[] = "path1.subpath"; 26 const char kPref1[] = "path1.subpath";
25 const char kPref2[] = "path2"; 27 const char kPref2[] = "path2";
26 const char kPref3[] = "path3"; 28 const char kPref3[] = "path3";
27 const char kPref4[] = "path4"; 29 const char kPref4[] = "path4";
28 30
29 // Default values in case an extension pref value is not overridden. 31 // Default values in case an extension pref value is not overridden.
30 const char kDefaultPref1[] = "default pref 1"; 32 const char kDefaultPref1[] = "default pref 1";
31 const char kDefaultPref2[] = "default pref 2"; 33 const char kDefaultPref2[] = "default pref 2";
32 const char kDefaultPref3[] = "default pref 3"; 34 const char kDefaultPref3[] = "default pref 3";
33 const char kDefaultPref4[] = "default pref 4"; 35 const char kDefaultPref4[] = "default pref 4";
34 36
37 } // namespace
38
35 static void AddPattern(ExtensionExtent* extent, const std::string& pattern) { 39 static void AddPattern(ExtensionExtent* extent, const std::string& pattern) {
36 int schemes = URLPattern::SCHEME_ALL; 40 int schemes = URLPattern::SCHEME_ALL;
37 extent->AddPattern(URLPattern(schemes, pattern)); 41 extent->AddPattern(URLPattern(schemes, pattern));
38 } 42 }
39 43
40 static void AssertEqualExtents(ExtensionExtent* extent1, 44 static void AssertEqualExtents(ExtensionExtent* extent1,
41 ExtensionExtent* extent2) { 45 ExtensionExtent* extent2) {
42 std::vector<URLPattern> patterns1 = extent1->patterns(); 46 std::vector<URLPattern> patterns1 = extent1->patterns();
43 std::vector<URLPattern> patterns2 = extent2->patterns(); 47 std::vector<URLPattern> patterns2 = extent2->patterns();
44 std::set<std::string> strings1; 48 std::set<std::string> strings1;
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 void RegisterPreferences() { 587 void RegisterPreferences() {
584 prefs()->pref_service()->RegisterStringPref(kPref1, kDefaultPref1); 588 prefs()->pref_service()->RegisterStringPref(kPref1, kDefaultPref1);
585 prefs()->pref_service()->RegisterStringPref(kPref2, kDefaultPref2); 589 prefs()->pref_service()->RegisterStringPref(kPref2, kDefaultPref2);
586 prefs()->pref_service()->RegisterStringPref(kPref3, kDefaultPref3); 590 prefs()->pref_service()->RegisterStringPref(kPref3, kDefaultPref3);
587 prefs()->pref_service()->RegisterStringPref(kPref4, kDefaultPref4); 591 prefs()->pref_service()->RegisterStringPref(kPref4, kDefaultPref4);
588 } 592 }
589 593
590 void InstallExtControlledPref(Extension *ext, 594 void InstallExtControlledPref(Extension *ext,
591 const std::string& key, 595 const std::string& key,
592 Value* val) { 596 Value* val) {
593 // Install extension the first time a preference is set for it. 597 EnsureExtensionInstalled(ext);
594 Extension* extensions[] = {ext1_, ext2_, ext3_}; 598 prefs()->SetExtensionControlledPref(ext->id(), key, false, val);
595 for (int i = 0; i < 3; ++i) { 599 }
596 if (ext == extensions[i] && !installed[i]) {
597 prefs()->OnExtensionInstalled(ext, Extension::ENABLED, true);
598 installed[i] = true;
599 break;
600 }
601 }
602 600
603 prefs()->SetExtensionControlledPref(ext->id(), key, val); 601 void InstallExtControlledPrefIncognito(Extension *ext,
602 const std::string& key,
603 Value* val) {
604 EnsureExtensionInstalled(ext);
605 prefs()->SetExtensionControlledPref(ext->id(), key, true, val);
606 }
607
608 void InstallExtension(Extension *ext) {
609 EnsureExtensionInstalled(ext);
604 } 610 }
605 611
606 void UninstallExtension(const std::string& extension_id) { 612 void UninstallExtension(const std::string& extension_id) {
607 prefs()->OnExtensionUninstalled(extension_id, Extension::INTERNAL, false); 613 EnsureExtensionUninstalled(extension_id);
608 } 614 }
609 615
610 // Weak references, for convenience. 616 // Weak references, for convenience.
611 Extension* ext1_; 617 Extension* ext1_;
612 Extension* ext2_; 618 Extension* ext2_;
613 Extension* ext3_; 619 Extension* ext3_;
614 620
615 // Flags indicating whether each of the extensions has been installed, yet. 621 // Flags indicating whether each of the extensions has been installed, yet.
616 bool installed[3]; 622 bool installed[3];
617 623
618 private: 624 private:
625 void EnsureExtensionInstalled(Extension *ext) {
626 // Install extension the first time a preference is set for it.
627 Extension* extensions[] = {ext1_, ext2_, ext3_};
628 for (int i = 0; i < 3; ++i) {
629 if (ext == extensions[i] && !installed[i]) {
630 prefs()->OnExtensionInstalled(ext, Extension::ENABLED, true);
631 installed[i] = true;
632 break;
633 }
634 }
635 }
636
637 void EnsureExtensionUninstalled(const std::string& extension_id) {
638 Extension* extensions[] = {ext1_, ext2_, ext3_};
639 for (int i = 0; i < 3; ++i) {
640 if (extensions[i]->id() == extension_id) {
641 installed[i] = false;
642 break;
643 }
644 }
645 prefs()->OnExtensionUninstalled(extension_id, Extension::INTERNAL, false);
646 }
647
619 scoped_refptr<Extension> ext1_scoped_; 648 scoped_refptr<Extension> ext1_scoped_;
620 scoped_refptr<Extension> ext2_scoped_; 649 scoped_refptr<Extension> ext2_scoped_;
621 scoped_refptr<Extension> ext3_scoped_; 650 scoped_refptr<Extension> ext3_scoped_;
622 }; 651 };
623 652
624 class ExtensionPrefsInstallOneExtension 653 class ExtensionPrefsInstallOneExtension
625 : public ExtensionPrefsPreferencesBase { 654 : public ExtensionPrefsPreferencesBase {
626 virtual void Initialize() { 655 virtual void Initialize() {
627 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); 656 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
628 } 657 }
629 virtual void Verify() { 658 virtual void Verify() {
630 std::string actual = prefs()->pref_service()->GetString(kPref1); 659 std::string actual = prefs()->pref_service()->GetString(kPref1);
631 EXPECT_EQ("val1", actual); 660 EXPECT_EQ("val1", actual);
632 } 661 }
633 }; 662 };
634 TEST_F(ExtensionPrefsInstallOneExtension, ExtensionPrefsInstallOneExtension) {} 663 TEST_F(ExtensionPrefsInstallOneExtension, ExtensionPrefsInstallOneExtension) {}
635 664
636 // Make sure the last-installed extension wins for each preference. 665 // Check that we forget incognito values after a reload.
637 class ExtensionPrefsInstallOverwrittenExtensions 666 class ExtensionPrefsInstallIncognito
667 : public ExtensionPrefsPreferencesBase {
668 public:
669 ExtensionPrefsInstallIncognito() : iteration_(0) {}
670
671 virtual void Initialize() {
672 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
673 InstallExtControlledPrefIncognito(ext1_, kPref1,
674 Value::CreateStringValue("val2"));
675 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
676 std::string actual = incog_prefs->GetString(kPref1);
677 EXPECT_EQ("val2", actual);
678 }
679 virtual void Verify() {
680 // Main pref service shall see only non-incognito settings.
681 std::string actual = prefs()->pref_service()->GetString(kPref1);
682 EXPECT_EQ("val1", actual);
683 // Incognito pref service shall see incognito values only during first run.
684 // Once the pref service was reloaded, all values shall be discarded.
685 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
686 actual = incog_prefs->GetString(kPref1);
687 if (iteration_ == 0) {
688 EXPECT_EQ("val2", actual);
689 } else {
690 EXPECT_EQ("val1", actual);
691 }
692 ++iteration_;
693 }
694 int iteration_;
695 };
696 TEST_F(ExtensionPrefsInstallIncognito, ExtensionPrefsInstallOneExtension) {}
697
698 class ExtensionPrefsUninstallExtension
638 : public ExtensionPrefsPreferencesBase { 699 : public ExtensionPrefsPreferencesBase {
639 virtual void Initialize() { 700 virtual void Initialize() {
640 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); 701 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
641 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2"));
642 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3"));
643
644 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4"));
645 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val5"));
646
647 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val6"));
648 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val7"));
649 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val8"));
650 }
651 virtual void Verify() {
652 std::string actual;
653 actual = prefs()->pref_service()->GetString(kPref1);
654 EXPECT_EQ("val3", actual);
655 actual = prefs()->pref_service()->GetString(kPref2);
656 EXPECT_EQ("val5", actual);
657 actual = prefs()->pref_service()->GetString(kPref3);
658 EXPECT_EQ("val8", actual);
659 }
660 };
661 TEST_F(ExtensionPrefsInstallOverwrittenExtensions,
662 ExtensionPrefsInstallOverwrittenExtensions) {}
663
664 // Make sure the last-installed extension wins even if other extensions set
665 // the same or different preferences later.
666 class ExtensionPrefsInstallInterleavedExtensions
667 : public ExtensionPrefsPreferencesBase {
668 virtual void Initialize() {
669 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
670 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val2"));
671 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val3"));
672
673 InstallExtControlledPref(ext3_, kPref3, Value::CreateStringValue("val4"));
674 InstallExtControlledPref(ext2_, kPref3, Value::CreateStringValue("val5"));
675 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val6"));
676
677 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val7"));
678 }
679 virtual void Verify() {
680 std::string actual;
681 actual = prefs()->pref_service()->GetString(kPref1);
682 EXPECT_EQ("val7", actual);
683 actual = prefs()->pref_service()->GetString(kPref2);
684 EXPECT_EQ("val2", actual);
685 actual = prefs()->pref_service()->GetString(kPref3);
686 EXPECT_EQ("val4", actual);
687 }
688 };
689 TEST_F(ExtensionPrefsInstallInterleavedExtensions,
690 ExtensionPrefsInstallInterleavedExtensions) {}
691
692 class ExtensionPrefsUninstallOnlyExtension
693 : public ExtensionPrefsPreferencesBase {
694 virtual void Initialize() {
695 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
696 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val2")); 702 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val2"));
697 703
698 UninstallExtension(ext1_->id()); 704 UninstallExtension(ext1_->id());
699 } 705 }
700 virtual void Verify() { 706 virtual void Verify() {
701 std::string actual; 707 std::string actual;
702 actual = prefs()->pref_service()->GetString(kPref1); 708 actual = prefs()->pref_service()->GetString(kPref1);
703 EXPECT_EQ(kDefaultPref1, actual); 709 EXPECT_EQ(kDefaultPref1, actual);
704 actual = prefs()->pref_service()->GetString(kPref2); 710 actual = prefs()->pref_service()->GetString(kPref2);
705 EXPECT_EQ(kDefaultPref2, actual); 711 EXPECT_EQ(kDefaultPref2, actual);
706 } 712 }
707 }; 713 };
708 TEST_F(ExtensionPrefsUninstallOnlyExtension, 714 TEST_F(ExtensionPrefsUninstallExtension,
709 ExtensionPrefsUninstallOnlyExtension) {} 715 ExtensionPrefsUninstallExtension) {}
710 716
711 // Tests uninstalling an extension that wasn't winning for any preferences. 717 // Tests triggering of notifications to registered observers.
712 class ExtensionPrefsUninstallIrrelevantExtension
713 : public ExtensionPrefsPreferencesBase {
714 virtual void Initialize() {
715 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
716 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2"));
717
718 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val3"));
719 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val4"));
720
721 UninstallExtension(ext1_->id());
722 }
723 virtual void Verify() {
724 std::string actual;
725 actual = prefs()->pref_service()->GetString(kPref1);
726 EXPECT_EQ("val2", actual);
727 actual = prefs()->pref_service()->GetString(kPref2);
728 EXPECT_EQ("val4", actual);
729 }
730 };
731 TEST_F(ExtensionPrefsUninstallIrrelevantExtension,
732 ExtensionPrefsUninstallIrrelevantExtension) {}
733
734 // Tests uninstalling an extension that was winning for all preferences.
735 class ExtensionPrefsUninstallExtensionFromTop
736 : public ExtensionPrefsPreferencesBase {
737 virtual void Initialize() {
738 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
739 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2"));
740 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3"));
741
742 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4"));
743 InstallExtControlledPref(ext3_, kPref2, Value::CreateStringValue("val5"));
744
745 UninstallExtension(ext3_->id());
746 }
747 virtual void Verify() {
748 std::string actual;
749 actual = prefs()->pref_service()->GetString(kPref1);
750 EXPECT_EQ("val2", actual);
751 actual = prefs()->pref_service()->GetString(kPref2);
752 EXPECT_EQ("val4", actual);
753 }
754 };
755 TEST_F(ExtensionPrefsUninstallExtensionFromTop,
756 ExtensionPrefsUninstallExtensionFromTop) {}
757
758 // Tests uninstalling an extension that was winning for only some preferences.
759 class ExtensionPrefsUninstallExtensionFromMiddle
760 : public ExtensionPrefsPreferencesBase {
761 virtual void Initialize() {
762 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
763 InstallExtControlledPref(ext2_, kPref1, Value::CreateStringValue("val2"));
764 InstallExtControlledPref(ext3_, kPref1, Value::CreateStringValue("val3"));
765
766 InstallExtControlledPref(ext1_, kPref2, Value::CreateStringValue("val4"));
767 InstallExtControlledPref(ext2_, kPref2, Value::CreateStringValue("val5"));
768
769 InstallExtControlledPref(ext1_, kPref3, Value::CreateStringValue("val6"));
770
771 InstallExtControlledPref(ext2_, kPref4, Value::CreateStringValue("val7"));
772
773 UninstallExtension(ext2_->id());
774 }
775 virtual void Verify() {
776 std::string actual;
777 actual = prefs()->pref_service()->GetString(kPref1);
778 EXPECT_EQ("val3", actual);
779 actual = prefs()->pref_service()->GetString(kPref2);
780 EXPECT_EQ("val4", actual);
781 actual = prefs()->pref_service()->GetString(kPref3);
782 EXPECT_EQ("val6", actual);
783 actual = prefs()->pref_service()->GetString(kPref4);
784 EXPECT_EQ(kDefaultPref4, actual);
785 }
786 };
787 TEST_F(ExtensionPrefsUninstallExtensionFromMiddle,
788 ExtensionPrefsUninstallExtensionFromMiddle) {}
789
790 // Tests triggering of notifications to registered observers
791 class ExtensionPrefsNotifyWhenNeeded 718 class ExtensionPrefsNotifyWhenNeeded
792 : public ExtensionPrefsPreferencesBase { 719 : public ExtensionPrefsPreferencesBase {
793 virtual void Initialize() { 720 virtual void Initialize() {
794 using testing::_; 721 using testing::_;
795 using testing::Mock; 722 using testing::Mock;
796 using testing::StrEq; 723 using testing::StrEq;
797 724
798 scoped_ptr<NotificationObserverMock> observer( 725 NotificationObserverMock observer;
799 new NotificationObserverMock());
800 PrefChangeRegistrar registrar; 726 PrefChangeRegistrar registrar;
801 registrar.Init(prefs()->pref_service()); 727 registrar.Init(prefs()->pref_service());
802 registrar.Add(kPref1, observer.get()); 728 registrar.Add(kPref1, &observer);
803 729
804 EXPECT_CALL(*observer, Observe(_, _, _)); 730 NotificationObserverMock incognito_observer;
731 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
732 PrefChangeRegistrar incognito_registrar;
733 incognito_registrar.Init(incog_prefs.get());
734 incognito_registrar.Add(kPref1, &incognito_observer);
735
736 // Write value and check notification.
737 EXPECT_CALL(observer, Observe(_, _, _));
738 EXPECT_CALL(incognito_observer, Observe(_, _, _));
805 InstallExtControlledPref(ext1_, kPref1, 739 InstallExtControlledPref(ext1_, kPref1,
806 Value::CreateStringValue("https://www.chromium.org")); 740 Value::CreateStringValue("https://www.chromium.org"));
807 Mock::VerifyAndClearExpectations(observer.get()); 741 Mock::VerifyAndClearExpectations(&observer);
742 Mock::VerifyAndClearExpectations(&incognito_observer);
808 743
809 EXPECT_CALL(*observer, Observe(_, _, _)).Times(0); 744 // Write same value.
745 EXPECT_CALL(observer, Observe(_, _, _)).Times(0);
746 EXPECT_CALL(incognito_observer, Observe(_, _, _)).Times(0);
810 InstallExtControlledPref(ext1_, kPref1, 747 InstallExtControlledPref(ext1_, kPref1,
811 Value::CreateStringValue("https://www.chromium.org")); 748 Value::CreateStringValue("https://www.chromium.org"));
812 Mock::VerifyAndClearExpectations(observer.get()); 749 Mock::VerifyAndClearExpectations(&observer);
750 Mock::VerifyAndClearExpectations(&incognito_observer);
813 751
814 EXPECT_CALL(*observer, Observe(_, _, _)).Times(2); 752 // Change value.
753 EXPECT_CALL(observer, Observe(_, _, _));
754 EXPECT_CALL(incognito_observer, Observe(_, _, _));
815 InstallExtControlledPref(ext1_, kPref1, 755 InstallExtControlledPref(ext1_, kPref1,
816 Value::CreateStringValue("chrome://newtab")); 756 Value::CreateStringValue("chrome://newtab"));
757 Mock::VerifyAndClearExpectations(&observer);
758 Mock::VerifyAndClearExpectations(&incognito_observer);
817 759
760 // Change only incognito value.
761 EXPECT_CALL(observer, Observe(_, _, _)).Times(0);
762 EXPECT_CALL(incognito_observer, Observe(_, _, _));
763 InstallExtControlledPrefIncognito(ext1_, kPref1,
764 Value::CreateStringValue("chrome://newtab2"));
765 Mock::VerifyAndClearExpectations(&observer);
766 Mock::VerifyAndClearExpectations(&incognito_observer);
767
768 // Uninstall.
769 EXPECT_CALL(observer, Observe(_, _, _));
770 EXPECT_CALL(incognito_observer, Observe(_, _, _));
818 UninstallExtension(ext1_->id()); 771 UninstallExtension(ext1_->id());
819 registrar.Remove(kPref1, observer.get()); 772 Mock::VerifyAndClearExpectations(&observer);
773 Mock::VerifyAndClearExpectations(&incognito_observer);
774
775 registrar.Remove(kPref1, &observer);
776 incognito_registrar.Remove(kPref1, &incognito_observer);
820 } 777 }
821 virtual void Verify() { 778 virtual void Verify() {
822 std::string actual = prefs()->pref_service()->GetString(kPref1); 779 std::string actual = prefs()->pref_service()->GetString(kPref1);
823 EXPECT_EQ(kDefaultPref1, actual); 780 EXPECT_EQ(kDefaultPref1, actual);
824 } 781 }
825 }; 782 };
826 TEST_F(ExtensionPrefsNotifyWhenNeeded, 783 TEST_F(ExtensionPrefsNotifyWhenNeeded,
827 ExtensionPrefsNotifyWhenNeeded) {} 784 ExtensionPrefsNotifyWhenNeeded) {}
828 785
829 // Tests disabling an extension 786 // Tests disabling an extension.
830 class ExtensionPrefsDisableExt 787 class ExtensionPrefsDisableExt
831 : public ExtensionPrefsPreferencesBase { 788 : public ExtensionPrefsPreferencesBase {
832 virtual void Initialize() { 789 virtual void Initialize() {
833 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); 790 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
834 std::string actual = prefs()->pref_service()->GetString(kPref1); 791 std::string actual = prefs()->pref_service()->GetString(kPref1);
835 EXPECT_EQ("val1", actual); 792 EXPECT_EQ("val1", actual);
836 prefs()->SetExtensionState(ext1_, Extension::DISABLED); 793 prefs()->SetExtensionState(ext1_, Extension::DISABLED);
837 } 794 }
838 virtual void Verify() { 795 virtual void Verify() {
839 std::string actual = prefs()->pref_service()->GetString(kPref1); 796 std::string actual = prefs()->pref_service()->GetString(kPref1);
840 EXPECT_EQ(kDefaultPref1, actual); 797 EXPECT_EQ(kDefaultPref1, actual);
841 } 798 }
842 }; 799 };
843 TEST_F(ExtensionPrefsDisableExt, ExtensionPrefsDisableExt) {} 800 TEST_F(ExtensionPrefsDisableExt, ExtensionPrefsDisableExt) {}
844 801
845 // Tests disabling and reenabling an extension 802 // Tests disabling and reenabling an extension.
846 class ExtensionPrefsReenableExt 803 class ExtensionPrefsReenableExt
847 : public ExtensionPrefsPreferencesBase { 804 : public ExtensionPrefsPreferencesBase {
848 virtual void Initialize() { 805 virtual void Initialize() {
849 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); 806 InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1"));
850 prefs()->SetExtensionState(ext1_, Extension::DISABLED); 807 prefs()->SetExtensionState(ext1_, Extension::DISABLED);
851 prefs()->SetExtensionState(ext1_, Extension::ENABLED); 808 prefs()->SetExtensionState(ext1_, Extension::ENABLED);
852 } 809 }
853 virtual void Verify() { 810 virtual void Verify() {
854 std::string actual = prefs()->pref_service()->GetString(kPref1); 811 std::string actual = prefs()->pref_service()->GetString(kPref1);
855 EXPECT_EQ("val1", actual); 812 EXPECT_EQ("val1", actual);
(...skipping 12 matching lines...) Expand all
868 } 825 }
869 MOCK_METHOD0(Die, void()); 826 MOCK_METHOD0(Die, void());
870 }; 827 };
871 828
872 class ExtensionPrefsSetExtensionControlledPref 829 class ExtensionPrefsSetExtensionControlledPref
873 : public ExtensionPrefsPreferencesBase { 830 : public ExtensionPrefsPreferencesBase {
874 public: 831 public:
875 virtual void Initialize() { 832 virtual void Initialize() {
876 MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); 833 MockStringValue* v1 = new MockStringValue("https://www.chromium.org");
877 MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); 834 MockStringValue* v2 = new MockStringValue("https://www.chromium.org");
835 MockStringValue* v1i = new MockStringValue("https://www.chromium.org");
836 MockStringValue* v2i = new MockStringValue("https://www.chromium.org");
878 // Ownership is taken, value shall not be deleted. 837 // Ownership is taken, value shall not be deleted.
879 EXPECT_CALL(*v1, Die()).Times(0); 838 EXPECT_CALL(*v1, Die()).Times(0);
839 EXPECT_CALL(*v1i, Die()).Times(0);
880 InstallExtControlledPref(ext1_, kPref1, v1); 840 InstallExtControlledPref(ext1_, kPref1, v1);
841 InstallExtControlledPrefIncognito(ext1_, kPref1, v1i);
881 testing::Mock::VerifyAndClearExpectations(v1); 842 testing::Mock::VerifyAndClearExpectations(v1);
843 testing::Mock::VerifyAndClearExpectations(v1i);
882 // Make sure there is no memory leak and both values are deleted. 844 // Make sure there is no memory leak and both values are deleted.
845 EXPECT_CALL(*v1, Die()).Times(1);
846 EXPECT_CALL(*v1i, Die()).Times(1);
883 EXPECT_CALL(*v2, Die()).Times(1); 847 EXPECT_CALL(*v2, Die()).Times(1);
884 EXPECT_CALL(*v1, Die()).Times(1); 848 EXPECT_CALL(*v2i, Die()).Times(1);
885 InstallExtControlledPref(ext1_, kPref1, v2); 849 InstallExtControlledPref(ext1_, kPref1, v2);
850 InstallExtControlledPrefIncognito(ext1_, kPref1, v2i);
886 prefs_.RecreateExtensionPrefs(); 851 prefs_.RecreateExtensionPrefs();
852 testing::Mock::VerifyAndClearExpectations(v1);
853 testing::Mock::VerifyAndClearExpectations(v1i);
854 testing::Mock::VerifyAndClearExpectations(v2);
855 testing::Mock::VerifyAndClearExpectations(v2i);
887 } 856 }
888 857
889 virtual void Verify() { 858 virtual void Verify() {
890 } 859 }
891 }; 860 };
892 TEST_F(ExtensionPrefsSetExtensionControlledPref, 861 TEST_F(ExtensionPrefsSetExtensionControlledPref,
893 ExtensionPrefsSetExtensionControlledPref) {} 862 ExtensionPrefsSetExtensionControlledPref) {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698