| 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 |