| 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 false, |
| 34 syncer::StringOrdinal(), | 35 syncer::StringOrdinal(), |
| 35 std::string()); | 36 std::string()); |
| 36 } | 37 } |
| 37 | 38 |
| 38 virtual void Verify() OVERRIDE { | 39 virtual void Verify() OVERRIDE { |
| 39 EXPECT_FALSE( | 40 EXPECT_FALSE( |
| 40 app_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); | 41 app_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); |
| 41 EXPECT_FALSE( | 42 EXPECT_FALSE( |
| 42 app_sorting()->GetPageOrdinal(extension_->id()).IsValid()); | 43 app_sorting()->GetPageOrdinal(extension_->id()).IsValid()); |
| 43 } | 44 } |
| 44 | 45 |
| 45 private: | 46 private: |
| 46 scoped_refptr<Extension> extension_; | 47 scoped_refptr<Extension> extension_; |
| 47 }; | 48 }; |
| 48 TEST_F(ChromeAppSortingAppLocation, ChromeAppSortingAppLocation) {} | 49 TEST_F(ChromeAppSortingAppLocation, ChromeAppSortingAppLocation) {} |
| 49 | 50 |
| 50 class ChromeAppSortingAppLaunchOrdinal : public ChromeAppSortingTest { | 51 class ChromeAppSortingAppLaunchOrdinal : public ChromeAppSortingTest { |
| 51 public: | 52 public: |
| 52 virtual void Initialize() OVERRIDE { | 53 virtual void Initialize() OVERRIDE { |
| 53 // No extensions yet. | 54 // No extensions yet. |
| 54 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); | 55 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); |
| 55 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( | 56 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( |
| 56 app_sorting()->CreateNextAppLaunchOrdinal(page))); | 57 app_sorting()->CreateNextAppLaunchOrdinal(page))); |
| 57 | 58 |
| 58 extension_ = prefs_.AddApp("on_extension_installed"); | 59 extension_ = prefs_.AddApp("on_extension_installed"); |
| 59 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); | 60 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); |
| 60 prefs()->OnExtensionInstalled(extension_.get(), | 61 prefs()->OnExtensionInstalled(extension_.get(), |
| 61 Extension::ENABLED, | 62 Extension::ENABLED, |
| 62 false, | 63 false, |
| 64 false, |
| 63 syncer::StringOrdinal(), | 65 syncer::StringOrdinal(), |
| 64 std::string()); | 66 std::string()); |
| 65 } | 67 } |
| 66 | 68 |
| 67 virtual void Verify() OVERRIDE { | 69 virtual void Verify() OVERRIDE { |
| 68 syncer::StringOrdinal launch_ordinal = | 70 syncer::StringOrdinal launch_ordinal = |
| 69 app_sorting()->GetAppLaunchOrdinal(extension_->id()); | 71 app_sorting()->GetAppLaunchOrdinal(extension_->id()); |
| 70 syncer::StringOrdinal page_ordinal = | 72 syncer::StringOrdinal page_ordinal = |
| 71 syncer::StringOrdinal::CreateInitialOrdinal(); | 73 syncer::StringOrdinal::CreateInitialOrdinal(); |
| 72 | 74 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 108 |
| 107 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { | 109 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { |
| 108 public: | 110 public: |
| 109 virtual void Initialize() OVERRIDE { | 111 virtual void Initialize() OVERRIDE { |
| 110 extension_ = prefs_.AddApp("page_ordinal"); | 112 extension_ = prefs_.AddApp("page_ordinal"); |
| 111 // Install with a page preference. | 113 // Install with a page preference. |
| 112 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); | 114 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); |
| 113 prefs()->OnExtensionInstalled(extension_.get(), | 115 prefs()->OnExtensionInstalled(extension_.get(), |
| 114 Extension::ENABLED, | 116 Extension::ENABLED, |
| 115 false, | 117 false, |
| 118 false, |
| 116 first_page_, | 119 first_page_, |
| 117 std::string()); | 120 std::string()); |
| 118 EXPECT_TRUE(first_page_.Equals( | 121 EXPECT_TRUE(first_page_.Equals( |
| 119 app_sorting()->GetPageOrdinal(extension_->id()))); | 122 app_sorting()->GetPageOrdinal(extension_->id()))); |
| 120 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); | 123 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); |
| 121 | 124 |
| 122 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); | 125 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); |
| 123 // Install without any page preference. | 126 // Install without any page preference. |
| 124 prefs()->OnExtensionInstalled(extension2.get(), | 127 prefs()->OnExtensionInstalled(extension2.get(), |
| 125 Extension::ENABLED, | 128 Extension::ENABLED, |
| 126 false, | 129 false, |
| 130 false, |
| 127 syncer::StringOrdinal(), | 131 syncer::StringOrdinal(), |
| 128 std::string()); | 132 std::string()); |
| 129 EXPECT_TRUE(first_page_.Equals( | 133 EXPECT_TRUE(first_page_.Equals( |
| 130 app_sorting()->GetPageOrdinal(extension2->id()))); | 134 app_sorting()->GetPageOrdinal(extension2->id()))); |
| 131 } | 135 } |
| 132 virtual void Verify() OVERRIDE { | 136 virtual void Verify() OVERRIDE { |
| 133 // Set the page ordinal. | 137 // Set the page ordinal. |
| 134 syncer::StringOrdinal new_page = first_page_.CreateAfter(); | 138 syncer::StringOrdinal new_page = first_page_.CreateAfter(); |
| 135 app_sorting()->SetPageOrdinal(extension_->id(), new_page); | 139 app_sorting()->SetPageOrdinal(extension_->id(), new_page); |
| 136 // Verify the page ordinal. | 140 // Verify the page ordinal. |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 simple_dict.SetString(keys::kApp, "true"); | 637 simple_dict.SetString(keys::kApp, "true"); |
| 634 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); | 638 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); |
| 635 | 639 |
| 636 std::string error; | 640 std::string error; |
| 637 app1_scoped_ = Extension::Create( | 641 app1_scoped_ = Extension::Create( |
| 638 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, | 642 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, |
| 639 simple_dict, Extension::NO_FLAGS, &error); | 643 simple_dict, Extension::NO_FLAGS, &error); |
| 640 prefs()->OnExtensionInstalled(app1_scoped_.get(), | 644 prefs()->OnExtensionInstalled(app1_scoped_.get(), |
| 641 Extension::ENABLED, | 645 Extension::ENABLED, |
| 642 false, | 646 false, |
| 647 false, |
| 643 syncer::StringOrdinal(), | 648 syncer::StringOrdinal(), |
| 644 std::string()); | 649 std::string()); |
| 645 | 650 |
| 646 app2_scoped_ = Extension::Create( | 651 app2_scoped_ = Extension::Create( |
| 647 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, | 652 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, |
| 648 simple_dict, Extension::NO_FLAGS, &error); | 653 simple_dict, Extension::NO_FLAGS, &error); |
| 649 prefs()->OnExtensionInstalled(app2_scoped_.get(), | 654 prefs()->OnExtensionInstalled(app2_scoped_.get(), |
| 650 Extension::ENABLED, | 655 Extension::ENABLED, |
| 651 false, | 656 false, |
| 657 false, |
| 652 syncer::StringOrdinal(), | 658 syncer::StringOrdinal(), |
| 653 std::string()); | 659 std::string()); |
| 654 | 660 |
| 655 app1_ = app1_scoped_.get(); | 661 app1_ = app1_scoped_.get(); |
| 656 app2_ = app2_scoped_.get(); | 662 app2_ = app2_scoped_.get(); |
| 657 } | 663 } |
| 658 virtual ~ChromeAppSortingPreinstalledAppsBase() {} | 664 virtual ~ChromeAppSortingPreinstalledAppsBase() {} |
| 659 | 665 |
| 660 protected: | 666 protected: |
| 661 // Weak references, for convenience. | 667 // Weak references, for convenience. |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 default_app_launch_ordinal_ = | 835 default_app_launch_ordinal_ = |
| 830 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); | 836 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); |
| 831 } | 837 } |
| 832 | 838 |
| 833 virtual void SetupUserOrdinals() {} | 839 virtual void SetupUserOrdinals() {} |
| 834 | 840 |
| 835 virtual void InstallApps() { | 841 virtual void InstallApps() { |
| 836 prefs()->OnExtensionInstalled(app_.get(), | 842 prefs()->OnExtensionInstalled(app_.get(), |
| 837 Extension::ENABLED, | 843 Extension::ENABLED, |
| 838 false, | 844 false, |
| 845 false, |
| 839 syncer::StringOrdinal(), | 846 syncer::StringOrdinal(), |
| 840 std::string()); | 847 std::string()); |
| 841 } | 848 } |
| 842 | 849 |
| 843 scoped_refptr<Extension> app_; | 850 scoped_refptr<Extension> app_; |
| 844 syncer::StringOrdinal default_page_ordinal_; | 851 syncer::StringOrdinal default_page_ordinal_; |
| 845 syncer::StringOrdinal default_app_launch_ordinal_; | 852 syncer::StringOrdinal default_app_launch_ordinal_; |
| 846 }; | 853 }; |
| 847 | 854 |
| 848 // Tests that the app gets its default ordinals. | 855 // Tests that the app gets its default ordinals. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 874 AppSorting* app_sorting = prefs()->app_sorting(); | 881 AppSorting* app_sorting = prefs()->app_sorting(); |
| 875 | 882 |
| 876 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( | 883 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( |
| 877 default_page_ordinal_)); | 884 default_page_ordinal_)); |
| 878 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); | 885 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); |
| 879 } | 886 } |
| 880 | 887 |
| 881 protected: | 888 protected: |
| 882 virtual void InstallApps() OVERRIDE { | 889 virtual void InstallApps() OVERRIDE { |
| 883 install_page_ = default_page_ordinal_.CreateAfter(); | 890 install_page_ = default_page_ordinal_.CreateAfter(); |
| 884 prefs()->OnExtensionInstalled( | 891 prefs()->OnExtensionInstalled(app_.get(), |
| 885 app_.get(), Extension::ENABLED, false, install_page_, std::string()); | 892 Extension::ENABLED, |
| 893 false, |
| 894 false, |
| 895 install_page_, |
| 896 std::string()); |
| 886 } | 897 } |
| 887 | 898 |
| 888 private: | 899 private: |
| 889 syncer::StringOrdinal install_page_; | 900 syncer::StringOrdinal install_page_; |
| 890 }; | 901 }; |
| 891 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, | 902 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, |
| 892 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} | 903 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} |
| 893 | 904 |
| 894 // Tests that the default ordinals are overridden by user values. | 905 // Tests that the default ordinals are overridden by user values. |
| 895 class ChromeAppSortingDefaultOrdinalOverriddenByUserValue | 906 class ChromeAppSortingDefaultOrdinalOverriddenByUserValue |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 } | 969 } |
| 959 | 970 |
| 960 private: | 971 private: |
| 961 scoped_refptr<Extension> other_app_; | 972 scoped_refptr<Extension> other_app_; |
| 962 scoped_refptr<Extension> yet_another_app_; | 973 scoped_refptr<Extension> yet_another_app_; |
| 963 }; | 974 }; |
| 964 TEST_F(ChromeAppSortingDefaultOrdinalNoCollision, | 975 TEST_F(ChromeAppSortingDefaultOrdinalNoCollision, |
| 965 ChromeAppSortingDefaultOrdinalNoCollision) {} | 976 ChromeAppSortingDefaultOrdinalNoCollision) {} |
| 966 | 977 |
| 967 } // namespace extensions | 978 } // namespace extensions |
| OLD | NEW |