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