OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/chrome_app_sorting.h" | 5 #include "chrome/browser/extensions/chrome_app_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_constants.h" | 10 #include "chrome/common/extensions/extension_constants.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 }; | 24 }; |
25 | 25 |
26 class ChromeAppSortingAppLocation : public ChromeAppSortingTest { | 26 class ChromeAppSortingAppLocation : public ChromeAppSortingTest { |
27 public: | 27 public: |
28 virtual void Initialize() OVERRIDE { | 28 virtual void Initialize() OVERRIDE { |
29 extension_ = prefs_.AddExtension("not_an_app"); | 29 extension_ = prefs_.AddExtension("not_an_app"); |
30 // Non-apps should not have any app launch ordinal or page ordinal. | 30 // Non-apps should not have any app launch ordinal or page ordinal. |
31 prefs()->OnExtensionInstalled(extension_.get(), | 31 prefs()->OnExtensionInstalled(extension_.get(), |
32 Extension::ENABLED, | 32 Extension::ENABLED, |
33 false, | 33 false, |
34 syncer::StringOrdinal()); | 34 syncer::StringOrdinal(), |
| 35 std::string()); |
35 } | 36 } |
36 | 37 |
37 virtual void Verify() OVERRIDE { | 38 virtual void Verify() OVERRIDE { |
38 EXPECT_FALSE( | 39 EXPECT_FALSE( |
39 app_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); | 40 app_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); |
40 EXPECT_FALSE( | 41 EXPECT_FALSE( |
41 app_sorting()->GetPageOrdinal(extension_->id()).IsValid()); | 42 app_sorting()->GetPageOrdinal(extension_->id()).IsValid()); |
42 } | 43 } |
43 | 44 |
44 private: | 45 private: |
45 scoped_refptr<Extension> extension_; | 46 scoped_refptr<Extension> extension_; |
46 }; | 47 }; |
47 TEST_F(ChromeAppSortingAppLocation, ChromeAppSortingAppLocation) {} | 48 TEST_F(ChromeAppSortingAppLocation, ChromeAppSortingAppLocation) {} |
48 | 49 |
49 class ChromeAppSortingAppLaunchOrdinal : public ChromeAppSortingTest { | 50 class ChromeAppSortingAppLaunchOrdinal : public ChromeAppSortingTest { |
50 public: | 51 public: |
51 virtual void Initialize() OVERRIDE { | 52 virtual void Initialize() OVERRIDE { |
52 // No extensions yet. | 53 // No extensions yet. |
53 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); | 54 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); |
54 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( | 55 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( |
55 app_sorting()->CreateNextAppLaunchOrdinal(page))); | 56 app_sorting()->CreateNextAppLaunchOrdinal(page))); |
56 | 57 |
57 extension_ = prefs_.AddApp("on_extension_installed"); | 58 extension_ = prefs_.AddApp("on_extension_installed"); |
58 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); | 59 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); |
59 prefs()->OnExtensionInstalled(extension_.get(), | 60 prefs()->OnExtensionInstalled(extension_.get(), |
60 Extension::ENABLED, | 61 Extension::ENABLED, |
61 false, | 62 false, |
62 syncer::StringOrdinal()); | 63 syncer::StringOrdinal(), |
| 64 std::string()); |
63 } | 65 } |
64 | 66 |
65 virtual void Verify() OVERRIDE { | 67 virtual void Verify() OVERRIDE { |
66 syncer::StringOrdinal launch_ordinal = | 68 syncer::StringOrdinal launch_ordinal = |
67 app_sorting()->GetAppLaunchOrdinal(extension_->id()); | 69 app_sorting()->GetAppLaunchOrdinal(extension_->id()); |
68 syncer::StringOrdinal page_ordinal = | 70 syncer::StringOrdinal page_ordinal = |
69 syncer::StringOrdinal::CreateInitialOrdinal(); | 71 syncer::StringOrdinal::CreateInitialOrdinal(); |
70 | 72 |
71 // Extension should have been assigned a valid StringOrdinal. | 73 // Extension should have been assigned a valid StringOrdinal. |
72 EXPECT_TRUE(launch_ordinal.IsValid()); | 74 EXPECT_TRUE(launch_ordinal.IsValid()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 | 106 |
105 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { | 107 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { |
106 public: | 108 public: |
107 virtual void Initialize() OVERRIDE { | 109 virtual void Initialize() OVERRIDE { |
108 extension_ = prefs_.AddApp("page_ordinal"); | 110 extension_ = prefs_.AddApp("page_ordinal"); |
109 // Install with a page preference. | 111 // Install with a page preference. |
110 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); | 112 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); |
111 prefs()->OnExtensionInstalled(extension_.get(), | 113 prefs()->OnExtensionInstalled(extension_.get(), |
112 Extension::ENABLED, | 114 Extension::ENABLED, |
113 false, | 115 false, |
114 first_page_); | 116 first_page_, |
| 117 std::string()); |
115 EXPECT_TRUE(first_page_.Equals( | 118 EXPECT_TRUE(first_page_.Equals( |
116 app_sorting()->GetPageOrdinal(extension_->id()))); | 119 app_sorting()->GetPageOrdinal(extension_->id()))); |
117 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); | 120 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); |
118 | 121 |
119 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); | 122 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); |
120 // Install without any page preference. | 123 // Install without any page preference. |
121 prefs()->OnExtensionInstalled(extension2.get(), | 124 prefs()->OnExtensionInstalled(extension2.get(), |
122 Extension::ENABLED, | 125 Extension::ENABLED, |
123 false, | 126 false, |
124 syncer::StringOrdinal()); | 127 syncer::StringOrdinal(), |
| 128 std::string()); |
125 EXPECT_TRUE(first_page_.Equals( | 129 EXPECT_TRUE(first_page_.Equals( |
126 app_sorting()->GetPageOrdinal(extension2->id()))); | 130 app_sorting()->GetPageOrdinal(extension2->id()))); |
127 } | 131 } |
128 virtual void Verify() OVERRIDE { | 132 virtual void Verify() OVERRIDE { |
129 // Set the page ordinal. | 133 // Set the page ordinal. |
130 syncer::StringOrdinal new_page = first_page_.CreateAfter(); | 134 syncer::StringOrdinal new_page = first_page_.CreateAfter(); |
131 app_sorting()->SetPageOrdinal(extension_->id(), new_page); | 135 app_sorting()->SetPageOrdinal(extension_->id(), new_page); |
132 // Verify the page ordinal. | 136 // Verify the page ordinal. |
133 EXPECT_TRUE( | 137 EXPECT_TRUE( |
134 new_page.Equals(app_sorting()->GetPageOrdinal(extension_->id()))); | 138 new_page.Equals(app_sorting()->GetPageOrdinal(extension_->id()))); |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 simple_dict.SetString(keys::kApp, "true"); | 633 simple_dict.SetString(keys::kApp, "true"); |
630 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); | 634 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); |
631 | 635 |
632 std::string error; | 636 std::string error; |
633 app1_scoped_ = Extension::Create( | 637 app1_scoped_ = Extension::Create( |
634 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, | 638 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, |
635 simple_dict, Extension::NO_FLAGS, &error); | 639 simple_dict, Extension::NO_FLAGS, &error); |
636 prefs()->OnExtensionInstalled(app1_scoped_.get(), | 640 prefs()->OnExtensionInstalled(app1_scoped_.get(), |
637 Extension::ENABLED, | 641 Extension::ENABLED, |
638 false, | 642 false, |
639 syncer::StringOrdinal()); | 643 syncer::StringOrdinal(), |
| 644 std::string()); |
640 | 645 |
641 app2_scoped_ = Extension::Create( | 646 app2_scoped_ = Extension::Create( |
642 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, | 647 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, |
643 simple_dict, Extension::NO_FLAGS, &error); | 648 simple_dict, Extension::NO_FLAGS, &error); |
644 prefs()->OnExtensionInstalled(app2_scoped_.get(), | 649 prefs()->OnExtensionInstalled(app2_scoped_.get(), |
645 Extension::ENABLED, | 650 Extension::ENABLED, |
646 false, | 651 false, |
647 syncer::StringOrdinal()); | 652 syncer::StringOrdinal(), |
| 653 std::string()); |
648 | 654 |
649 app1_ = app1_scoped_.get(); | 655 app1_ = app1_scoped_.get(); |
650 app2_ = app2_scoped_.get(); | 656 app2_ = app2_scoped_.get(); |
651 } | 657 } |
652 virtual ~ChromeAppSortingPreinstalledAppsBase() {} | 658 virtual ~ChromeAppSortingPreinstalledAppsBase() {} |
653 | 659 |
654 protected: | 660 protected: |
655 // Weak references, for convenience. | 661 // Weak references, for convenience. |
656 Extension* app1_; | 662 Extension* app1_; |
657 Extension* app2_; | 663 Extension* app2_; |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 default_app_launch_ordinal_ = | 829 default_app_launch_ordinal_ = |
824 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); | 830 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); |
825 } | 831 } |
826 | 832 |
827 virtual void SetupUserOrdinals() {} | 833 virtual void SetupUserOrdinals() {} |
828 | 834 |
829 virtual void InstallApps() { | 835 virtual void InstallApps() { |
830 prefs()->OnExtensionInstalled(app_.get(), | 836 prefs()->OnExtensionInstalled(app_.get(), |
831 Extension::ENABLED, | 837 Extension::ENABLED, |
832 false, | 838 false, |
833 syncer::StringOrdinal()); | 839 syncer::StringOrdinal(), |
| 840 std::string()); |
834 } | 841 } |
835 | 842 |
836 scoped_refptr<Extension> app_; | 843 scoped_refptr<Extension> app_; |
837 syncer::StringOrdinal default_page_ordinal_; | 844 syncer::StringOrdinal default_page_ordinal_; |
838 syncer::StringOrdinal default_app_launch_ordinal_; | 845 syncer::StringOrdinal default_app_launch_ordinal_; |
839 }; | 846 }; |
840 | 847 |
841 // Tests that the app gets its default ordinals. | 848 // Tests that the app gets its default ordinals. |
842 class ChromeAppSortingDefaultOrdinals | 849 class ChromeAppSortingDefaultOrdinals |
843 : public ChromeAppSortingDefaultOrdinalsBase { | 850 : public ChromeAppSortingDefaultOrdinalsBase { |
(...skipping 23 matching lines...) Expand all Loading... |
867 AppSorting* app_sorting = prefs()->app_sorting(); | 874 AppSorting* app_sorting = prefs()->app_sorting(); |
868 | 875 |
869 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( | 876 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( |
870 default_page_ordinal_)); | 877 default_page_ordinal_)); |
871 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); | 878 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); |
872 } | 879 } |
873 | 880 |
874 protected: | 881 protected: |
875 virtual void InstallApps() OVERRIDE { | 882 virtual void InstallApps() OVERRIDE { |
876 install_page_ = default_page_ordinal_.CreateAfter(); | 883 install_page_ = default_page_ordinal_.CreateAfter(); |
877 prefs()->OnExtensionInstalled(app_.get(), | 884 prefs()->OnExtensionInstalled( |
878 Extension::ENABLED, | 885 app_.get(), Extension::ENABLED, false, install_page_, std::string()); |
879 false, | |
880 install_page_); | |
881 } | 886 } |
882 | 887 |
883 private: | 888 private: |
884 syncer::StringOrdinal install_page_; | 889 syncer::StringOrdinal install_page_; |
885 }; | 890 }; |
886 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, | 891 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, |
887 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} | 892 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} |
888 | 893 |
889 // Tests that the default ordinals are overridden by user values. | 894 // Tests that the default ordinals are overridden by user values. |
890 class ChromeAppSortingDefaultOrdinalOverriddenByUserValue | 895 class ChromeAppSortingDefaultOrdinalOverriddenByUserValue |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 } | 958 } |
954 | 959 |
955 private: | 960 private: |
956 scoped_refptr<Extension> other_app_; | 961 scoped_refptr<Extension> other_app_; |
957 scoped_refptr<Extension> yet_another_app_; | 962 scoped_refptr<Extension> yet_another_app_; |
958 }; | 963 }; |
959 TEST_F(ChromeAppSortingDefaultOrdinalNoCollision, | 964 TEST_F(ChromeAppSortingDefaultOrdinalNoCollision, |
960 ChromeAppSortingDefaultOrdinalNoCollision) {} | 965 ChromeAppSortingDefaultOrdinalNoCollision) {} |
961 | 966 |
962 } // namespace extensions | 967 } // namespace extensions |
OLD | NEW |