| 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 "components/crx_file/id_util.h" | 10 #include "components/crx_file/id_util.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 } | 24 } |
| 25 }; | 25 }; |
| 26 | 26 |
| 27 class ChromeAppSortingAppLocation : public ChromeAppSortingTest { | 27 class ChromeAppSortingAppLocation : public ChromeAppSortingTest { |
| 28 public: | 28 public: |
| 29 void Initialize() override { | 29 void Initialize() override { |
| 30 extension_ = prefs_.AddExtension("not_an_app"); | 30 extension_ = prefs_.AddExtension("not_an_app"); |
| 31 // Non-apps should not have any app launch ordinal or page ordinal. | 31 // Non-apps should not have any app launch ordinal or page ordinal. |
| 32 prefs()->OnExtensionInstalled(extension_.get(), | 32 prefs()->OnExtensionInstalled(extension_.get(), |
| 33 Extension::ENABLED, | 33 Extension::ENABLED, |
| 34 Extension::DISABLE_NONE, |
| 34 syncer::StringOrdinal(), | 35 syncer::StringOrdinal(), |
| 35 std::string()); | 36 std::string()); |
| 36 } | 37 } |
| 37 | 38 |
| 38 void Verify() override { | 39 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 void Initialize() override { | 53 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, |
| 63 Extension::DISABLE_NONE, |
| 62 syncer::StringOrdinal(), | 64 syncer::StringOrdinal(), |
| 63 std::string()); | 65 std::string()); |
| 64 } | 66 } |
| 65 | 67 |
| 66 void Verify() override { | 68 void Verify() override { |
| 67 syncer::StringOrdinal launch_ordinal = | 69 syncer::StringOrdinal launch_ordinal = |
| 68 app_sorting()->GetAppLaunchOrdinal(extension_->id()); | 70 app_sorting()->GetAppLaunchOrdinal(extension_->id()); |
| 69 syncer::StringOrdinal page_ordinal = | 71 syncer::StringOrdinal page_ordinal = |
| 70 syncer::StringOrdinal::CreateInitialOrdinal(); | 72 syncer::StringOrdinal::CreateInitialOrdinal(); |
| 71 | 73 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 TEST_F(ChromeAppSortingAppLaunchOrdinal, ChromeAppSortingAppLaunchOrdinal) {} | 106 TEST_F(ChromeAppSortingAppLaunchOrdinal, ChromeAppSortingAppLaunchOrdinal) {} |
| 105 | 107 |
| 106 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { | 108 class ChromeAppSortingPageOrdinal : public ChromeAppSortingTest { |
| 107 public: | 109 public: |
| 108 void Initialize() override { | 110 void Initialize() override { |
| 109 extension_ = prefs_.AddApp("page_ordinal"); | 111 extension_ = prefs_.AddApp("page_ordinal"); |
| 110 // Install with a page preference. | 112 // Install with a page preference. |
| 111 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); | 113 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); |
| 112 prefs()->OnExtensionInstalled(extension_.get(), | 114 prefs()->OnExtensionInstalled(extension_.get(), |
| 113 Extension::ENABLED, | 115 Extension::ENABLED, |
| 116 Extension::DISABLE_NONE, |
| 114 first_page_, | 117 first_page_, |
| 115 std::string()); | 118 std::string()); |
| 116 EXPECT_TRUE(first_page_.Equals( | 119 EXPECT_TRUE(first_page_.Equals( |
| 117 app_sorting()->GetPageOrdinal(extension_->id()))); | 120 app_sorting()->GetPageOrdinal(extension_->id()))); |
| 118 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); | 121 EXPECT_EQ(0, app_sorting()->PageStringOrdinalAsInteger(first_page_)); |
| 119 | 122 |
| 120 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); | 123 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); |
| 121 // Install without any page preference. | 124 // Install without any page preference. |
| 122 prefs()->OnExtensionInstalled(extension2.get(), | 125 prefs()->OnExtensionInstalled(extension2.get(), |
| 123 Extension::ENABLED, | 126 Extension::ENABLED, |
| 127 Extension::DISABLE_NONE, |
| 124 syncer::StringOrdinal(), | 128 syncer::StringOrdinal(), |
| 125 std::string()); | 129 std::string()); |
| 126 EXPECT_TRUE(first_page_.Equals( | 130 EXPECT_TRUE(first_page_.Equals( |
| 127 app_sorting()->GetPageOrdinal(extension2->id()))); | 131 app_sorting()->GetPageOrdinal(extension2->id()))); |
| 128 } | 132 } |
| 129 void Verify() override { | 133 void Verify() override { |
| 130 // Set the page ordinal. | 134 // Set the page ordinal. |
| 131 syncer::StringOrdinal new_page = first_page_.CreateAfter(); | 135 syncer::StringOrdinal new_page = first_page_.CreateAfter(); |
| 132 app_sorting()->SetPageOrdinal(extension_->id(), new_page); | 136 app_sorting()->SetPageOrdinal(extension_->id(), new_page); |
| 133 // Verify the page ordinal. | 137 // Verify the page ordinal. |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 simple_dict.SetString(keys::kName, "unused"); | 633 simple_dict.SetString(keys::kName, "unused"); |
| 630 simple_dict.SetString(keys::kApp, "true"); | 634 simple_dict.SetString(keys::kApp, "true"); |
| 631 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); | 635 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); |
| 632 | 636 |
| 633 std::string error; | 637 std::string error; |
| 634 app1_scoped_ = Extension::Create( | 638 app1_scoped_ = Extension::Create( |
| 635 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, | 639 prefs_.temp_dir().AppendASCII("app1_"), Manifest::EXTERNAL_PREF, |
| 636 simple_dict, Extension::NO_FLAGS, &error); | 640 simple_dict, Extension::NO_FLAGS, &error); |
| 637 prefs()->OnExtensionInstalled(app1_scoped_.get(), | 641 prefs()->OnExtensionInstalled(app1_scoped_.get(), |
| 638 Extension::ENABLED, | 642 Extension::ENABLED, |
| 643 Extension::DISABLE_NONE, |
| 639 syncer::StringOrdinal(), | 644 syncer::StringOrdinal(), |
| 640 std::string()); | 645 std::string()); |
| 641 | 646 |
| 642 app2_scoped_ = Extension::Create( | 647 app2_scoped_ = Extension::Create( |
| 643 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, | 648 prefs_.temp_dir().AppendASCII("app2_"), Manifest::EXTERNAL_PREF, |
| 644 simple_dict, Extension::NO_FLAGS, &error); | 649 simple_dict, Extension::NO_FLAGS, &error); |
| 645 prefs()->OnExtensionInstalled(app2_scoped_.get(), | 650 prefs()->OnExtensionInstalled(app2_scoped_.get(), |
| 646 Extension::ENABLED, | 651 Extension::ENABLED, |
| 652 Extension::DISABLE_NONE, |
| 647 syncer::StringOrdinal(), | 653 syncer::StringOrdinal(), |
| 648 std::string()); | 654 std::string()); |
| 649 | 655 |
| 650 app1_ = app1_scoped_.get(); | 656 app1_ = app1_scoped_.get(); |
| 651 app2_ = app2_scoped_.get(); | 657 app2_ = app2_scoped_.get(); |
| 652 } | 658 } |
| 653 ~ChromeAppSortingPreinstalledAppsBase() override {} | 659 ~ChromeAppSortingPreinstalledAppsBase() override {} |
| 654 | 660 |
| 655 protected: | 661 protected: |
| 656 // Weak references, for convenience. | 662 // Weak references, for convenience. |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter(); | 829 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter(); |
| 824 default_app_launch_ordinal_ = | 830 default_app_launch_ordinal_ = |
| 825 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); | 831 syncer::StringOrdinal::CreateInitialOrdinal().CreateBefore(); |
| 826 } | 832 } |
| 827 | 833 |
| 828 virtual void SetupUserOrdinals() {} | 834 virtual void SetupUserOrdinals() {} |
| 829 | 835 |
| 830 virtual void InstallApps() { | 836 virtual void InstallApps() { |
| 831 prefs()->OnExtensionInstalled(app_.get(), | 837 prefs()->OnExtensionInstalled(app_.get(), |
| 832 Extension::ENABLED, | 838 Extension::ENABLED, |
| 839 Extension::DISABLE_NONE, |
| 833 syncer::StringOrdinal(), | 840 syncer::StringOrdinal(), |
| 834 std::string()); | 841 std::string()); |
| 835 } | 842 } |
| 836 | 843 |
| 837 scoped_refptr<Extension> app_; | 844 scoped_refptr<Extension> app_; |
| 838 syncer::StringOrdinal default_page_ordinal_; | 845 syncer::StringOrdinal default_page_ordinal_; |
| 839 syncer::StringOrdinal default_app_launch_ordinal_; | 846 syncer::StringOrdinal default_app_launch_ordinal_; |
| 840 }; | 847 }; |
| 841 | 848 |
| 842 // Tests that the app gets its default ordinals. | 849 // Tests that the app gets its default ordinals. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 870 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( | 877 EXPECT_FALSE(app_sorting->GetPageOrdinal(app_->id()).Equals( |
| 871 default_page_ordinal_)); | 878 default_page_ordinal_)); |
| 872 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); | 879 EXPECT_TRUE(app_sorting->GetPageOrdinal(app_->id()).Equals(install_page_)); |
| 873 } | 880 } |
| 874 | 881 |
| 875 protected: | 882 protected: |
| 876 void InstallApps() override { | 883 void InstallApps() override { |
| 877 install_page_ = default_page_ordinal_.CreateAfter(); | 884 install_page_ = default_page_ordinal_.CreateAfter(); |
| 878 prefs()->OnExtensionInstalled(app_.get(), | 885 prefs()->OnExtensionInstalled(app_.get(), |
| 879 Extension::ENABLED, | 886 Extension::ENABLED, |
| 887 Extension::DISABLE_NONE, |
| 880 install_page_, | 888 install_page_, |
| 881 std::string()); | 889 std::string()); |
| 882 } | 890 } |
| 883 | 891 |
| 884 private: | 892 private: |
| 885 syncer::StringOrdinal install_page_; | 893 syncer::StringOrdinal install_page_; |
| 886 }; | 894 }; |
| 887 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, | 895 TEST_F(ChromeAppSortingDefaultOrdinalOverriddenByInstallPage, |
| 888 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} | 896 ChromeAppSortingDefaultOrdinalOverriddenByInstallPage) {} |
| 889 | 897 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 | 1000 |
| 993 private: | 1001 private: |
| 994 scoped_refptr<Extension> first_app_; | 1002 scoped_refptr<Extension> first_app_; |
| 995 scoped_refptr<Extension> second_app_; | 1003 scoped_refptr<Extension> second_app_; |
| 996 }; | 1004 }; |
| 997 TEST_F(ChromeAppSortingSetExtensionVisible, | 1005 TEST_F(ChromeAppSortingSetExtensionVisible, |
| 998 ChromeAppSortingSetExtensionVisible) { | 1006 ChromeAppSortingSetExtensionVisible) { |
| 999 } | 1007 } |
| 1000 | 1008 |
| 1001 } // namespace extensions | 1009 } // namespace extensions |
| OLD | NEW |