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