| 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_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 4190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4201 | 4201 |
| 4202 // Reload all extensions, and make sure it comes back. | 4202 // Reload all extensions, and make sure it comes back. |
| 4203 std::string extension_id = (*service_->extensions()->begin())->id(); | 4203 std::string extension_id = (*service_->extensions()->begin())->id(); |
| 4204 loaded_.clear(); | 4204 loaded_.clear(); |
| 4205 service_->ReloadExtensions(); | 4205 service_->ReloadExtensions(); |
| 4206 ASSERT_EQ(1u, service_->extensions()->size()); | 4206 ASSERT_EQ(1u, service_->extensions()->size()); |
| 4207 EXPECT_EQ(extension_id, (*service_->extensions()->begin())->id()); | 4207 EXPECT_EQ(extension_id, (*service_->extensions()->begin())->id()); |
| 4208 } | 4208 } |
| 4209 | 4209 |
| 4210 namespace { | 4210 namespace { |
| 4211 class TestSyncProcessorStub : public csync::SyncChangeProcessor { | 4211 class TestSyncProcessorStub : public syncer::SyncChangeProcessor { |
| 4212 virtual csync::SyncError ProcessSyncChanges( | 4212 virtual syncer::SyncError ProcessSyncChanges( |
| 4213 const tracked_objects::Location& from_here, | 4213 const tracked_objects::Location& from_here, |
| 4214 const csync::SyncChangeList& change_list) OVERRIDE { | 4214 const syncer::SyncChangeList& change_list) OVERRIDE { |
| 4215 return csync::SyncError(); | 4215 return syncer::SyncError(); |
| 4216 } | 4216 } |
| 4217 }; | 4217 }; |
| 4218 } | 4218 } |
| 4219 | 4219 |
| 4220 TEST_F(ExtensionServiceTest, GetSyncData) { | 4220 TEST_F(ExtensionServiceTest, GetSyncData) { |
| 4221 InitializeEmptyExtensionService(); | 4221 InitializeEmptyExtensionService(); |
| 4222 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4222 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4223 const Extension* extension = service_->GetInstalledExtension(good_crx); | 4223 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 4224 ASSERT_TRUE(extension); | 4224 ASSERT_TRUE(extension); |
| 4225 | 4225 |
| 4226 service_->MergeDataAndStartSyncing( | 4226 service_->MergeDataAndStartSyncing( |
| 4227 syncable::EXTENSIONS, csync::SyncDataList(), | 4227 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4228 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4228 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4229 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4229 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4230 | 4230 |
| 4231 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4231 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4232 ASSERT_EQ(list.size(), 1U); | 4232 ASSERT_EQ(list.size(), 1U); |
| 4233 extensions::ExtensionSyncData data(list[0]); | 4233 extensions::ExtensionSyncData data(list[0]); |
| 4234 EXPECT_EQ(extension->id(), data.id()); | 4234 EXPECT_EQ(extension->id(), data.id()); |
| 4235 EXPECT_FALSE(data.uninstalled()); | 4235 EXPECT_FALSE(data.uninstalled()); |
| 4236 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 4236 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 4237 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 4237 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); |
| 4238 EXPECT_TRUE(data.version().Equals(*extension->version())); | 4238 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 4239 EXPECT_EQ(extension->update_url(), data.update_url()); | 4239 EXPECT_EQ(extension->update_url(), data.update_url()); |
| 4240 EXPECT_EQ(extension->name(), data.name()); | 4240 EXPECT_EQ(extension->name(), data.name()); |
| 4241 } | 4241 } |
| 4242 | 4242 |
| 4243 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { | 4243 TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
| 4244 InitializeEmptyExtensionService(); | 4244 InitializeEmptyExtensionService(); |
| 4245 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4245 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4246 TerminateExtension(good_crx); | 4246 TerminateExtension(good_crx); |
| 4247 const Extension* extension = service_->GetInstalledExtension(good_crx); | 4247 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 4248 ASSERT_TRUE(extension); | 4248 ASSERT_TRUE(extension); |
| 4249 | 4249 |
| 4250 TestSyncProcessorStub processor; | 4250 TestSyncProcessorStub processor; |
| 4251 service_->MergeDataAndStartSyncing( | 4251 service_->MergeDataAndStartSyncing( |
| 4252 syncable::EXTENSIONS, csync::SyncDataList(), | 4252 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4253 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4253 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4254 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4254 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4255 | 4255 |
| 4256 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4256 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4257 ASSERT_EQ(list.size(), 1U); | 4257 ASSERT_EQ(list.size(), 1U); |
| 4258 extensions::ExtensionSyncData data(list[0]); | 4258 extensions::ExtensionSyncData data(list[0]); |
| 4259 EXPECT_EQ(extension->id(), data.id()); | 4259 EXPECT_EQ(extension->id(), data.id()); |
| 4260 EXPECT_FALSE(data.uninstalled()); | 4260 EXPECT_FALSE(data.uninstalled()); |
| 4261 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); | 4261 EXPECT_EQ(service_->IsExtensionEnabled(good_crx), data.enabled()); |
| 4262 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); | 4262 EXPECT_EQ(service_->IsIncognitoEnabled(good_crx), data.incognito_enabled()); |
| 4263 EXPECT_TRUE(data.version().Equals(*extension->version())); | 4263 EXPECT_TRUE(data.version().Equals(*extension->version())); |
| 4264 EXPECT_EQ(extension->update_url(), data.update_url()); | 4264 EXPECT_EQ(extension->update_url(), data.update_url()); |
| 4265 EXPECT_EQ(extension->name(), data.name()); | 4265 EXPECT_EQ(extension->name(), data.name()); |
| 4266 } | 4266 } |
| 4267 | 4267 |
| 4268 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { | 4268 TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
| 4269 InitializeEmptyExtensionService(); | 4269 InitializeEmptyExtensionService(); |
| 4270 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4270 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4271 const Extension* extension = service_->GetInstalledExtension(good_crx); | 4271 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 4272 ASSERT_TRUE(extension); | 4272 ASSERT_TRUE(extension); |
| 4273 | 4273 |
| 4274 TestSyncProcessorStub processor; | 4274 TestSyncProcessorStub processor; |
| 4275 service_->MergeDataAndStartSyncing(syncable::APPS, csync::SyncDataList(), | 4275 service_->MergeDataAndStartSyncing(syncable::APPS, syncer::SyncDataList(), |
| 4276 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4276 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4277 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4277 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4278 | 4278 |
| 4279 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4279 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4280 ASSERT_EQ(list.size(), 0U); | 4280 ASSERT_EQ(list.size(), 0U); |
| 4281 } | 4281 } |
| 4282 | 4282 |
| 4283 TEST_F(ExtensionServiceTest, GetSyncExtensionDataUserSettings) { | 4283 TEST_F(ExtensionServiceTest, GetSyncExtensionDataUserSettings) { |
| 4284 InitializeEmptyExtensionService(); | 4284 InitializeEmptyExtensionService(); |
| 4285 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4285 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4286 const Extension* extension = service_->GetInstalledExtension(good_crx); | 4286 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 4287 ASSERT_TRUE(extension); | 4287 ASSERT_TRUE(extension); |
| 4288 | 4288 |
| 4289 TestSyncProcessorStub processor; | 4289 TestSyncProcessorStub processor; |
| 4290 service_->MergeDataAndStartSyncing( | 4290 service_->MergeDataAndStartSyncing( |
| 4291 syncable::EXTENSIONS, csync::SyncDataList(), | 4291 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4292 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4292 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4293 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4293 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4294 | 4294 |
| 4295 { | 4295 { |
| 4296 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4296 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4297 ASSERT_EQ(list.size(), 1U); | 4297 ASSERT_EQ(list.size(), 1U); |
| 4298 extensions::ExtensionSyncData data(list[0]); | 4298 extensions::ExtensionSyncData data(list[0]); |
| 4299 EXPECT_TRUE(data.enabled()); | 4299 EXPECT_TRUE(data.enabled()); |
| 4300 EXPECT_FALSE(data.incognito_enabled()); | 4300 EXPECT_FALSE(data.incognito_enabled()); |
| 4301 } | 4301 } |
| 4302 | 4302 |
| 4303 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); | 4303 service_->DisableExtension(good_crx, Extension::DISABLE_USER_ACTION); |
| 4304 { | 4304 { |
| 4305 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4305 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4306 ASSERT_EQ(list.size(), 1U); | 4306 ASSERT_EQ(list.size(), 1U); |
| 4307 extensions::ExtensionSyncData data(list[0]); | 4307 extensions::ExtensionSyncData data(list[0]); |
| 4308 EXPECT_FALSE(data.enabled()); | 4308 EXPECT_FALSE(data.enabled()); |
| 4309 EXPECT_FALSE(data.incognito_enabled()); | 4309 EXPECT_FALSE(data.incognito_enabled()); |
| 4310 } | 4310 } |
| 4311 | 4311 |
| 4312 service_->SetIsIncognitoEnabled(good_crx, true); | 4312 service_->SetIsIncognitoEnabled(good_crx, true); |
| 4313 { | 4313 { |
| 4314 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4314 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4315 ASSERT_EQ(list.size(), 1U); | 4315 ASSERT_EQ(list.size(), 1U); |
| 4316 extensions::ExtensionSyncData data(list[0]); | 4316 extensions::ExtensionSyncData data(list[0]); |
| 4317 EXPECT_FALSE(data.enabled()); | 4317 EXPECT_FALSE(data.enabled()); |
| 4318 EXPECT_TRUE(data.incognito_enabled()); | 4318 EXPECT_TRUE(data.incognito_enabled()); |
| 4319 } | 4319 } |
| 4320 | 4320 |
| 4321 service_->EnableExtension(good_crx); | 4321 service_->EnableExtension(good_crx); |
| 4322 { | 4322 { |
| 4323 csync::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); | 4323 syncer::SyncDataList list = service_->GetAllSyncData(syncable::EXTENSIONS); |
| 4324 ASSERT_EQ(list.size(), 1U); | 4324 ASSERT_EQ(list.size(), 1U); |
| 4325 extensions::ExtensionSyncData data(list[0]); | 4325 extensions::ExtensionSyncData data(list[0]); |
| 4326 EXPECT_TRUE(data.enabled()); | 4326 EXPECT_TRUE(data.enabled()); |
| 4327 EXPECT_TRUE(data.incognito_enabled()); | 4327 EXPECT_TRUE(data.incognito_enabled()); |
| 4328 } | 4328 } |
| 4329 } | 4329 } |
| 4330 | 4330 |
| 4331 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { | 4331 TEST_F(ExtensionServiceTest, SyncForUninstalledExternalExtension) { |
| 4332 InitializeEmptyExtensionService(); | 4332 InitializeEmptyExtensionService(); |
| 4333 InstallCRXWithLocation(data_dir_.AppendASCII("good.crx"), | 4333 InstallCRXWithLocation(data_dir_.AppendASCII("good.crx"), |
| 4334 Extension::EXTERNAL_PREF, INSTALL_NEW); | 4334 Extension::EXTERNAL_PREF, INSTALL_NEW); |
| 4335 const Extension* extension = service_->GetInstalledExtension(good_crx); | 4335 const Extension* extension = service_->GetInstalledExtension(good_crx); |
| 4336 ASSERT_TRUE(extension); | 4336 ASSERT_TRUE(extension); |
| 4337 | 4337 |
| 4338 TestSyncProcessorStub processor; | 4338 TestSyncProcessorStub processor; |
| 4339 service_->MergeDataAndStartSyncing( | 4339 service_->MergeDataAndStartSyncing( |
| 4340 syncable::EXTENSIONS, csync::SyncDataList(), | 4340 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4341 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4341 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4342 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4342 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4343 | 4343 |
| 4344 UninstallExtension(good_crx, false); | 4344 UninstallExtension(good_crx, false); |
| 4345 EXPECT_TRUE(service_->IsExternalExtensionUninstalled(good_crx)); | 4345 EXPECT_TRUE(service_->IsExternalExtensionUninstalled(good_crx)); |
| 4346 | 4346 |
| 4347 sync_pb::EntitySpecifics specifics; | 4347 sync_pb::EntitySpecifics specifics; |
| 4348 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); | 4348 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); |
| 4349 sync_pb::ExtensionSpecifics* extension_specifics = | 4349 sync_pb::ExtensionSpecifics* extension_specifics = |
| 4350 app_specifics->mutable_extension(); | 4350 app_specifics->mutable_extension(); |
| 4351 extension_specifics->set_id(good_crx); | 4351 extension_specifics->set_id(good_crx); |
| 4352 extension_specifics->set_version("1.0"); | 4352 extension_specifics->set_version("1.0"); |
| 4353 extension_specifics->set_enabled(true); | 4353 extension_specifics->set_enabled(true); |
| 4354 | 4354 |
| 4355 csync::SyncData sync_data = | 4355 syncer::SyncData sync_data = |
| 4356 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4356 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4357 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4357 syncer::SyncChange sync_change(syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4358 csync::SyncChangeList list(1); | 4358 syncer::SyncChangeList list(1); |
| 4359 list[0] = sync_change; | 4359 list[0] = sync_change; |
| 4360 | 4360 |
| 4361 service_->ProcessSyncChanges(FROM_HERE, list); | 4361 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4362 EXPECT_TRUE(service_->IsExternalExtensionUninstalled(good_crx)); | 4362 EXPECT_TRUE(service_->IsExternalExtensionUninstalled(good_crx)); |
| 4363 } | 4363 } |
| 4364 | 4364 |
| 4365 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { | 4365 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { |
| 4366 InitializeEmptyExtensionService(); | 4366 InitializeEmptyExtensionService(); |
| 4367 const Extension* app = | 4367 const Extension* app = |
| 4368 PackAndInstallCRX(data_dir_.AppendASCII("app"), INSTALL_NEW); | 4368 PackAndInstallCRX(data_dir_.AppendASCII("app"), INSTALL_NEW); |
| 4369 ASSERT_TRUE(app); | 4369 ASSERT_TRUE(app); |
| 4370 ASSERT_TRUE(app->is_app()); | 4370 ASSERT_TRUE(app->is_app()); |
| 4371 | 4371 |
| 4372 TestSyncProcessorStub processor; | 4372 TestSyncProcessorStub processor; |
| 4373 service_->MergeDataAndStartSyncing(syncable::APPS, csync::SyncDataList(), | 4373 service_->MergeDataAndStartSyncing(syncable::APPS, syncer::SyncDataList(), |
| 4374 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4374 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4375 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4375 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4376 | 4376 |
| 4377 StringOrdinal initial_ordinal = StringOrdinal::CreateInitialOrdinal(); | 4377 StringOrdinal initial_ordinal = StringOrdinal::CreateInitialOrdinal(); |
| 4378 { | 4378 { |
| 4379 csync::SyncDataList list = service_->GetAllSyncData(syncable::APPS); | 4379 syncer::SyncDataList list = service_->GetAllSyncData(syncable::APPS); |
| 4380 ASSERT_EQ(list.size(), 1U); | 4380 ASSERT_EQ(list.size(), 1U); |
| 4381 | 4381 |
| 4382 extensions::AppSyncData app_sync_data(list[0]); | 4382 extensions::AppSyncData app_sync_data(list[0]); |
| 4383 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.app_launch_ordinal())); | 4383 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.app_launch_ordinal())); |
| 4384 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); | 4384 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); |
| 4385 } | 4385 } |
| 4386 | 4386 |
| 4387 ExtensionSorting* sorting = service_->extension_prefs()->extension_sorting(); | 4387 ExtensionSorting* sorting = service_->extension_prefs()->extension_sorting(); |
| 4388 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); | 4388 sorting->SetAppLaunchOrdinal(app->id(), initial_ordinal.CreateAfter()); |
| 4389 { | 4389 { |
| 4390 csync::SyncDataList list = service_->GetAllSyncData(syncable::APPS); | 4390 syncer::SyncDataList list = service_->GetAllSyncData(syncable::APPS); |
| 4391 ASSERT_EQ(list.size(), 1U); | 4391 ASSERT_EQ(list.size(), 1U); |
| 4392 | 4392 |
| 4393 extensions::AppSyncData app_sync_data(list[0]); | 4393 extensions::AppSyncData app_sync_data(list[0]); |
| 4394 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); | 4394 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); |
| 4395 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); | 4395 EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); |
| 4396 } | 4396 } |
| 4397 | 4397 |
| 4398 sorting->SetPageOrdinal(app->id(), initial_ordinal.CreateAfter()); | 4398 sorting->SetPageOrdinal(app->id(), initial_ordinal.CreateAfter()); |
| 4399 { | 4399 { |
| 4400 csync::SyncDataList list = service_->GetAllSyncData(syncable::APPS); | 4400 syncer::SyncDataList list = service_->GetAllSyncData(syncable::APPS); |
| 4401 ASSERT_EQ(list.size(), 1U); | 4401 ASSERT_EQ(list.size(), 1U); |
| 4402 | 4402 |
| 4403 extensions::AppSyncData app_sync_data(list[0]); | 4403 extensions::AppSyncData app_sync_data(list[0]); |
| 4404 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); | 4404 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); |
| 4405 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.page_ordinal())); | 4405 EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.page_ordinal())); |
| 4406 } | 4406 } |
| 4407 } | 4407 } |
| 4408 | 4408 |
| 4409 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { | 4409 TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { |
| 4410 InitializeEmptyExtensionService(); | 4410 InitializeEmptyExtensionService(); |
| 4411 const size_t kAppCount = 3; | 4411 const size_t kAppCount = 3; |
| 4412 const Extension* apps[kAppCount]; | 4412 const Extension* apps[kAppCount]; |
| 4413 apps[0] = PackAndInstallCRX(data_dir_.AppendASCII("app1"), INSTALL_NEW); | 4413 apps[0] = PackAndInstallCRX(data_dir_.AppendASCII("app1"), INSTALL_NEW); |
| 4414 apps[1] = PackAndInstallCRX(data_dir_.AppendASCII("app2"), INSTALL_NEW); | 4414 apps[1] = PackAndInstallCRX(data_dir_.AppendASCII("app2"), INSTALL_NEW); |
| 4415 apps[2] = PackAndInstallCRX(data_dir_.AppendASCII("app4"), INSTALL_NEW); | 4415 apps[2] = PackAndInstallCRX(data_dir_.AppendASCII("app4"), INSTALL_NEW); |
| 4416 for (size_t i = 0; i < kAppCount; ++i) { | 4416 for (size_t i = 0; i < kAppCount; ++i) { |
| 4417 ASSERT_TRUE(apps[i]); | 4417 ASSERT_TRUE(apps[i]); |
| 4418 ASSERT_TRUE(apps[i]->is_app()); | 4418 ASSERT_TRUE(apps[i]->is_app()); |
| 4419 } | 4419 } |
| 4420 | 4420 |
| 4421 TestSyncProcessorStub processor; | 4421 TestSyncProcessorStub processor; |
| 4422 service_->MergeDataAndStartSyncing(syncable::APPS, csync::SyncDataList(), | 4422 service_->MergeDataAndStartSyncing(syncable::APPS, syncer::SyncDataList(), |
| 4423 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4423 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4424 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4424 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4425 | 4425 |
| 4426 service_->OnExtensionMoved(apps[0]->id(), apps[1]->id(), apps[2]->id()); | 4426 service_->OnExtensionMoved(apps[0]->id(), apps[1]->id(), apps[2]->id()); |
| 4427 { | 4427 { |
| 4428 csync::SyncDataList list = service_->GetAllSyncData(syncable::APPS); | 4428 syncer::SyncDataList list = service_->GetAllSyncData(syncable::APPS); |
| 4429 ASSERT_EQ(list.size(), 3U); | 4429 ASSERT_EQ(list.size(), 3U); |
| 4430 | 4430 |
| 4431 extensions::AppSyncData data[kAppCount]; | 4431 extensions::AppSyncData data[kAppCount]; |
| 4432 for (size_t i = 0; i < kAppCount; ++i) | 4432 for (size_t i = 0; i < kAppCount; ++i) |
| 4433 { | 4433 { |
| 4434 data[i] = extensions::AppSyncData(list[i]); | 4434 data[i] = extensions::AppSyncData(list[i]); |
| 4435 } | 4435 } |
| 4436 | 4436 |
| 4437 // The sync data is not always in the same order our apps were installed in, | 4437 // The sync data is not always in the same order our apps were installed in, |
| 4438 // so we do that sorting here so we can make sure the values are changed as | 4438 // so we do that sorting here so we can make sure the values are changed as |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4451 } | 4451 } |
| 4452 | 4452 |
| 4453 TEST_F(ExtensionServiceTest, GetSyncDataList) { | 4453 TEST_F(ExtensionServiceTest, GetSyncDataList) { |
| 4454 InitializeEmptyExtensionService(); | 4454 InitializeEmptyExtensionService(); |
| 4455 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4455 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4456 InstallCRX(data_dir_.AppendASCII("page_action.crx"), INSTALL_NEW); | 4456 InstallCRX(data_dir_.AppendASCII("page_action.crx"), INSTALL_NEW); |
| 4457 InstallCRX(data_dir_.AppendASCII("theme.crx"), INSTALL_NEW); | 4457 InstallCRX(data_dir_.AppendASCII("theme.crx"), INSTALL_NEW); |
| 4458 InstallCRX(data_dir_.AppendASCII("theme2.crx"), INSTALL_NEW); | 4458 InstallCRX(data_dir_.AppendASCII("theme2.crx"), INSTALL_NEW); |
| 4459 | 4459 |
| 4460 TestSyncProcessorStub processor; | 4460 TestSyncProcessorStub processor; |
| 4461 service_->MergeDataAndStartSyncing(syncable::APPS, csync::SyncDataList(), | 4461 service_->MergeDataAndStartSyncing(syncable::APPS, syncer::SyncDataList(), |
| 4462 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4462 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4463 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4463 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4464 service_->MergeDataAndStartSyncing( | 4464 service_->MergeDataAndStartSyncing( |
| 4465 syncable::EXTENSIONS, csync::SyncDataList(), | 4465 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4466 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4466 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4467 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4467 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4468 | 4468 |
| 4469 service_->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); | 4469 service_->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); |
| 4470 TerminateExtension(theme2_crx); | 4470 TerminateExtension(theme2_crx); |
| 4471 | 4471 |
| 4472 EXPECT_EQ(0u, service_->GetAllSyncData(syncable::APPS).size()); | 4472 EXPECT_EQ(0u, service_->GetAllSyncData(syncable::APPS).size()); |
| 4473 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); | 4473 EXPECT_EQ(2u, service_->GetAllSyncData(syncable::EXTENSIONS).size()); |
| 4474 } | 4474 } |
| 4475 | 4475 |
| 4476 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { | 4476 TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { |
| 4477 InitializeEmptyExtensionService(); | 4477 InitializeEmptyExtensionService(); |
| 4478 TestSyncProcessorStub processor; | 4478 TestSyncProcessorStub processor; |
| 4479 service_->MergeDataAndStartSyncing( | 4479 service_->MergeDataAndStartSyncing( |
| 4480 syncable::EXTENSIONS, csync::SyncDataList(), | 4480 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4481 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4481 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4482 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4482 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4483 | 4483 |
| 4484 sync_pb::EntitySpecifics specifics; | 4484 sync_pb::EntitySpecifics specifics; |
| 4485 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 4485 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4486 ext_specifics->set_id(good_crx); | 4486 ext_specifics->set_id(good_crx); |
| 4487 ext_specifics->set_version("1.0"); | 4487 ext_specifics->set_version("1.0"); |
| 4488 csync::SyncData sync_data = | 4488 syncer::SyncData sync_data = |
| 4489 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4489 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4490 csync::SyncChange sync_change(csync::SyncChange::ACTION_DELETE, sync_data); | 4490 syncer::SyncChange sync_change(syncer::SyncChange::ACTION_DELETE, sync_data); |
| 4491 csync::SyncChangeList list(1); | 4491 syncer::SyncChangeList list(1); |
| 4492 list[0] = sync_change; | 4492 list[0] = sync_change; |
| 4493 | 4493 |
| 4494 // Should do nothing. | 4494 // Should do nothing. |
| 4495 service_->ProcessSyncChanges(FROM_HERE, list); | 4495 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4496 EXPECT_FALSE(service_->GetExtensionById(good_crx, true)); | 4496 EXPECT_FALSE(service_->GetExtensionById(good_crx, true)); |
| 4497 | 4497 |
| 4498 // Install the extension. | 4498 // Install the extension. |
| 4499 FilePath extension_path = data_dir_.AppendASCII("good.crx"); | 4499 FilePath extension_path = data_dir_.AppendASCII("good.crx"); |
| 4500 InstallCRX(extension_path, INSTALL_NEW); | 4500 InstallCRX(extension_path, INSTALL_NEW); |
| 4501 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 4501 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 4520 sync_pb::EntitySpecifics specifics; | 4520 sync_pb::EntitySpecifics specifics; |
| 4521 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); | 4521 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); |
| 4522 sync_pb::ExtensionSpecifics* extension_specifics = | 4522 sync_pb::ExtensionSpecifics* extension_specifics = |
| 4523 app_specifics->mutable_extension(); | 4523 app_specifics->mutable_extension(); |
| 4524 extension_specifics->set_id(good_crx); | 4524 extension_specifics->set_id(good_crx); |
| 4525 extension_specifics->set_version( | 4525 extension_specifics->set_version( |
| 4526 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4526 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4527 | 4527 |
| 4528 { | 4528 { |
| 4529 extension_specifics->set_enabled(true); | 4529 extension_specifics->set_enabled(true); |
| 4530 csync::SyncData sync_data = | 4530 syncer::SyncData sync_data = |
| 4531 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4531 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4532 csync::SyncChange sync_change(csync::SyncChange::ACTION_DELETE, sync_data); | 4532 syncer::SyncChange sync_change( |
| 4533 csync::SyncChangeList list(1); | 4533 syncer::SyncChange::ACTION_DELETE, sync_data); |
| 4534 syncer::SyncChangeList list(1); |
| 4534 list[0] = sync_change; | 4535 list[0] = sync_change; |
| 4535 | 4536 |
| 4536 // Should do nothing | 4537 // Should do nothing |
| 4537 service_->ProcessSyncChanges(FROM_HERE, list); | 4538 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4538 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); | 4539 EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
| 4539 } | 4540 } |
| 4540 | 4541 |
| 4541 { | 4542 { |
| 4542 extension_specifics->set_enabled(false); | 4543 extension_specifics->set_enabled(false); |
| 4543 csync::SyncData sync_data = | 4544 syncer::SyncData sync_data = |
| 4544 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4545 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4545 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4546 syncer::SyncChange sync_change( |
| 4546 csync::SyncChangeList list(1); | 4547 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4548 syncer::SyncChangeList list(1); |
| 4547 list[0] = sync_change; | 4549 list[0] = sync_change; |
| 4548 | 4550 |
| 4549 // Should again do nothing. | 4551 // Should again do nothing. |
| 4550 service_->ProcessSyncChanges(FROM_HERE, list); | 4552 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4551 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); | 4553 EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
| 4552 } | 4554 } |
| 4553 } | 4555 } |
| 4554 | 4556 |
| 4555 TEST_F(ExtensionServiceTest, ProcessSyncDataSettings) { | 4557 TEST_F(ExtensionServiceTest, ProcessSyncDataSettings) { |
| 4556 InitializeEmptyExtensionService(); | 4558 InitializeEmptyExtensionService(); |
| 4557 InitializeExtensionProcessManager(); | 4559 InitializeExtensionProcessManager(); |
| 4558 TestSyncProcessorStub processor; | 4560 TestSyncProcessorStub processor; |
| 4559 service_->MergeDataAndStartSyncing( | 4561 service_->MergeDataAndStartSyncing( |
| 4560 syncable::EXTENSIONS, csync::SyncDataList(), | 4562 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4561 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4563 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4562 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4564 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4563 | 4565 |
| 4564 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4566 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4565 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4567 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4566 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4568 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4567 | 4569 |
| 4568 sync_pb::EntitySpecifics specifics; | 4570 sync_pb::EntitySpecifics specifics; |
| 4569 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 4571 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4570 ext_specifics->set_id(good_crx); | 4572 ext_specifics->set_id(good_crx); |
| 4571 ext_specifics->set_version( | 4573 ext_specifics->set_version( |
| 4572 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4574 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4573 ext_specifics->set_enabled(false); | 4575 ext_specifics->set_enabled(false); |
| 4574 | 4576 |
| 4575 { | 4577 { |
| 4576 csync::SyncData sync_data = | 4578 syncer::SyncData sync_data = |
| 4577 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4579 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4578 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4580 syncer::SyncChange sync_change( |
| 4579 csync::SyncChangeList list(1); | 4581 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4582 syncer::SyncChangeList list(1); |
| 4580 list[0] = sync_change; | 4583 list[0] = sync_change; |
| 4581 service_->ProcessSyncChanges(FROM_HERE, list); | 4584 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4582 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 4585 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 4583 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4586 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4584 } | 4587 } |
| 4585 | 4588 |
| 4586 { | 4589 { |
| 4587 ext_specifics->set_enabled(true); | 4590 ext_specifics->set_enabled(true); |
| 4588 ext_specifics->set_incognito_enabled(true); | 4591 ext_specifics->set_incognito_enabled(true); |
| 4589 csync::SyncData sync_data = | 4592 syncer::SyncData sync_data = |
| 4590 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4593 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4591 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4594 syncer::SyncChange sync_change( |
| 4592 csync::SyncChangeList list(1); | 4595 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4596 syncer::SyncChangeList list(1); |
| 4593 list[0] = sync_change; | 4597 list[0] = sync_change; |
| 4594 service_->ProcessSyncChanges(FROM_HERE, list); | 4598 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4595 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4599 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4596 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 4600 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); |
| 4597 } | 4601 } |
| 4598 | 4602 |
| 4599 { | 4603 { |
| 4600 ext_specifics->set_enabled(false); | 4604 ext_specifics->set_enabled(false); |
| 4601 ext_specifics->set_incognito_enabled(true); | 4605 ext_specifics->set_incognito_enabled(true); |
| 4602 csync::SyncData sync_data = | 4606 syncer::SyncData sync_data = |
| 4603 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4607 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4604 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4608 syncer::SyncChange sync_change( |
| 4605 csync::SyncChangeList list(1); | 4609 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4610 syncer::SyncChangeList list(1); |
| 4606 list[0] = sync_change; | 4611 list[0] = sync_change; |
| 4607 service_->ProcessSyncChanges(FROM_HERE, list); | 4612 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4608 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 4613 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 4609 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 4614 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); |
| 4610 } | 4615 } |
| 4611 | 4616 |
| 4612 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 4617 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 4613 } | 4618 } |
| 4614 | 4619 |
| 4615 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { | 4620 TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { |
| 4616 InitializeExtensionServiceWithUpdater(); | 4621 InitializeExtensionServiceWithUpdater(); |
| 4617 TestSyncProcessorStub processor; | 4622 TestSyncProcessorStub processor; |
| 4618 service_->MergeDataAndStartSyncing( | 4623 service_->MergeDataAndStartSyncing( |
| 4619 syncable::EXTENSIONS, csync::SyncDataList(), | 4624 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4620 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4625 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4621 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4626 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4622 | 4627 |
| 4623 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4628 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4624 TerminateExtension(good_crx); | 4629 TerminateExtension(good_crx); |
| 4625 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4630 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4626 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4631 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4627 | 4632 |
| 4628 sync_pb::EntitySpecifics specifics; | 4633 sync_pb::EntitySpecifics specifics; |
| 4629 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 4634 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4630 ext_specifics->set_id(good_crx); | 4635 ext_specifics->set_id(good_crx); |
| 4631 ext_specifics->set_version( | 4636 ext_specifics->set_version( |
| 4632 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4637 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4633 ext_specifics->set_enabled(false); | 4638 ext_specifics->set_enabled(false); |
| 4634 ext_specifics->set_incognito_enabled(true); | 4639 ext_specifics->set_incognito_enabled(true); |
| 4635 csync::SyncData sync_data = | 4640 syncer::SyncData sync_data = |
| 4636 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4641 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4637 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4642 syncer::SyncChange sync_change(syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4638 csync::SyncChangeList list(1); | 4643 syncer::SyncChangeList list(1); |
| 4639 list[0] = sync_change; | 4644 list[0] = sync_change; |
| 4640 | 4645 |
| 4641 service_->ProcessSyncChanges(FROM_HERE, list); | 4646 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4642 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 4647 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 4643 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 4648 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); |
| 4644 | 4649 |
| 4645 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 4650 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 4646 } | 4651 } |
| 4647 | 4652 |
| 4648 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { | 4653 TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
| 4649 InitializeExtensionServiceWithUpdater(); | 4654 InitializeExtensionServiceWithUpdater(); |
| 4650 InitializeRequestContext(); | 4655 InitializeRequestContext(); |
| 4651 TestSyncProcessorStub processor; | 4656 TestSyncProcessorStub processor; |
| 4652 service_->MergeDataAndStartSyncing( | 4657 service_->MergeDataAndStartSyncing( |
| 4653 syncable::EXTENSIONS, csync::SyncDataList(), | 4658 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4654 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4659 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4655 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4660 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4656 | 4661 |
| 4657 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); | 4662 InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
| 4658 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4663 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4659 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4664 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4660 | 4665 |
| 4661 sync_pb::EntitySpecifics specifics; | 4666 sync_pb::EntitySpecifics specifics; |
| 4662 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 4667 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4663 ext_specifics->set_id(good_crx); | 4668 ext_specifics->set_id(good_crx); |
| 4664 ext_specifics->set_enabled(true); | 4669 ext_specifics->set_enabled(true); |
| 4665 | 4670 |
| 4666 { | 4671 { |
| 4667 ext_specifics->set_version( | 4672 ext_specifics->set_version( |
| 4668 service_->GetInstalledExtension(good_crx)->version()->GetString()); | 4673 service_->GetInstalledExtension(good_crx)->version()->GetString()); |
| 4669 csync::SyncData sync_data = | 4674 syncer::SyncData sync_data = |
| 4670 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4675 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4671 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4676 syncer::SyncChange sync_change( |
| 4672 csync::SyncChangeList list(1); | 4677 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4678 syncer::SyncChangeList list(1); |
| 4673 list[0] = sync_change; | 4679 list[0] = sync_change; |
| 4674 | 4680 |
| 4675 // Should do nothing if extension version == sync version. | 4681 // Should do nothing if extension version == sync version. |
| 4676 service_->ProcessSyncChanges(FROM_HERE, list); | 4682 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4677 EXPECT_FALSE(service_->updater()->WillCheckSoon()); | 4683 EXPECT_FALSE(service_->updater()->WillCheckSoon()); |
| 4678 } | 4684 } |
| 4679 | 4685 |
| 4680 // Should do nothing if extension version > sync version (but see | 4686 // Should do nothing if extension version > sync version (but see |
| 4681 // the TODO in ProcessExtensionSyncData). | 4687 // the TODO in ProcessExtensionSyncData). |
| 4682 { | 4688 { |
| 4683 ext_specifics->set_version("0.0.0.0"); | 4689 ext_specifics->set_version("0.0.0.0"); |
| 4684 csync::SyncData sync_data = | 4690 syncer::SyncData sync_data = |
| 4685 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4691 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4686 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4692 syncer::SyncChange sync_change( |
| 4687 csync::SyncChangeList list(1); | 4693 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4694 syncer::SyncChangeList list(1); |
| 4688 list[0] = sync_change; | 4695 list[0] = sync_change; |
| 4689 | 4696 |
| 4690 service_->ProcessSyncChanges(FROM_HERE, list); | 4697 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4691 EXPECT_FALSE(service_->updater()->WillCheckSoon()); | 4698 EXPECT_FALSE(service_->updater()->WillCheckSoon()); |
| 4692 } | 4699 } |
| 4693 | 4700 |
| 4694 // Should kick off an update if extension version < sync version. | 4701 // Should kick off an update if extension version < sync version. |
| 4695 { | 4702 { |
| 4696 ext_specifics->set_version("9.9.9.9"); | 4703 ext_specifics->set_version("9.9.9.9"); |
| 4697 csync::SyncData sync_data = | 4704 syncer::SyncData sync_data = |
| 4698 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4705 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4699 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4706 syncer::SyncChange sync_change( |
| 4700 csync::SyncChangeList list(1); | 4707 syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4708 syncer::SyncChangeList list(1); |
| 4701 list[0] = sync_change; | 4709 list[0] = sync_change; |
| 4702 | 4710 |
| 4703 service_->ProcessSyncChanges(FROM_HERE, list); | 4711 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4704 EXPECT_TRUE(service_->updater()->WillCheckSoon()); | 4712 EXPECT_TRUE(service_->updater()->WillCheckSoon()); |
| 4705 } | 4713 } |
| 4706 | 4714 |
| 4707 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); | 4715 EXPECT_FALSE(service_->pending_extension_manager()->IsIdPending(good_crx)); |
| 4708 } | 4716 } |
| 4709 | 4717 |
| 4710 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { | 4718 TEST_F(ExtensionServiceTest, ProcessSyncDataNotInstalled) { |
| 4711 InitializeExtensionServiceWithUpdater(); | 4719 InitializeExtensionServiceWithUpdater(); |
| 4712 InitializeRequestContext(); | 4720 InitializeRequestContext(); |
| 4713 TestSyncProcessorStub processor; | 4721 TestSyncProcessorStub processor; |
| 4714 service_->MergeDataAndStartSyncing( | 4722 service_->MergeDataAndStartSyncing( |
| 4715 syncable::EXTENSIONS, csync::SyncDataList(), | 4723 syncable::EXTENSIONS, syncer::SyncDataList(), |
| 4716 scoped_ptr<csync::SyncChangeProcessor>(new TestSyncProcessorStub), | 4724 scoped_ptr<syncer::SyncChangeProcessor>(new TestSyncProcessorStub), |
| 4717 scoped_ptr<csync::SyncErrorFactory>(new csync::SyncErrorFactoryMock())); | 4725 scoped_ptr<syncer::SyncErrorFactory>(new syncer::SyncErrorFactoryMock())); |
| 4718 | 4726 |
| 4719 sync_pb::EntitySpecifics specifics; | 4727 sync_pb::EntitySpecifics specifics; |
| 4720 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 4728 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
| 4721 ext_specifics->set_id(good_crx); | 4729 ext_specifics->set_id(good_crx); |
| 4722 ext_specifics->set_enabled(false); | 4730 ext_specifics->set_enabled(false); |
| 4723 ext_specifics->set_incognito_enabled(true); | 4731 ext_specifics->set_incognito_enabled(true); |
| 4724 ext_specifics->set_update_url("http://www.google.com/"); | 4732 ext_specifics->set_update_url("http://www.google.com/"); |
| 4725 ext_specifics->set_version("1.2.3.4"); | 4733 ext_specifics->set_version("1.2.3.4"); |
| 4726 csync::SyncData sync_data = | 4734 syncer::SyncData sync_data = |
| 4727 csync::SyncData::CreateLocalData(good_crx, "Name", specifics); | 4735 syncer::SyncData::CreateLocalData(good_crx, "Name", specifics); |
| 4728 csync::SyncChange sync_change(csync::SyncChange::ACTION_UPDATE, sync_data); | 4736 syncer::SyncChange sync_change(syncer::SyncChange::ACTION_UPDATE, sync_data); |
| 4729 csync::SyncChangeList list(1); | 4737 syncer::SyncChangeList list(1); |
| 4730 list[0] = sync_change; | 4738 list[0] = sync_change; |
| 4731 | 4739 |
| 4732 | 4740 |
| 4733 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); | 4741 EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
| 4734 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); | 4742 EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
| 4735 service_->ProcessSyncChanges(FROM_HERE, list); | 4743 service_->ProcessSyncChanges(FROM_HERE, list); |
| 4736 EXPECT_TRUE(service_->updater()->WillCheckSoon()); | 4744 EXPECT_TRUE(service_->updater()->WillCheckSoon()); |
| 4737 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); | 4745 EXPECT_FALSE(service_->IsExtensionEnabled(good_crx)); |
| 4738 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); | 4746 EXPECT_TRUE(service_->IsIncognitoEnabled(good_crx)); |
| 4739 | 4747 |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5213 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", | 5221 provider->UpdateOrAddExtension(hosted_app, "1.0.0.0", |
| 5214 data_dir_.AppendASCII("hosted_app.crx")); | 5222 data_dir_.AppendASCII("hosted_app.crx")); |
| 5215 | 5223 |
| 5216 service_->CheckForExternalUpdates(); | 5224 service_->CheckForExternalUpdates(); |
| 5217 loop_.RunAllPending(); | 5225 loop_.RunAllPending(); |
| 5218 | 5226 |
| 5219 ASSERT_TRUE(service_->PopulateExtensionGlobalError( | 5227 ASSERT_TRUE(service_->PopulateExtensionGlobalError( |
| 5220 extension_global_error.get())); | 5228 extension_global_error.get())); |
| 5221 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); | 5229 ASSERT_EQ(1u, extension_global_error->get_external_extension_ids()->size()); |
| 5222 } | 5230 } |
| OLD | NEW |