OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 using base::ListValue; | 154 using base::ListValue; |
155 using base::Value; | 155 using base::Value; |
156 using content::BrowserContext; | 156 using content::BrowserContext; |
157 using content::BrowserThread; | 157 using content::BrowserThread; |
158 using content::DOMStorageContext; | 158 using content::DOMStorageContext; |
159 using content::IndexedDBContext; | 159 using content::IndexedDBContext; |
160 using content::PluginService; | 160 using content::PluginService; |
161 using extensions::APIPermission; | 161 using extensions::APIPermission; |
162 using extensions::APIPermissionSet; | 162 using extensions::APIPermissionSet; |
163 using extensions::AppSorting; | 163 using extensions::AppSorting; |
| 164 using extensions::AppSyncData; |
164 using extensions::Blacklist; | 165 using extensions::Blacklist; |
165 using extensions::CrxInstaller; | 166 using extensions::CrxInstaller; |
166 using extensions::Extension; | 167 using extensions::Extension; |
167 using extensions::ExtensionCreator; | 168 using extensions::ExtensionCreator; |
168 using extensions::ExtensionPrefs; | 169 using extensions::ExtensionPrefs; |
169 using extensions::ExtensionRegistry; | 170 using extensions::ExtensionRegistry; |
170 using extensions::ExtensionResource; | 171 using extensions::ExtensionResource; |
171 using extensions::ExtensionSyncData; | 172 using extensions::ExtensionSyncData; |
172 using extensions::ExtensionSystem; | 173 using extensions::ExtensionSystem; |
173 using extensions::FakeSafeBrowsingDatabaseManager; | 174 using extensions::FakeSafeBrowsingDatabaseManager; |
(...skipping 5691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5865 | 5866 |
5866 service()->Init(); | 5867 service()->Init(); |
5867 ASSERT_TRUE(service()->is_ready()); | 5868 ASSERT_TRUE(service()->is_ready()); |
5868 | 5869 |
5869 ASSERT_EQ(3u, loaded_.size()); | 5870 ASSERT_EQ(3u, loaded_.size()); |
5870 | 5871 |
5871 // We start enabled. | 5872 // We start enabled. |
5872 const Extension* extension = service()->GetExtensionById(good0, true); | 5873 const Extension* extension = service()->GetExtensionById(good0, true); |
5873 ASSERT_TRUE(extension); | 5874 ASSERT_TRUE(extension); |
5874 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5875 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
5875 extensions::ExtensionSyncData disable_good_crx( | 5876 ExtensionSyncData disable_good_crx(*extension, false, false, false, |
5876 *extension, false, false, false, ExtensionSyncData::BOOLEAN_UNSET); | 5877 ExtensionSyncData::BOOLEAN_UNSET); |
5877 | 5878 |
5878 // Then sync data arrives telling us to disable |good0|. | 5879 // Then sync data arrives telling us to disable |good0|. |
5879 syncer::SyncDataList sync_data; | 5880 syncer::SyncDataList sync_data; |
5880 sync_data.push_back(disable_good_crx.GetSyncData()); | 5881 sync_data.push_back(disable_good_crx.GetSyncData()); |
5881 extension_sync_service()->MergeDataAndStartSyncing( | 5882 extension_sync_service()->MergeDataAndStartSyncing( |
5882 syncer::EXTENSIONS, | 5883 syncer::EXTENSIONS, |
5883 sync_data, | 5884 sync_data, |
5884 scoped_ptr<syncer::SyncChangeProcessor>( | 5885 scoped_ptr<syncer::SyncChangeProcessor>( |
5885 new syncer::FakeSyncChangeProcessor), | 5886 new syncer::FakeSyncChangeProcessor), |
5886 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5887 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
(...skipping 25 matching lines...) Expand all Loading... |
5912 // Disable extension before first sync data arrives. | 5913 // Disable extension before first sync data arrives. |
5913 service()->DisableExtension(good0, Extension::DISABLE_USER_ACTION); | 5914 service()->DisableExtension(good0, Extension::DISABLE_USER_ACTION); |
5914 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); | 5915 ASSERT_FALSE(service()->IsExtensionEnabled(good0)); |
5915 | 5916 |
5916 // Enable extension - this is now the most recent state. | 5917 // Enable extension - this is now the most recent state. |
5917 service()->EnableExtension(good0); | 5918 service()->EnableExtension(good0); |
5918 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 5919 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
5919 | 5920 |
5920 // Now sync data comes in that says to disable good0. This should be | 5921 // Now sync data comes in that says to disable good0. This should be |
5921 // ignored. | 5922 // ignored. |
5922 extensions::ExtensionSyncData disable_good_crx( | 5923 ExtensionSyncData disable_good_crx(*extension, false, false, false, |
5923 *extension, false, false, false, ExtensionSyncData::BOOLEAN_FALSE); | 5924 ExtensionSyncData::BOOLEAN_FALSE); |
5924 syncer::SyncDataList sync_data; | 5925 syncer::SyncDataList sync_data; |
5925 sync_data.push_back(disable_good_crx.GetSyncData()); | 5926 sync_data.push_back(disable_good_crx.GetSyncData()); |
5926 extension_sync_service()->MergeDataAndStartSyncing( | 5927 extension_sync_service()->MergeDataAndStartSyncing( |
5927 syncer::EXTENSIONS, | 5928 syncer::EXTENSIONS, |
5928 sync_data, | 5929 sync_data, |
5929 scoped_ptr<syncer::SyncChangeProcessor>( | 5930 scoped_ptr<syncer::SyncChangeProcessor>( |
5930 new syncer::FakeSyncChangeProcessor), | 5931 new syncer::FakeSyncChangeProcessor), |
5931 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5932 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
5932 | 5933 |
5933 // The extension was enabled locally before the sync data arrived, so it | 5934 // The extension was enabled locally before the sync data arrived, so it |
(...skipping 11 matching lines...) Expand all Loading... |
5945 extension_sync_service()->MergeDataAndStartSyncing( | 5946 extension_sync_service()->MergeDataAndStartSyncing( |
5946 syncer::EXTENSIONS, | 5947 syncer::EXTENSIONS, |
5947 syncer::SyncDataList(), | 5948 syncer::SyncDataList(), |
5948 scoped_ptr<syncer::SyncChangeProcessor>( | 5949 scoped_ptr<syncer::SyncChangeProcessor>( |
5949 new syncer::FakeSyncChangeProcessor), | 5950 new syncer::FakeSyncChangeProcessor), |
5950 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5951 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
5951 | 5952 |
5952 syncer::SyncDataList list = | 5953 syncer::SyncDataList list = |
5953 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 5954 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
5954 ASSERT_EQ(list.size(), 1U); | 5955 ASSERT_EQ(list.size(), 1U); |
5955 extensions::ExtensionSyncData data(list[0]); | 5956 scoped_ptr<ExtensionSyncData> data = |
5956 EXPECT_EQ(extension->id(), data.id()); | 5957 ExtensionSyncData::CreateFromSyncData(list[0]); |
5957 EXPECT_FALSE(data.uninstalled()); | 5958 ASSERT_TRUE(data.get()); |
5958 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data.enabled()); | 5959 EXPECT_EQ(extension->id(), data->id()); |
| 5960 EXPECT_FALSE(data->uninstalled()); |
| 5961 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); |
5959 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), | 5962 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), |
5960 data.incognito_enabled()); | 5963 data->incognito_enabled()); |
5961 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data.all_urls_enabled()); | 5964 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
5962 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5965 EXPECT_TRUE(data->version().Equals(*extension->version())); |
5963 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 5966 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
5964 data.update_url()); | 5967 data->update_url()); |
5965 EXPECT_EQ(extension->name(), data.name()); | 5968 EXPECT_EQ(extension->name(), data->name()); |
5966 } | 5969 } |
5967 | 5970 |
5968 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { | 5971 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
5969 InitializeEmptyExtensionService(); | 5972 InitializeEmptyExtensionService(); |
5970 InitializeExtensionSyncService(); | 5973 InitializeExtensionSyncService(); |
5971 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 5974 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
5972 TerminateExtension(good_crx); | 5975 TerminateExtension(good_crx); |
5973 const Extension* extension = service()->GetInstalledExtension(good_crx); | 5976 const Extension* extension = service()->GetInstalledExtension(good_crx); |
5974 ASSERT_TRUE(extension); | 5977 ASSERT_TRUE(extension); |
5975 | 5978 |
5976 syncer::FakeSyncChangeProcessor processor; | 5979 syncer::FakeSyncChangeProcessor processor; |
5977 extension_sync_service()->MergeDataAndStartSyncing( | 5980 extension_sync_service()->MergeDataAndStartSyncing( |
5978 syncer::EXTENSIONS, | 5981 syncer::EXTENSIONS, |
5979 syncer::SyncDataList(), | 5982 syncer::SyncDataList(), |
5980 scoped_ptr<syncer::SyncChangeProcessor>( | 5983 scoped_ptr<syncer::SyncChangeProcessor>( |
5981 new syncer::FakeSyncChangeProcessor), | 5984 new syncer::FakeSyncChangeProcessor), |
5982 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 5985 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
5983 | 5986 |
5984 syncer::SyncDataList list = | 5987 syncer::SyncDataList list = |
5985 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 5988 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
5986 ASSERT_EQ(list.size(), 1U); | 5989 ASSERT_EQ(list.size(), 1U); |
5987 extensions::ExtensionSyncData data(list[0]); | 5990 scoped_ptr<ExtensionSyncData> data = |
5988 EXPECT_EQ(extension->id(), data.id()); | 5991 ExtensionSyncData::CreateFromSyncData(list[0]); |
5989 EXPECT_FALSE(data.uninstalled()); | 5992 ASSERT_TRUE(data.get()); |
5990 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data.enabled()); | 5993 EXPECT_EQ(extension->id(), data->id()); |
| 5994 EXPECT_FALSE(data->uninstalled()); |
| 5995 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); |
5991 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), | 5996 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), |
5992 data.incognito_enabled()); | 5997 data->incognito_enabled()); |
5993 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data.all_urls_enabled()); | 5998 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
5994 EXPECT_TRUE(data.version().Equals(*extension->version())); | 5999 EXPECT_TRUE(data->version().Equals(*extension->version())); |
5995 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 6000 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
5996 data.update_url()); | 6001 data->update_url()); |
5997 EXPECT_EQ(extension->name(), data.name()); | 6002 EXPECT_EQ(extension->name(), data->name()); |
5998 } | 6003 } |
5999 | 6004 |
6000 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { | 6005 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
6001 InitializeEmptyExtensionService(); | 6006 InitializeEmptyExtensionService(); |
6002 InitializeExtensionSyncService(); | 6007 InitializeExtensionSyncService(); |
6003 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 6008 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
6004 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6009 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6005 ASSERT_TRUE(extension); | 6010 ASSERT_TRUE(extension); |
6006 | 6011 |
6007 syncer::FakeSyncChangeProcessor processor; | 6012 syncer::FakeSyncChangeProcessor processor; |
(...skipping 21 matching lines...) Expand all Loading... |
6029 syncer::EXTENSIONS, | 6034 syncer::EXTENSIONS, |
6030 syncer::SyncDataList(), | 6035 syncer::SyncDataList(), |
6031 scoped_ptr<syncer::SyncChangeProcessor>( | 6036 scoped_ptr<syncer::SyncChangeProcessor>( |
6032 new syncer::FakeSyncChangeProcessor), | 6037 new syncer::FakeSyncChangeProcessor), |
6033 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6038 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6034 | 6039 |
6035 { | 6040 { |
6036 syncer::SyncDataList list = | 6041 syncer::SyncDataList list = |
6037 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 6042 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
6038 ASSERT_EQ(list.size(), 1U); | 6043 ASSERT_EQ(list.size(), 1U); |
6039 extensions::ExtensionSyncData data(list[0]); | 6044 scoped_ptr<ExtensionSyncData> data = |
6040 EXPECT_TRUE(data.enabled()); | 6045 ExtensionSyncData::CreateFromSyncData(list[0]); |
6041 EXPECT_FALSE(data.incognito_enabled()); | 6046 ASSERT_TRUE(data.get()); |
6042 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data.all_urls_enabled()); | 6047 EXPECT_TRUE(data->enabled()); |
| 6048 EXPECT_FALSE(data->incognito_enabled()); |
| 6049 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
6043 } | 6050 } |
6044 | 6051 |
6045 service()->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 6052 service()->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
6046 { | 6053 { |
6047 syncer::SyncDataList list = | 6054 syncer::SyncDataList list = |
6048 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 6055 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
6049 ASSERT_EQ(list.size(), 1U); | 6056 ASSERT_EQ(list.size(), 1U); |
6050 extensions::ExtensionSyncData data(list[0]); | 6057 scoped_ptr<ExtensionSyncData> data = |
6051 EXPECT_FALSE(data.enabled()); | 6058 ExtensionSyncData::CreateFromSyncData(list[0]); |
6052 EXPECT_FALSE(data.incognito_enabled()); | 6059 ASSERT_TRUE(data.get()); |
6053 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data.all_urls_enabled()); | 6060 EXPECT_FALSE(data->enabled()); |
| 6061 EXPECT_FALSE(data->incognito_enabled()); |
| 6062 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
6054 } | 6063 } |
6055 | 6064 |
6056 extensions::util::SetIsIncognitoEnabled(good_crx, profile(), true); | 6065 extensions::util::SetIsIncognitoEnabled(good_crx, profile(), true); |
6057 extensions::util::SetAllowedScriptingOnAllUrls( | 6066 extensions::util::SetAllowedScriptingOnAllUrls( |
6058 good_crx, profile(), false); | 6067 good_crx, profile(), false); |
6059 { | 6068 { |
6060 syncer::SyncDataList list = | 6069 syncer::SyncDataList list = |
6061 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 6070 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
6062 ASSERT_EQ(list.size(), 1U); | 6071 ASSERT_EQ(list.size(), 1U); |
6063 extensions::ExtensionSyncData data(list[0]); | 6072 scoped_ptr<ExtensionSyncData> data = |
6064 EXPECT_FALSE(data.enabled()); | 6073 ExtensionSyncData::CreateFromSyncData(list[0]); |
6065 EXPECT_TRUE(data.incognito_enabled()); | 6074 ASSERT_TRUE(data.get()); |
6066 EXPECT_EQ(ExtensionSyncData::BOOLEAN_FALSE, data.all_urls_enabled()); | 6075 EXPECT_FALSE(data->enabled()); |
| 6076 EXPECT_TRUE(data->incognito_enabled()); |
| 6077 EXPECT_EQ(ExtensionSyncData::BOOLEAN_FALSE, data->all_urls_enabled()); |
6067 } | 6078 } |
6068 | 6079 |
6069 service()->EnableExtension(good_crx); | 6080 service()->EnableExtension(good_crx); |
6070 extensions::util::SetAllowedScriptingOnAllUrls( | 6081 extensions::util::SetAllowedScriptingOnAllUrls( |
6071 good_crx, profile(), true); | 6082 good_crx, profile(), true); |
6072 { | 6083 { |
6073 syncer::SyncDataList list = | 6084 syncer::SyncDataList list = |
6074 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 6085 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
6075 ASSERT_EQ(list.size(), 1U); | 6086 ASSERT_EQ(list.size(), 1U); |
6076 extensions::ExtensionSyncData data(list[0]); | 6087 scoped_ptr<ExtensionSyncData> data = |
6077 EXPECT_TRUE(data.enabled()); | 6088 ExtensionSyncData::CreateFromSyncData(list[0]); |
6078 EXPECT_TRUE(data.incognito_enabled()); | 6089 ASSERT_TRUE(data.get()); |
6079 EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE, data.all_urls_enabled()); | 6090 EXPECT_TRUE(data->enabled()); |
| 6091 EXPECT_TRUE(data->incognito_enabled()); |
| 6092 EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE, data->all_urls_enabled()); |
6080 } | 6093 } |
6081 } | 6094 } |
6082 | 6095 |
6083 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { | 6096 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { |
6084 InitializeEmptyExtensionService(); | 6097 InitializeEmptyExtensionService(); |
6085 InitializeExtensionSyncService(); | 6098 InitializeExtensionSyncService(); |
6086 InstallCRXWithLocation( | 6099 InstallCRXWithLocation( |
6087 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); | 6100 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); |
6088 const Extension* extension = service()->GetInstalledExtension(good_crx); | 6101 const Extension* extension = service()->GetInstalledExtension(good_crx); |
6089 ASSERT_TRUE(extension); | 6102 ASSERT_TRUE(extension); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6137 new syncer::FakeSyncChangeProcessor), | 6150 new syncer::FakeSyncChangeProcessor), |
6138 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6151 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6139 | 6152 |
6140 syncer::StringOrdinal initial_ordinal = | 6153 syncer::StringOrdinal initial_ordinal = |
6141 syncer::StringOrdinal::CreateInitialOrdinal(); | 6154 syncer::StringOrdinal::CreateInitialOrdinal(); |
6142 { | 6155 { |
6143 syncer::SyncDataList list = | 6156 syncer::SyncDataList list = |
6144 extension_sync_service()->GetAllSyncData(syncer::APPS); | 6157 extension_sync_service()->GetAllSyncData(syncer::APPS); |
6145 ASSERT_EQ(list.size(), 1U); | 6158 ASSERT_EQ(list.size(), 1U); |
6146 | 6159 |
6147 extensions::AppSyncData app_sync_data(list[0]); | 6160 scoped_ptr<AppSyncData> app_sync_data = |
6148 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal())); | 6161 AppSyncData::CreateFromSyncData(list[0]); |
6149 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); | 6162 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data->app_launch_ordinal())); |
| 6163 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data->page_ordinal())); |
6150 } | 6164 } |
6151 | 6165 |
6152 AppSorting* sorting = ExtensionPrefs::Get(profile())->app_sorting(); | 6166 AppSorting* sorting = ExtensionPrefs::Get(profile())->app_sorting(); |
6153 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); | 6167 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); |
6154 { | 6168 { |
6155 syncer::SyncDataList list = | 6169 syncer::SyncDataList list = |
6156 extension_sync_service()->GetAllSyncData(syncer::APPS); | 6170 extension_sync_service()->GetAllSyncData(syncer::APPS); |
6157 ASSERT_EQ(list.size(), 1U); | 6171 ASSERT_EQ(list.size(), 1U); |
6158 | 6172 |
6159 extensions::AppSyncData app_sync_data(list[0]); | 6173 scoped_ptr<AppSyncData> app_sync_data = |
6160 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); | 6174 AppSyncData::CreateFromSyncData(list[0]); |
6161 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); | 6175 ASSERT_TRUE(app_sync_data.get()); |
| 6176 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data->app_launch_ordinal())); |
| 6177 EXPECT_TRUE(initial_ordinal.Equals(app_sync_data->page_ordinal())); |
6162 } | 6178 } |
6163 | 6179 |
6164 sorting->SetPageOrdinal(app->id(), initial_ordinal.CreateAfter()); | 6180 sorting->SetPageOrdinal(app->id(), initial_ordinal.CreateAfter()); |
6165 { | 6181 { |
6166 syncer::SyncDataList list = | 6182 syncer::SyncDataList list = |
6167 extension_sync_service()->GetAllSyncData(syncer::APPS); | 6183 extension_sync_service()->GetAllSyncData(syncer::APPS); |
6168 ASSERT_EQ(list.size(), 1U); | 6184 ASSERT_EQ(list.size(), 1U); |
6169 | 6185 |
6170 extensions::AppSyncData app_sync_data(list[0]); | 6186 scoped_ptr<AppSyncData> app_sync_data = |
6171 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); | 6187 AppSyncData::CreateFromSyncData(list[0]); |
6172 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.page_ordinal())); | 6188 ASSERT_TRUE(app_sync_data.get()); |
| 6189 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data->app_launch_ordinal())); |
| 6190 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data->page_ordinal())); |
6173 } | 6191 } |
6174 } | 6192 } |
6175 | 6193 |
6176 // TODO (rdevlin.cronin): The OnExtensionMoved() method has been removed from | 6194 // TODO (rdevlin.cronin): The OnExtensionMoved() method has been removed from |
6177 // ExtensionService, so this test probably needs a new home. Unfortunately, it | 6195 // ExtensionService, so this test probably needs a new home. Unfortunately, it |
6178 // relies pretty heavily on things like InitializeExtension[Sync]Service() and | 6196 // relies pretty heavily on things like InitializeExtension[Sync]Service() and |
6179 // PackAndInstallCRX(). When we clean up a bit more, this should move out. | 6197 // PackAndInstallCRX(). When we clean up a bit more, this should move out. |
6180 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { | 6198 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { |
6181 InitializeEmptyExtensionService(); | 6199 InitializeEmptyExtensionService(); |
6182 InitializeExtensionSyncService(); | 6200 InitializeExtensionSyncService(); |
(...skipping 16 matching lines...) Expand all Loading... |
6199 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); | 6217 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
6200 | 6218 |
6201 ExtensionPrefs::Get(service()->GetBrowserContext()) | 6219 ExtensionPrefs::Get(service()->GetBrowserContext()) |
6202 ->app_sorting() | 6220 ->app_sorting() |
6203 ->OnExtensionMoved(apps[0]->id(), apps[1]->id(), apps[2]->id()); | 6221 ->OnExtensionMoved(apps[0]->id(), apps[1]->id(), apps[2]->id()); |
6204 { | 6222 { |
6205 syncer::SyncDataList list = | 6223 syncer::SyncDataList list = |
6206 extension_sync_service()->GetAllSyncData(syncer::APPS); | 6224 extension_sync_service()->GetAllSyncData(syncer::APPS); |
6207 ASSERT_EQ(list.size(), 3U); | 6225 ASSERT_EQ(list.size(), 3U); |
6208 | 6226 |
6209 extensions::AppSyncData data[kAppCount]; | 6227 scoped_ptr<AppSyncData> data[kAppCount]; |
6210 for (size_t i = 0; i < kAppCount; ++i) { | 6228 for (size_t i = 0; i < kAppCount; ++i) { |
6211 data[i] = extensions::AppSyncData(list[i]); | 6229 data[i] = AppSyncData::CreateFromSyncData(list[i]); |
| 6230 ASSERT_TRUE(data[i].get()); |
6212 } | 6231 } |
6213 | 6232 |
6214 // The sync data is not always in the same order our apps were installed in, | 6233 // The sync data is not always in the same order our apps were installed in, |
6215 // so we do that sorting here so we can make sure the values are changed as | 6234 // so we do that sorting here so we can make sure the values are changed as |
6216 // expected. | 6235 // expected. |
6217 syncer::StringOrdinal app_launch_ordinals[kAppCount]; | 6236 syncer::StringOrdinal app_launch_ordinals[kAppCount]; |
6218 for (size_t i = 0; i < kAppCount; ++i) { | 6237 for (size_t i = 0; i < kAppCount; ++i) { |
6219 for (size_t j = 0; j < kAppCount; ++j) { | 6238 for (size_t j = 0; j < kAppCount; ++j) { |
6220 if (apps[i]->id() == data[j].id()) | 6239 if (apps[i]->id() == data[j]->id()) |
6221 app_launch_ordinals[i] = data[j].app_launch_ordinal(); | 6240 app_launch_ordinals[i] = data[j]->app_launch_ordinal(); |
6222 } | 6241 } |
6223 } | 6242 } |
6224 | 6243 |
6225 EXPECT_TRUE(app_launch_ordinals[1].LessThan(app_launch_ordinals[0])); | 6244 EXPECT_TRUE(app_launch_ordinals[1].LessThan(app_launch_ordinals[0])); |
6226 EXPECT_TRUE(app_launch_ordinals[0].LessThan(app_launch_ordinals[2])); | 6245 EXPECT_TRUE(app_launch_ordinals[0].LessThan(app_launch_ordinals[2])); |
6227 } | 6246 } |
6228 } | 6247 } |
6229 | 6248 |
6230 TEST_F(ExtensionServiceTest, GetSyncDataList) { | 6249 TEST_F(ExtensionServiceTest, GetSyncDataList) { |
6231 InitializeEmptyExtensionService(); | 6250 InitializeEmptyExtensionService(); |
(...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7703 | 7722 |
7704 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, | 7723 service()->Observe(chrome::NOTIFICATION_PROFILE_DESTRUCTION_STARTED, |
7705 content::Source<Profile>(profile()), | 7724 content::Source<Profile>(profile()), |
7706 content::NotificationService::NoDetails()); | 7725 content::NotificationService::NoDetails()); |
7707 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); | 7726 EXPECT_EQ(UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN, unloaded_reason_); |
7708 EXPECT_EQ(0u, registry()->enabled_extensions().size()); | 7727 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
7709 EXPECT_EQ(0u, registry()->disabled_extensions().size()); | 7728 EXPECT_EQ(0u, registry()->disabled_extensions().size()); |
7710 EXPECT_EQ(0u, registry()->terminated_extensions().size()); | 7729 EXPECT_EQ(0u, registry()->terminated_extensions().size()); |
7711 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); | 7730 EXPECT_EQ(0u, registry()->blacklisted_extensions().size()); |
7712 } | 7731 } |
OLD | NEW |