OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/extension_sorting.h" | 5 #include "chrome/browser/extensions/extension_sorting.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "chrome/browser/extensions/extension_prefs_unittest.h" | 9 #include "chrome/browser/extensions/extension_prefs_unittest.h" |
10 #include "chrome/common/extensions/extension_manifest_constants.h" | 10 #include "chrome/common/extensions/extension_manifest_constants.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 return prefs()->extension_sorting(); | 21 return prefs()->extension_sorting(); |
22 } | 22 } |
23 }; | 23 }; |
24 | 24 |
25 class ExtensionSortingAppLocation : public ExtensionSortingTest { | 25 class ExtensionSortingAppLocation : public ExtensionSortingTest { |
26 public: | 26 public: |
27 virtual void Initialize() OVERRIDE { | 27 virtual void Initialize() OVERRIDE { |
28 extension_ = prefs_.AddExtension("not_an_app"); | 28 extension_ = prefs_.AddExtension("not_an_app"); |
29 // Non-apps should not have any app launch ordinal or page ordinal. | 29 // Non-apps should not have any app launch ordinal or page ordinal. |
30 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, | 30 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, |
31 false, syncer::StringOrdinal()); | 31 syncer::StringOrdinal()); |
32 } | 32 } |
33 | 33 |
34 virtual void Verify() OVERRIDE { | 34 virtual void Verify() OVERRIDE { |
35 EXPECT_FALSE( | 35 EXPECT_FALSE( |
36 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); | 36 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); |
37 EXPECT_FALSE( | 37 EXPECT_FALSE( |
38 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid()); | 38 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid()); |
39 } | 39 } |
40 | 40 |
41 private: | 41 private: |
42 scoped_refptr<Extension> extension_; | 42 scoped_refptr<Extension> extension_; |
43 }; | 43 }; |
44 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {} | 44 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {} |
45 | 45 |
46 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { | 46 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { |
47 public: | 47 public: |
48 virtual void Initialize() OVERRIDE { | 48 virtual void Initialize() OVERRIDE { |
49 // No extensions yet. | 49 // No extensions yet. |
50 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); | 50 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); |
51 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( | 51 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( |
52 extension_sorting()->CreateNextAppLaunchOrdinal(page))); | 52 extension_sorting()->CreateNextAppLaunchOrdinal(page))); |
53 | 53 |
54 extension_ = prefs_.AddApp("on_extension_installed"); | 54 extension_ = prefs_.AddApp("on_extension_installed"); |
55 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); | 55 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); |
56 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, | 56 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, |
57 false, syncer::StringOrdinal()); | 57 syncer::StringOrdinal()); |
58 } | 58 } |
59 | 59 |
60 virtual void Verify() OVERRIDE { | 60 virtual void Verify() OVERRIDE { |
61 syncer::StringOrdinal launch_ordinal = | 61 syncer::StringOrdinal launch_ordinal = |
62 extension_sorting()->GetAppLaunchOrdinal(extension_->id()); | 62 extension_sorting()->GetAppLaunchOrdinal(extension_->id()); |
63 syncer::StringOrdinal page_ordinal = | 63 syncer::StringOrdinal page_ordinal = |
64 syncer::StringOrdinal::CreateInitialOrdinal(); | 64 syncer::StringOrdinal::CreateInitialOrdinal(); |
65 | 65 |
66 // Extension should have been assigned a valid StringOrdinal. | 66 // Extension should have been assigned a valid StringOrdinal. |
67 EXPECT_TRUE(launch_ordinal.IsValid()); | 67 EXPECT_TRUE(launch_ordinal.IsValid()); |
(...skipping 29 matching lines...) Expand all Loading... |
97 }; | 97 }; |
98 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {} | 98 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {} |
99 | 99 |
100 class ExtensionSortingPageOrdinal : public ExtensionSortingTest { | 100 class ExtensionSortingPageOrdinal : public ExtensionSortingTest { |
101 public: | 101 public: |
102 virtual void Initialize() OVERRIDE { | 102 virtual void Initialize() OVERRIDE { |
103 extension_ = prefs_.AddApp("page_ordinal"); | 103 extension_ = prefs_.AddApp("page_ordinal"); |
104 // Install with a page preference. | 104 // Install with a page preference. |
105 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); | 105 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); |
106 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, | 106 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, |
107 false, first_page_); | 107 first_page_); |
108 EXPECT_TRUE(first_page_.Equals( | 108 EXPECT_TRUE(first_page_.Equals( |
109 extension_sorting()->GetPageOrdinal(extension_->id()))); | 109 extension_sorting()->GetPageOrdinal(extension_->id()))); |
110 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_)); | 110 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_)); |
111 | 111 |
112 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); | 112 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); |
113 // Install without any page preference. | 113 // Install without any page preference. |
114 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED, | 114 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED, |
115 false, syncer::StringOrdinal()); | 115 syncer::StringOrdinal()); |
116 EXPECT_TRUE(first_page_.Equals( | 116 EXPECT_TRUE(first_page_.Equals( |
117 extension_sorting()->GetPageOrdinal(extension2->id()))); | 117 extension_sorting()->GetPageOrdinal(extension2->id()))); |
118 } | 118 } |
119 virtual void Verify() OVERRIDE { | 119 virtual void Verify() OVERRIDE { |
120 // Set the page ordinal. | 120 // Set the page ordinal. |
121 syncer::StringOrdinal new_page = first_page_.CreateAfter(); | 121 syncer::StringOrdinal new_page = first_page_.CreateAfter(); |
122 extension_sorting()->SetPageOrdinal(extension_->id(), new_page); | 122 extension_sorting()->SetPageOrdinal(extension_->id(), new_page); |
123 // Verify the page ordinal. | 123 // Verify the page ordinal. |
124 EXPECT_TRUE( | 124 EXPECT_TRUE( |
125 new_page.Equals(extension_sorting()->GetPageOrdinal(extension_->id()))); | 125 new_page.Equals(extension_sorting()->GetPageOrdinal(extension_->id()))); |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
624 simple_dict.SetString(keys::kName, "unused"); | 624 simple_dict.SetString(keys::kName, "unused"); |
625 simple_dict.SetString(keys::kApp, "true"); | 625 simple_dict.SetString(keys::kApp, "true"); |
626 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); | 626 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); |
627 | 627 |
628 std::string error; | 628 std::string error; |
629 app1_scoped_ = Extension::Create( | 629 app1_scoped_ = Extension::Create( |
630 prefs_.temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF, | 630 prefs_.temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF, |
631 simple_dict, Extension::NO_FLAGS, &error); | 631 simple_dict, Extension::NO_FLAGS, &error); |
632 prefs()->OnExtensionInstalled(app1_scoped_.get(), | 632 prefs()->OnExtensionInstalled(app1_scoped_.get(), |
633 Extension::ENABLED, | 633 Extension::ENABLED, |
634 false, | |
635 syncer::StringOrdinal()); | 634 syncer::StringOrdinal()); |
636 | 635 |
637 app2_scoped_ = Extension::Create( | 636 app2_scoped_ = Extension::Create( |
638 prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF, | 637 prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF, |
639 simple_dict, Extension::NO_FLAGS, &error); | 638 simple_dict, Extension::NO_FLAGS, &error); |
640 prefs()->OnExtensionInstalled(app2_scoped_.get(), | 639 prefs()->OnExtensionInstalled(app2_scoped_.get(), |
641 Extension::ENABLED, | 640 Extension::ENABLED, |
642 false, | |
643 syncer::StringOrdinal()); | 641 syncer::StringOrdinal()); |
644 | 642 |
645 app1_ = app1_scoped_.get(); | 643 app1_ = app1_scoped_.get(); |
646 app2_ = app2_scoped_.get(); | 644 app2_ = app2_scoped_.get(); |
647 } | 645 } |
648 virtual ~ExtensionSortingPreinstalledAppsBase() {} | 646 virtual ~ExtensionSortingPreinstalledAppsBase() {} |
649 | 647 |
650 protected: | 648 protected: |
651 // Weak references, for convenience. | 649 // Weak references, for convenience. |
652 Extension* app1_; | 650 Extension* app1_; |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 default_page_ordinal_ = | 815 default_page_ordinal_ = |
818 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter(); | 816 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter(); |
819 default_app_launch_ordinal_ = | 817 default_app_launch_ordinal_ = |
820 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); | 818 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); |
821 } | 819 } |
822 | 820 |
823 virtual void SetupUserOrdinals() {} | 821 virtual void SetupUserOrdinals() {} |
824 | 822 |
825 virtual void InstallApps() { | 823 virtual void InstallApps() { |
826 prefs()->OnExtensionInstalled(app_.get(), Extension::ENABLED, | 824 prefs()->OnExtensionInstalled(app_.get(), Extension::ENABLED, |
827 false, syncer::StringOrdinal()); | 825 syncer::StringOrdinal()); |
828 } | 826 } |
829 | 827 |
830 scoped_refptr<Extension> app_; | 828 scoped_refptr<Extension> app_; |
831 syncer::StringOrdinal default_page_ordinal_; | 829 syncer::StringOrdinal default_page_ordinal_; |
832 syncer::StringOrdinal default_app_launch_ordinal_; | 830 syncer::StringOrdinal default_app_launch_ordinal_; |
833 }; | 831 }; |
834 | 832 |
835 // Tests that the app gets its default ordinals. | 833 // Tests that the app gets its default ordinals. |
836 class ExtensionSortingDefaultOrdinals | 834 class ExtensionSortingDefaultOrdinals |
837 : public ExtensionSortingDefaultOrdinalsBase { | 835 : public ExtensionSortingDefaultOrdinalsBase { |
(...skipping 25 matching lines...) Expand all Loading... |
863 EXPECT_FALSE(extension_sorting->GetPageOrdinal(app_->id()).Equals( | 861 EXPECT_FALSE(extension_sorting->GetPageOrdinal(app_->id()).Equals( |
864 default_page_ordinal_)); | 862 default_page_ordinal_)); |
865 EXPECT_TRUE(extension_sorting->GetPageOrdinal(app_->id()).Equals( | 863 EXPECT_TRUE(extension_sorting->GetPageOrdinal(app_->id()).Equals( |
866 install_page_)); | 864 install_page_)); |
867 } | 865 } |
868 | 866 |
869 protected: | 867 protected: |
870 virtual void InstallApps() OVERRIDE { | 868 virtual void InstallApps() OVERRIDE { |
871 install_page_ = default_page_ordinal_.CreateAfter(); | 869 install_page_ = default_page_ordinal_.CreateAfter(); |
872 prefs()->OnExtensionInstalled(app_.get(), Extension::ENABLED, | 870 prefs()->OnExtensionInstalled(app_.get(), Extension::ENABLED, |
873 false, install_page_); | 871 install_page_); |
874 } | 872 } |
875 | 873 |
876 private: | 874 private: |
877 syncer::StringOrdinal install_page_; | 875 syncer::StringOrdinal install_page_; |
878 }; | 876 }; |
879 TEST_F(ExtensionSortingDefaultOrdinalOverriddenByInstallPage, | 877 TEST_F(ExtensionSortingDefaultOrdinalOverriddenByInstallPage, |
880 ExtensionSortingDefaultOrdinalOverriddenByInstallPage) {} | 878 ExtensionSortingDefaultOrdinalOverriddenByInstallPage) {} |
881 | 879 |
882 // Tests that the default ordinals are overridden by user values. | 880 // Tests that the default ordinals are overridden by user values. |
883 class ExtensionSortingDefaultOrdinalOverriddenByUserValue | 881 class ExtensionSortingDefaultOrdinalOverriddenByUserValue |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
939 extension_sorting->SetPageOrdinal(other_app_->id(), default_page_ordinal_); | 937 extension_sorting->SetPageOrdinal(other_app_->id(), default_page_ordinal_); |
940 extension_sorting->SetAppLaunchOrdinal(other_app_->id(), | 938 extension_sorting->SetAppLaunchOrdinal(other_app_->id(), |
941 default_app_launch_ordinal_); | 939 default_app_launch_ordinal_); |
942 } | 940 } |
943 | 941 |
944 private: | 942 private: |
945 scoped_refptr<Extension> other_app_; | 943 scoped_refptr<Extension> other_app_; |
946 }; | 944 }; |
947 TEST_F(ExtensionSortingDefaultOrdinalNoCollision, | 945 TEST_F(ExtensionSortingDefaultOrdinalNoCollision, |
948 ExtensionSortingDefaultOrdinalNoCollision) {} | 946 ExtensionSortingDefaultOrdinalNoCollision) {} |
OLD | NEW |