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

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

Powered by Google App Engine
This is Rietveld 408576698