OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 EXPECT_EQ(expected_type_, type); | 156 EXPECT_EQ(expected_type_, type); |
157 return FakeSyncChangeProcessor::GetAllSyncData(type); | 157 return FakeSyncChangeProcessor::GetAllSyncData(type); |
158 } | 158 } |
159 | 159 |
160 // This is a helper to vend a wrapped version of this object suitable for | 160 // This is a helper to vend a wrapped version of this object suitable for |
161 // passing in to MergeDataAndStartSyncing, which takes a | 161 // passing in to MergeDataAndStartSyncing, which takes a |
162 // std::unique_ptr<SyncChangeProcessor>, since in tests we typically don't | 162 // std::unique_ptr<SyncChangeProcessor>, since in tests we typically don't |
163 // want to | 163 // want to |
164 // give up ownership of a local change processor. | 164 // give up ownership of a local change processor. |
165 std::unique_ptr<syncer::SyncChangeProcessor> GetWrapped() { | 165 std::unique_ptr<syncer::SyncChangeProcessor> GetWrapped() { |
166 return base::WrapUnique( | 166 return base::MakeUnique<syncer::SyncChangeProcessorWrapperForTest>(this); |
167 new syncer::SyncChangeProcessorWrapperForTest(this)); | |
168 } | 167 } |
169 | 168 |
170 protected: | 169 protected: |
171 // The expected ModelType of changes that this processor will see. | 170 // The expected ModelType of changes that this processor will see. |
172 syncer::ModelType expected_type_; | 171 syncer::ModelType expected_type_; |
173 | 172 |
174 DISALLOW_COPY_AND_ASSIGN(StatefulChangeProcessor); | 173 DISALLOW_COPY_AND_ASSIGN(StatefulChangeProcessor); |
175 }; | 174 }; |
176 | 175 |
177 } // namespace | 176 } // namespace |
178 | 177 |
179 class ExtensionServiceSyncTest | 178 class ExtensionServiceSyncTest |
180 : public extensions::ExtensionServiceTestWithInstall { | 179 : public extensions::ExtensionServiceTestWithInstall { |
181 public: | 180 public: |
182 void MockSyncStartFlare(bool* was_called, | 181 void MockSyncStartFlare(bool* was_called, |
183 syncer::ModelType* model_type_passed_in, | 182 syncer::ModelType* model_type_passed_in, |
184 syncer::ModelType model_type) { | 183 syncer::ModelType model_type) { |
185 *was_called = true; | 184 *was_called = true; |
186 *model_type_passed_in = model_type; | 185 *model_type_passed_in = model_type; |
187 } | 186 } |
188 | 187 |
189 // Helper to call MergeDataAndStartSyncing with no server data and dummy | 188 // Helper to call MergeDataAndStartSyncing with no server data and dummy |
190 // change processor / error factory. | 189 // change processor / error factory. |
191 void StartSyncing(syncer::ModelType type) { | 190 void StartSyncing(syncer::ModelType type) { |
192 ASSERT_TRUE(type == syncer::EXTENSIONS || type == syncer::APPS); | 191 ASSERT_TRUE(type == syncer::EXTENSIONS || type == syncer::APPS); |
193 extension_sync_service()->MergeDataAndStartSyncing( | 192 extension_sync_service()->MergeDataAndStartSyncing( |
194 type, syncer::SyncDataList(), | 193 type, syncer::SyncDataList(), |
195 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 194 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
196 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 195 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
197 } | 196 } |
198 | 197 |
199 protected: | 198 protected: |
200 // Paths to some of the fake extensions. | 199 // Paths to some of the fake extensions. |
201 base::FilePath good0_path() { | 200 base::FilePath good0_path() { |
202 return data_dir() | 201 return data_dir() |
203 .AppendASCII("good") | 202 .AppendASCII("good") |
204 .AppendASCII("Extensions") | 203 .AppendASCII("Extensions") |
205 .AppendASCII(good0) | 204 .AppendASCII(good0) |
206 .AppendASCII("1.0.0.0"); | 205 .AppendASCII("1.0.0.0"); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 EXPECT_TRUE(flare_was_called); | 278 EXPECT_TRUE(flare_was_called); |
280 EXPECT_EQ(syncer::EXTENSIONS, triggered_type); | 279 EXPECT_EQ(syncer::EXTENSIONS, triggered_type); |
281 | 280 |
282 // Reset. | 281 // Reset. |
283 flare_was_called = false; | 282 flare_was_called = false; |
284 triggered_type = syncer::UNSPECIFIED; | 283 triggered_type = syncer::UNSPECIFIED; |
285 | 284 |
286 // Once sync starts, flare should no longer be invoked. | 285 // Once sync starts, flare should no longer be invoked. |
287 extension_sync_service()->MergeDataAndStartSyncing( | 286 extension_sync_service()->MergeDataAndStartSyncing( |
288 syncer::EXTENSIONS, syncer::SyncDataList(), | 287 syncer::EXTENSIONS, syncer::SyncDataList(), |
289 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 288 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
290 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 289 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
291 path = data_dir().AppendASCII("page_action.crx"); | 290 path = data_dir().AppendASCII("page_action.crx"); |
292 InstallCRX(path, INSTALL_NEW); | 291 InstallCRX(path, INSTALL_NEW); |
293 EXPECT_FALSE(flare_was_called); | 292 EXPECT_FALSE(flare_was_called); |
294 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); | 293 ASSERT_EQ(syncer::UNSPECIFIED, triggered_type); |
295 } | 294 } |
296 | 295 |
297 TEST_F(ExtensionServiceSyncTest, DisableExtensionFromSync) { | 296 TEST_F(ExtensionServiceSyncTest, DisableExtensionFromSync) { |
298 // Start the extensions service with one external extension already installed. | 297 // Start the extensions service with one external extension already installed. |
299 base::FilePath source_install_dir = | 298 base::FilePath source_install_dir = |
300 data_dir().AppendASCII("good").AppendASCII("Extensions"); | 299 data_dir().AppendASCII("good").AppendASCII("Extensions"); |
(...skipping 13 matching lines...) Expand all Loading... |
314 ASSERT_EQ(3u, loaded_.size()); | 313 ASSERT_EQ(3u, loaded_.size()); |
315 | 314 |
316 // We start enabled. | 315 // We start enabled. |
317 const Extension* extension = service()->GetExtensionById(good0, true); | 316 const Extension* extension = service()->GetExtensionById(good0, true); |
318 ASSERT_TRUE(extension); | 317 ASSERT_TRUE(extension); |
319 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 318 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
320 | 319 |
321 // Sync starts up. | 320 // Sync starts up. |
322 extension_sync_service()->MergeDataAndStartSyncing( | 321 extension_sync_service()->MergeDataAndStartSyncing( |
323 syncer::EXTENSIONS, syncer::SyncDataList(), | 322 syncer::EXTENSIONS, syncer::SyncDataList(), |
324 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 323 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
325 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 324 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
326 | 325 |
327 // Then sync data arrives telling us to disable |good0|. | 326 // Then sync data arrives telling us to disable |good0|. |
328 ExtensionSyncData disable_good_crx(*extension, false, | 327 ExtensionSyncData disable_good_crx(*extension, false, |
329 Extension::DISABLE_USER_ACTION, false, | 328 Extension::DISABLE_USER_ACTION, false, |
330 false, ExtensionSyncData::BOOLEAN_UNSET, | 329 false, ExtensionSyncData::BOOLEAN_UNSET, |
331 false); | 330 false); |
332 SyncChangeList list( | 331 SyncChangeList list( |
333 1, disable_good_crx.GetSyncChange(SyncChange::ACTION_UPDATE)); | 332 1, disable_good_crx.GetSyncChange(SyncChange::ACTION_UPDATE)); |
334 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 333 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
335 | 334 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 Extension::DISABLE_USER_ACTION, false, false, | 378 Extension::DISABLE_USER_ACTION, false, false, |
380 ExtensionSyncData::BOOLEAN_UNSET, false); | 379 ExtensionSyncData::BOOLEAN_UNSET, false); |
381 ExtensionSyncData enable_good2(*extension2, true, Extension::DISABLE_NONE, | 380 ExtensionSyncData enable_good2(*extension2, true, Extension::DISABLE_NONE, |
382 false, false, | 381 false, false, |
383 ExtensionSyncData::BOOLEAN_UNSET, false); | 382 ExtensionSyncData::BOOLEAN_UNSET, false); |
384 syncer::SyncDataList sync_data; | 383 syncer::SyncDataList sync_data; |
385 sync_data.push_back(disable_good0.GetSyncData()); | 384 sync_data.push_back(disable_good0.GetSyncData()); |
386 sync_data.push_back(enable_good2.GetSyncData()); | 385 sync_data.push_back(enable_good2.GetSyncData()); |
387 extension_sync_service()->MergeDataAndStartSyncing( | 386 extension_sync_service()->MergeDataAndStartSyncing( |
388 syncer::EXTENSIONS, sync_data, | 387 syncer::EXTENSIONS, sync_data, |
389 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 388 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
390 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 389 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
391 | 390 |
392 // Both sync changes should be ignored, since the local state was changed | 391 // Both sync changes should be ignored, since the local state was changed |
393 // before sync started, and so the local state is considered more recent. | 392 // before sync started, and so the local state is considered more recent. |
394 EXPECT_TRUE(service()->IsExtensionEnabled(good0)); | 393 EXPECT_TRUE(service()->IsExtensionEnabled(good0)); |
395 EXPECT_FALSE(service()->IsExtensionEnabled(good2)); | 394 EXPECT_FALSE(service()->IsExtensionEnabled(good2)); |
396 } | 395 } |
397 | 396 |
398 TEST_F(ExtensionServiceSyncTest, DontSelfNotify) { | 397 TEST_F(ExtensionServiceSyncTest, DontSelfNotify) { |
399 // Start the extension service with three extensions already installed. | 398 // Start the extension service with three extensions already installed. |
400 base::FilePath source_install_dir = | 399 base::FilePath source_install_dir = |
(...skipping 10 matching lines...) Expand all Loading... |
411 | 410 |
412 service()->Init(); | 411 service()->Init(); |
413 ASSERT_TRUE(service()->is_ready()); | 412 ASSERT_TRUE(service()->is_ready()); |
414 ASSERT_EQ(3u, loaded_.size()); | 413 ASSERT_EQ(3u, loaded_.size()); |
415 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); | 414 ASSERT_TRUE(service()->IsExtensionEnabled(good0)); |
416 | 415 |
417 syncer::FakeSyncChangeProcessor* processor = | 416 syncer::FakeSyncChangeProcessor* processor = |
418 new syncer::FakeSyncChangeProcessor; | 417 new syncer::FakeSyncChangeProcessor; |
419 extension_sync_service()->MergeDataAndStartSyncing( | 418 extension_sync_service()->MergeDataAndStartSyncing( |
420 syncer::EXTENSIONS, syncer::SyncDataList(), base::WrapUnique(processor), | 419 syncer::EXTENSIONS, syncer::SyncDataList(), base::WrapUnique(processor), |
421 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 420 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
422 | 421 |
423 processor->changes().clear(); | 422 processor->changes().clear(); |
424 | 423 |
425 // Simulate various incoming sync changes, and make sure they don't result in | 424 // Simulate various incoming sync changes, and make sure they don't result in |
426 // any outgoing changes. | 425 // any outgoing changes. |
427 | 426 |
428 { | 427 { |
429 const Extension* extension = service()->GetExtensionById(good0, true); | 428 const Extension* extension = service()->GetExtensionById(good0, true); |
430 ASSERT_TRUE(extension); | 429 ASSERT_TRUE(extension); |
431 | 430 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 } | 489 } |
491 | 490 |
492 TEST_F(ExtensionServiceSyncTest, GetSyncData) { | 491 TEST_F(ExtensionServiceSyncTest, GetSyncData) { |
493 InitializeEmptyExtensionService(); | 492 InitializeEmptyExtensionService(); |
494 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 493 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
495 const Extension* extension = service()->GetInstalledExtension(good_crx); | 494 const Extension* extension = service()->GetInstalledExtension(good_crx); |
496 ASSERT_TRUE(extension); | 495 ASSERT_TRUE(extension); |
497 | 496 |
498 extension_sync_service()->MergeDataAndStartSyncing( | 497 extension_sync_service()->MergeDataAndStartSyncing( |
499 syncer::EXTENSIONS, syncer::SyncDataList(), | 498 syncer::EXTENSIONS, syncer::SyncDataList(), |
500 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 499 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
501 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 500 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
502 | 501 |
503 syncer::SyncDataList list = | 502 syncer::SyncDataList list = |
504 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 503 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
505 ASSERT_EQ(list.size(), 1U); | 504 ASSERT_EQ(list.size(), 1U); |
506 std::unique_ptr<ExtensionSyncData> data = | 505 std::unique_ptr<ExtensionSyncData> data = |
507 ExtensionSyncData::CreateFromSyncData(list[0]); | 506 ExtensionSyncData::CreateFromSyncData(list[0]); |
508 ASSERT_TRUE(data.get()); | 507 ASSERT_TRUE(data.get()); |
509 EXPECT_EQ(extension->id(), data->id()); | 508 EXPECT_EQ(extension->id(), data->id()); |
510 EXPECT_FALSE(data->uninstalled()); | 509 EXPECT_FALSE(data->uninstalled()); |
511 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); | 510 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); |
512 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), | 511 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), |
513 data->incognito_enabled()); | 512 data->incognito_enabled()); |
514 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); | 513 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
515 EXPECT_EQ(data->version(), *extension->version()); | 514 EXPECT_EQ(data->version(), *extension->version()); |
516 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 515 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
517 data->update_url()); | 516 data->update_url()); |
518 EXPECT_EQ(extension->name(), data->name()); | 517 EXPECT_EQ(extension->name(), data->name()); |
519 } | 518 } |
520 | 519 |
521 TEST_F(ExtensionServiceSyncTest, GetSyncDataDisableReasons) { | 520 TEST_F(ExtensionServiceSyncTest, GetSyncDataDisableReasons) { |
522 InitializeEmptyExtensionService(); | 521 InitializeEmptyExtensionService(); |
523 const Extension* extension = | 522 const Extension* extension = |
524 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 523 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
525 ASSERT_TRUE(extension); | 524 ASSERT_TRUE(extension); |
526 | 525 |
527 extension_sync_service()->MergeDataAndStartSyncing( | 526 extension_sync_service()->MergeDataAndStartSyncing( |
528 syncer::EXTENSIONS, syncer::SyncDataList(), | 527 syncer::EXTENSIONS, syncer::SyncDataList(), |
529 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 528 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
530 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 529 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
531 | 530 |
532 { | 531 { |
533 syncer::SyncDataList list = | 532 syncer::SyncDataList list = |
534 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 533 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
535 ASSERT_EQ(list.size(), 1U); | 534 ASSERT_EQ(list.size(), 1U); |
536 std::unique_ptr<ExtensionSyncData> data = | 535 std::unique_ptr<ExtensionSyncData> data = |
537 ExtensionSyncData::CreateFromSyncData(list[0]); | 536 ExtensionSyncData::CreateFromSyncData(list[0]); |
538 ASSERT_TRUE(data.get()); | 537 ASSERT_TRUE(data.get()); |
539 EXPECT_TRUE(data->enabled()); | 538 EXPECT_TRUE(data->enabled()); |
540 EXPECT_TRUE(data->supports_disable_reasons()); | 539 EXPECT_TRUE(data->supports_disable_reasons()); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 | 590 |
592 TEST_F(ExtensionServiceSyncTest, GetSyncDataTerminated) { | 591 TEST_F(ExtensionServiceSyncTest, GetSyncDataTerminated) { |
593 InitializeEmptyExtensionService(); | 592 InitializeEmptyExtensionService(); |
594 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 593 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
595 TerminateExtension(good_crx); | 594 TerminateExtension(good_crx); |
596 const Extension* extension = service()->GetInstalledExtension(good_crx); | 595 const Extension* extension = service()->GetInstalledExtension(good_crx); |
597 ASSERT_TRUE(extension); | 596 ASSERT_TRUE(extension); |
598 | 597 |
599 extension_sync_service()->MergeDataAndStartSyncing( | 598 extension_sync_service()->MergeDataAndStartSyncing( |
600 syncer::EXTENSIONS, syncer::SyncDataList(), | 599 syncer::EXTENSIONS, syncer::SyncDataList(), |
601 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 600 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
602 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 601 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
603 | 602 |
604 syncer::SyncDataList list = | 603 syncer::SyncDataList list = |
605 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 604 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
606 ASSERT_EQ(list.size(), 1U); | 605 ASSERT_EQ(list.size(), 1U); |
607 std::unique_ptr<ExtensionSyncData> data = | 606 std::unique_ptr<ExtensionSyncData> data = |
608 ExtensionSyncData::CreateFromSyncData(list[0]); | 607 ExtensionSyncData::CreateFromSyncData(list[0]); |
609 ASSERT_TRUE(data.get()); | 608 ASSERT_TRUE(data.get()); |
610 EXPECT_EQ(extension->id(), data->id()); | 609 EXPECT_EQ(extension->id(), data->id()); |
611 EXPECT_FALSE(data->uninstalled()); | 610 EXPECT_FALSE(data->uninstalled()); |
612 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); | 611 EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled()); |
613 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), | 612 EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()), |
614 data->incognito_enabled()); | 613 data->incognito_enabled()); |
615 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); | 614 EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled()); |
616 EXPECT_EQ(data->version(), *extension->version()); | 615 EXPECT_EQ(data->version(), *extension->version()); |
617 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), | 616 EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension), |
618 data->update_url()); | 617 data->update_url()); |
619 EXPECT_EQ(extension->name(), data->name()); | 618 EXPECT_EQ(extension->name(), data->name()); |
620 } | 619 } |
621 | 620 |
622 TEST_F(ExtensionServiceSyncTest, GetSyncDataFilter) { | 621 TEST_F(ExtensionServiceSyncTest, GetSyncDataFilter) { |
623 InitializeEmptyExtensionService(); | 622 InitializeEmptyExtensionService(); |
624 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 623 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
625 const Extension* extension = service()->GetInstalledExtension(good_crx); | 624 const Extension* extension = service()->GetInstalledExtension(good_crx); |
626 ASSERT_TRUE(extension); | 625 ASSERT_TRUE(extension); |
627 | 626 |
628 extension_sync_service()->MergeDataAndStartSyncing( | 627 extension_sync_service()->MergeDataAndStartSyncing( |
629 syncer::APPS, syncer::SyncDataList(), | 628 syncer::APPS, syncer::SyncDataList(), |
630 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 629 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
631 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 630 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
632 | 631 |
633 syncer::SyncDataList list = | 632 syncer::SyncDataList list = |
634 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 633 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
635 ASSERT_EQ(list.size(), 0U); | 634 ASSERT_EQ(list.size(), 0U); |
636 } | 635 } |
637 | 636 |
638 TEST_F(ExtensionServiceSyncTest, GetSyncExtensionDataUserSettings) { | 637 TEST_F(ExtensionServiceSyncTest, GetSyncExtensionDataUserSettings) { |
639 InitializeEmptyExtensionService(); | 638 InitializeEmptyExtensionService(); |
640 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 639 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
641 const Extension* extension = service()->GetInstalledExtension(good_crx); | 640 const Extension* extension = service()->GetInstalledExtension(good_crx); |
642 ASSERT_TRUE(extension); | 641 ASSERT_TRUE(extension); |
643 | 642 |
644 extension_sync_service()->MergeDataAndStartSyncing( | 643 extension_sync_service()->MergeDataAndStartSyncing( |
645 syncer::EXTENSIONS, syncer::SyncDataList(), | 644 syncer::EXTENSIONS, syncer::SyncDataList(), |
646 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 645 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
647 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 646 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
648 | 647 |
649 { | 648 { |
650 syncer::SyncDataList list = | 649 syncer::SyncDataList list = |
651 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); | 650 extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS); |
652 ASSERT_EQ(list.size(), 1U); | 651 ASSERT_EQ(list.size(), 1U); |
653 std::unique_ptr<ExtensionSyncData> data = | 652 std::unique_ptr<ExtensionSyncData> data = |
654 ExtensionSyncData::CreateFromSyncData(list[0]); | 653 ExtensionSyncData::CreateFromSyncData(list[0]); |
655 ASSERT_TRUE(data.get()); | 654 ASSERT_TRUE(data.get()); |
656 EXPECT_TRUE(data->enabled()); | 655 EXPECT_TRUE(data->enabled()); |
657 EXPECT_FALSE(data->incognito_enabled()); | 656 EXPECT_FALSE(data->incognito_enabled()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 | 704 |
706 TEST_F(ExtensionServiceSyncTest, SyncForUninstalledExternalExtension) { | 705 TEST_F(ExtensionServiceSyncTest, SyncForUninstalledExternalExtension) { |
707 InitializeEmptyExtensionService(); | 706 InitializeEmptyExtensionService(); |
708 InstallCRXWithLocation( | 707 InstallCRXWithLocation( |
709 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); | 708 data_dir().AppendASCII("good.crx"), Manifest::EXTERNAL_PREF, INSTALL_NEW); |
710 const Extension* extension = service()->GetInstalledExtension(good_crx); | 709 const Extension* extension = service()->GetInstalledExtension(good_crx); |
711 ASSERT_TRUE(extension); | 710 ASSERT_TRUE(extension); |
712 | 711 |
713 extension_sync_service()->MergeDataAndStartSyncing( | 712 extension_sync_service()->MergeDataAndStartSyncing( |
714 syncer::EXTENSIONS, syncer::SyncDataList(), | 713 syncer::EXTENSIONS, syncer::SyncDataList(), |
715 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 714 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
716 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 715 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
717 StartSyncing(syncer::APPS); | 716 StartSyncing(syncer::APPS); |
718 | 717 |
719 UninstallExtension(good_crx, false); | 718 UninstallExtension(good_crx, false); |
720 EXPECT_TRUE( | 719 EXPECT_TRUE( |
721 ExtensionPrefs::Get(profile())->IsExternalExtensionUninstalled(good_crx)); | 720 ExtensionPrefs::Get(profile())->IsExternalExtensionUninstalled(good_crx)); |
722 | 721 |
723 sync_pb::EntitySpecifics specifics; | 722 sync_pb::EntitySpecifics specifics; |
724 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); | 723 sync_pb::AppSpecifics* app_specifics = specifics.mutable_app(); |
725 sync_pb::ExtensionSpecifics* extension_specifics = | 724 sync_pb::ExtensionSpecifics* extension_specifics = |
726 app_specifics->mutable_extension(); | 725 app_specifics->mutable_extension(); |
(...skipping 11 matching lines...) Expand all Loading... |
738 | 737 |
739 TEST_F(ExtensionServiceSyncTest, GetSyncAppDataUserSettings) { | 738 TEST_F(ExtensionServiceSyncTest, GetSyncAppDataUserSettings) { |
740 InitializeEmptyExtensionService(); | 739 InitializeEmptyExtensionService(); |
741 const Extension* app = | 740 const Extension* app = |
742 PackAndInstallCRX(data_dir().AppendASCII("app"), INSTALL_NEW); | 741 PackAndInstallCRX(data_dir().AppendASCII("app"), INSTALL_NEW); |
743 ASSERT_TRUE(app); | 742 ASSERT_TRUE(app); |
744 ASSERT_TRUE(app->is_app()); | 743 ASSERT_TRUE(app->is_app()); |
745 | 744 |
746 extension_sync_service()->MergeDataAndStartSyncing( | 745 extension_sync_service()->MergeDataAndStartSyncing( |
747 syncer::APPS, syncer::SyncDataList(), | 746 syncer::APPS, syncer::SyncDataList(), |
748 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 747 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
749 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 748 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
750 | 749 |
751 syncer::StringOrdinal initial_ordinal = | 750 syncer::StringOrdinal initial_ordinal = |
752 syncer::StringOrdinal::CreateInitialOrdinal(); | 751 syncer::StringOrdinal::CreateInitialOrdinal(); |
753 { | 752 { |
754 syncer::SyncDataList list = | 753 syncer::SyncDataList list = |
755 extension_sync_service()->GetAllSyncData(syncer::APPS); | 754 extension_sync_service()->GetAllSyncData(syncer::APPS); |
756 ASSERT_EQ(list.size(), 1U); | 755 ASSERT_EQ(list.size(), 1U); |
757 | 756 |
758 std::unique_ptr<ExtensionSyncData> app_sync_data = | 757 std::unique_ptr<ExtensionSyncData> app_sync_data = |
759 ExtensionSyncData::CreateFromSyncData(list[0]); | 758 ExtensionSyncData::CreateFromSyncData(list[0]); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 | 841 |
843 TEST_F(ExtensionServiceSyncTest, GetSyncDataList) { | 842 TEST_F(ExtensionServiceSyncTest, GetSyncDataList) { |
844 InitializeEmptyExtensionService(); | 843 InitializeEmptyExtensionService(); |
845 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 844 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
846 InstallCRX(data_dir().AppendASCII("page_action.crx"), INSTALL_NEW); | 845 InstallCRX(data_dir().AppendASCII("page_action.crx"), INSTALL_NEW); |
847 InstallCRX(data_dir().AppendASCII("theme.crx"), INSTALL_NEW); | 846 InstallCRX(data_dir().AppendASCII("theme.crx"), INSTALL_NEW); |
848 InstallCRX(data_dir().AppendASCII("theme2.crx"), INSTALL_NEW); | 847 InstallCRX(data_dir().AppendASCII("theme2.crx"), INSTALL_NEW); |
849 | 848 |
850 extension_sync_service()->MergeDataAndStartSyncing( | 849 extension_sync_service()->MergeDataAndStartSyncing( |
851 syncer::APPS, syncer::SyncDataList(), | 850 syncer::APPS, syncer::SyncDataList(), |
852 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 851 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
853 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 852 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
854 extension_sync_service()->MergeDataAndStartSyncing( | 853 extension_sync_service()->MergeDataAndStartSyncing( |
855 syncer::EXTENSIONS, syncer::SyncDataList(), | 854 syncer::EXTENSIONS, syncer::SyncDataList(), |
856 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 855 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
857 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 856 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
858 | 857 |
859 service()->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); | 858 service()->DisableExtension(page_action, Extension::DISABLE_USER_ACTION); |
860 TerminateExtension(theme2_crx); | 859 TerminateExtension(theme2_crx); |
861 | 860 |
862 EXPECT_EQ(0u, extension_sync_service()->GetAllSyncData(syncer::APPS).size()); | 861 EXPECT_EQ(0u, extension_sync_service()->GetAllSyncData(syncer::APPS).size()); |
863 EXPECT_EQ( | 862 EXPECT_EQ( |
864 2u, extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS).size()); | 863 2u, extension_sync_service()->GetAllSyncData(syncer::EXTENSIONS).size()); |
865 } | 864 } |
866 | 865 |
867 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataUninstall) { | 866 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataUninstall) { |
868 InitializeEmptyExtensionService(); | 867 InitializeEmptyExtensionService(); |
869 extension_sync_service()->MergeDataAndStartSyncing( | 868 extension_sync_service()->MergeDataAndStartSyncing( |
870 syncer::EXTENSIONS, syncer::SyncDataList(), | 869 syncer::EXTENSIONS, syncer::SyncDataList(), |
871 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 870 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
872 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 871 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
873 | 872 |
874 sync_pb::EntitySpecifics specifics; | 873 sync_pb::EntitySpecifics specifics; |
875 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 874 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
876 ext_specifics->set_id(good_crx); | 875 ext_specifics->set_id(good_crx); |
877 ext_specifics->set_version("1.0"); | 876 ext_specifics->set_version("1.0"); |
878 | 877 |
879 SyncChangeList list = | 878 SyncChangeList list = |
880 MakeSyncChangeList(good_crx, specifics, SyncChange::ACTION_DELETE); | 879 MakeSyncChangeList(good_crx, specifics, SyncChange::ACTION_DELETE); |
881 | 880 |
882 // Should do nothing. | 881 // Should do nothing. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
935 // Should again do nothing. | 934 // Should again do nothing. |
936 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 935 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
937 EXPECT_TRUE(service()->GetExtensionById(good_crx, false)); | 936 EXPECT_TRUE(service()->GetExtensionById(good_crx, false)); |
938 } | 937 } |
939 } | 938 } |
940 | 939 |
941 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataSettings) { | 940 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataSettings) { |
942 InitializeEmptyExtensionService(); | 941 InitializeEmptyExtensionService(); |
943 extension_sync_service()->MergeDataAndStartSyncing( | 942 extension_sync_service()->MergeDataAndStartSyncing( |
944 syncer::EXTENSIONS, syncer::SyncDataList(), | 943 syncer::EXTENSIONS, syncer::SyncDataList(), |
945 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 944 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
946 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 945 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
947 | 946 |
948 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 947 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
949 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); | 948 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); |
950 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); | 949 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); |
951 // Returns a ScriptingPermissionsModifier for the extension. We use this | 950 // Returns a ScriptingPermissionsModifier for the extension. We use this |
952 // because various parts of this test reload the extension, making keeping a | 951 // because various parts of this test reload the extension, making keeping a |
953 // ptr to it inviable. | 952 // ptr to it inviable. |
954 auto get_permissions_modifier = [this]() { | 953 auto get_permissions_modifier = [this]() { |
955 const Extension* extension = registry()->GetExtensionById( | 954 const Extension* extension = registry()->GetExtensionById( |
956 good_crx, extensions::ExtensionRegistry::EVERYTHING); | 955 good_crx, extensions::ExtensionRegistry::EVERYTHING); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 get_permissions_modifier()->IsAllowedOnAllUrls()); | 1031 get_permissions_modifier()->IsAllowedOnAllUrls()); |
1033 } | 1032 } |
1034 | 1033 |
1035 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 1034 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
1036 } | 1035 } |
1037 | 1036 |
1038 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataNewExtension) { | 1037 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataNewExtension) { |
1039 InitializeEmptyExtensionService(); | 1038 InitializeEmptyExtensionService(); |
1040 extension_sync_service()->MergeDataAndStartSyncing( | 1039 extension_sync_service()->MergeDataAndStartSyncing( |
1041 syncer::EXTENSIONS, syncer::SyncDataList(), | 1040 syncer::EXTENSIONS, syncer::SyncDataList(), |
1042 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1041 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1043 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1042 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1044 | 1043 |
1045 const base::FilePath path = data_dir().AppendASCII("good.crx"); | 1044 const base::FilePath path = data_dir().AppendASCII("good.crx"); |
1046 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); | 1045 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); |
1047 | 1046 |
1048 struct TestCase { | 1047 struct TestCase { |
1049 const char* name; // For failure output only. | 1048 const char* name; // For failure output only. |
1050 bool sync_enabled; // The "enabled" flag coming in from Sync. | 1049 bool sync_enabled; // The "enabled" flag coming in from Sync. |
1051 // The disable reason(s) coming in from Sync, or -1 for "not set". | 1050 // The disable reason(s) coming in from Sync, or -1 for "not set". |
1052 int sync_disable_reasons; | 1051 int sync_disable_reasons; |
1053 // The disable reason(s) that should be set on the installed extension. | 1052 // The disable reason(s) that should be set on the installed extension. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 UninstallExtension(good_crx, false, | 1105 UninstallExtension(good_crx, false, |
1107 test_case.sync_enabled ? Extension::ENABLED | 1106 test_case.sync_enabled ? Extension::ENABLED |
1108 : Extension::DISABLED); | 1107 : Extension::DISABLED); |
1109 } | 1108 } |
1110 } | 1109 } |
1111 | 1110 |
1112 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataTerminatedExtension) { | 1111 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataTerminatedExtension) { |
1113 InitializeExtensionServiceWithUpdater(); | 1112 InitializeExtensionServiceWithUpdater(); |
1114 extension_sync_service()->MergeDataAndStartSyncing( | 1113 extension_sync_service()->MergeDataAndStartSyncing( |
1115 syncer::EXTENSIONS, syncer::SyncDataList(), | 1114 syncer::EXTENSIONS, syncer::SyncDataList(), |
1116 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1115 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1117 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1116 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1118 | 1117 |
1119 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 1118 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
1120 TerminateExtension(good_crx); | 1119 TerminateExtension(good_crx); |
1121 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); | 1120 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); |
1122 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); | 1121 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); |
1123 | 1122 |
1124 sync_pb::EntitySpecifics specifics; | 1123 sync_pb::EntitySpecifics specifics; |
1125 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 1124 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
1126 ext_specifics->set_id(good_crx); | 1125 ext_specifics->set_id(good_crx); |
1127 ext_specifics->set_version( | 1126 ext_specifics->set_version( |
1128 service()->GetInstalledExtension(good_crx)->version()->GetString()); | 1127 service()->GetInstalledExtension(good_crx)->version()->GetString()); |
1129 ext_specifics->set_enabled(false); | 1128 ext_specifics->set_enabled(false); |
1130 ext_specifics->set_incognito_enabled(true); | 1129 ext_specifics->set_incognito_enabled(true); |
1131 | 1130 |
1132 SyncChangeList list = | 1131 SyncChangeList list = |
1133 MakeSyncChangeList(good_crx, specifics, SyncChange::ACTION_UPDATE); | 1132 MakeSyncChangeList(good_crx, specifics, SyncChange::ACTION_UPDATE); |
1134 | 1133 |
1135 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); | 1134 extension_sync_service()->ProcessSyncChanges(FROM_HERE, list); |
1136 EXPECT_FALSE(service()->IsExtensionEnabled(good_crx)); | 1135 EXPECT_FALSE(service()->IsExtensionEnabled(good_crx)); |
1137 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(good_crx, profile())); | 1136 EXPECT_TRUE(extensions::util::IsIncognitoEnabled(good_crx, profile())); |
1138 | 1137 |
1139 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 1138 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
1140 } | 1139 } |
1141 | 1140 |
1142 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataVersionCheck) { | 1141 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataVersionCheck) { |
1143 InitializeExtensionServiceWithUpdater(); | 1142 InitializeExtensionServiceWithUpdater(); |
1144 extension_sync_service()->MergeDataAndStartSyncing( | 1143 extension_sync_service()->MergeDataAndStartSyncing( |
1145 syncer::EXTENSIONS, syncer::SyncDataList(), | 1144 syncer::EXTENSIONS, syncer::SyncDataList(), |
1146 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1145 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1147 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1146 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1148 | 1147 |
1149 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); | 1148 InstallCRX(data_dir().AppendASCII("good.crx"), INSTALL_NEW); |
1150 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); | 1149 EXPECT_TRUE(service()->IsExtensionEnabled(good_crx)); |
1151 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); | 1150 EXPECT_FALSE(extensions::util::IsIncognitoEnabled(good_crx, profile())); |
1152 | 1151 |
1153 sync_pb::EntitySpecifics specifics; | 1152 sync_pb::EntitySpecifics specifics; |
1154 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 1153 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
1155 ext_specifics->set_id(good_crx); | 1154 ext_specifics->set_id(good_crx); |
1156 ext_specifics->set_enabled(true); | 1155 ext_specifics->set_enabled(true); |
1157 | 1156 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1218 EXPECT_EQ(new_version, extension_data->version()); | 1217 EXPECT_EQ(new_version, extension_data->version()); |
1219 } | 1218 } |
1220 | 1219 |
1221 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); | 1220 EXPECT_FALSE(service()->pending_extension_manager()->IsIdPending(good_crx)); |
1222 } | 1221 } |
1223 | 1222 |
1224 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataNotInstalled) { | 1223 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataNotInstalled) { |
1225 InitializeExtensionServiceWithUpdater(); | 1224 InitializeExtensionServiceWithUpdater(); |
1226 extension_sync_service()->MergeDataAndStartSyncing( | 1225 extension_sync_service()->MergeDataAndStartSyncing( |
1227 syncer::EXTENSIONS, syncer::SyncDataList(), | 1226 syncer::EXTENSIONS, syncer::SyncDataList(), |
1228 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1227 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1229 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1228 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1230 | 1229 |
1231 sync_pb::EntitySpecifics specifics; | 1230 sync_pb::EntitySpecifics specifics; |
1232 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); | 1231 sync_pb::ExtensionSpecifics* ext_specifics = specifics.mutable_extension(); |
1233 ext_specifics->set_id(good_crx); | 1232 ext_specifics->set_id(good_crx); |
1234 ext_specifics->set_enabled(false); | 1233 ext_specifics->set_enabled(false); |
1235 ext_specifics->set_incognito_enabled(true); | 1234 ext_specifics->set_incognito_enabled(true); |
1236 ext_specifics->set_update_url("http://www.google.com/"); | 1235 ext_specifics->set_update_url("http://www.google.com/"); |
1237 ext_specifics->set_version("1.2.3.4"); | 1236 ext_specifics->set_version("1.2.3.4"); |
1238 | 1237 |
1239 SyncChangeList list = | 1238 SyncChangeList list = |
(...skipping 12 matching lines...) Expand all Loading... |
1252 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); | 1251 EXPECT_EQ(ext_specifics->update_url(), info->update_url().spec()); |
1253 EXPECT_TRUE(info->is_from_sync()); | 1252 EXPECT_TRUE(info->is_from_sync()); |
1254 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); | 1253 EXPECT_EQ(Manifest::INTERNAL, info->install_source()); |
1255 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. | 1254 // TODO(akalin): Figure out a way to test |info.ShouldAllowInstall()|. |
1256 } | 1255 } |
1257 | 1256 |
1258 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataEnableDisable) { | 1257 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataEnableDisable) { |
1259 InitializeEmptyExtensionService(); | 1258 InitializeEmptyExtensionService(); |
1260 extension_sync_service()->MergeDataAndStartSyncing( | 1259 extension_sync_service()->MergeDataAndStartSyncing( |
1261 syncer::EXTENSIONS, syncer::SyncDataList(), | 1260 syncer::EXTENSIONS, syncer::SyncDataList(), |
1262 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1261 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1263 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1262 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1264 | 1263 |
1265 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); | 1264 const ExtensionPrefs* prefs = ExtensionPrefs::Get(profile()); |
1266 | 1265 |
1267 struct TestCase { | 1266 struct TestCase { |
1268 const char* name; // For failure output only. | 1267 const char* name; // For failure output only. |
1269 // Set of disable reasons before any Sync data comes in. If this is != 0, | 1268 // Set of disable reasons before any Sync data comes in. If this is != 0, |
1270 // the extension is disabled. | 1269 // the extension is disabled. |
1271 int previous_disable_reasons; | 1270 int previous_disable_reasons; |
1272 bool sync_enable; // The enabled flag coming in from Sync. | 1271 bool sync_enable; // The enabled flag coming in from Sync. |
1273 // The disable reason(s) coming in from Sync, or -1 for "not set". | 1272 // The disable reason(s) coming in from Sync, or -1 for "not set". |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1354 // Remove the extension again, so we can install it again for the next case. | 1353 // Remove the extension again, so we can install it again for the next case. |
1355 UninstallExtension(id, false, expect_enabled ? Extension::ENABLED | 1354 UninstallExtension(id, false, expect_enabled ? Extension::ENABLED |
1356 : Extension::DISABLED); | 1355 : Extension::DISABLED); |
1357 } | 1356 } |
1358 } | 1357 } |
1359 | 1358 |
1360 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataDeferredEnable) { | 1359 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataDeferredEnable) { |
1361 InitializeEmptyExtensionService(); | 1360 InitializeEmptyExtensionService(); |
1362 extension_sync_service()->MergeDataAndStartSyncing( | 1361 extension_sync_service()->MergeDataAndStartSyncing( |
1363 syncer::EXTENSIONS, syncer::SyncDataList(), | 1362 syncer::EXTENSIONS, syncer::SyncDataList(), |
1364 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1363 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1365 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1364 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1366 | 1365 |
1367 base::FilePath base_path = data_dir().AppendASCII("permissions_increase"); | 1366 base::FilePath base_path = data_dir().AppendASCII("permissions_increase"); |
1368 base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); | 1367 base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); |
1369 | 1368 |
1370 base::FilePath path = base_path.AppendASCII("v1"); | 1369 base::FilePath path = base_path.AppendASCII("v1"); |
1371 const Extension* extension = PackAndInstallCRX(path, pem_path, INSTALL_NEW); | 1370 const Extension* extension = PackAndInstallCRX(path, pem_path, INSTALL_NEW); |
1372 // The extension must now be installed and enabled. | 1371 // The extension must now be installed and enabled. |
1373 ASSERT_TRUE(extension); | 1372 ASSERT_TRUE(extension); |
1374 ASSERT_TRUE(registry()->enabled_extensions().Contains(extension->id())); | 1373 ASSERT_TRUE(registry()->enabled_extensions().Contains(extension->id())); |
1375 | 1374 |
(...skipping 28 matching lines...) Expand all Loading... |
1404 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataPermissionApproval) { | 1403 TEST_F(ExtensionServiceSyncTest, ProcessSyncDataPermissionApproval) { |
1405 // This is the update URL specified in the test extension. Setting it here is | 1404 // This is the update URL specified in the test extension. Setting it here is |
1406 // necessary to make it considered syncable. | 1405 // necessary to make it considered syncable. |
1407 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 1406 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
1408 switches::kAppsGalleryUpdateURL, | 1407 switches::kAppsGalleryUpdateURL, |
1409 "http://localhost/autoupdate/updates.xml"); | 1408 "http://localhost/autoupdate/updates.xml"); |
1410 | 1409 |
1411 InitializeEmptyExtensionService(); | 1410 InitializeEmptyExtensionService(); |
1412 extension_sync_service()->MergeDataAndStartSyncing( | 1411 extension_sync_service()->MergeDataAndStartSyncing( |
1413 syncer::EXTENSIONS, syncer::SyncDataList(), | 1412 syncer::EXTENSIONS, syncer::SyncDataList(), |
1414 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 1413 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
1415 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 1414 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
1416 | 1415 |
1417 const base::FilePath base_path = | 1416 const base::FilePath base_path = |
1418 data_dir().AppendASCII("permissions_increase"); | 1417 data_dir().AppendASCII("permissions_increase"); |
1419 const base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); | 1418 const base::FilePath pem_path = base_path.AppendASCII("permissions.pem"); |
1420 const base::FilePath path_v1 = base_path.AppendASCII("v1"); | 1419 const base::FilePath path_v1 = base_path.AppendASCII("v1"); |
1421 const base::FilePath path_v2 = base_path.AppendASCII("v2"); | 1420 const base::FilePath path_v2 = base_path.AppendASCII("v2"); |
1422 | 1421 |
1423 base::ScopedTempDir crx_dir; | 1422 base::ScopedTempDir crx_dir; |
1424 ASSERT_TRUE(crx_dir.CreateUniqueTempDir()); | 1423 ASSERT_TRUE(crx_dir.CreateUniqueTempDir()); |
1425 const base::FilePath crx_path_v1 = crx_dir.path().AppendASCII("temp1.crx"); | 1424 const base::FilePath crx_path_v1 = crx_dir.path().AppendASCII("temp1.crx"); |
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2315 UpdatePermissionsTestExtension(id, version2, ENABLED); | 2314 UpdatePermissionsTestExtension(id, version2, ENABLED); |
2316 // The extension should be enabled again. | 2315 // The extension should be enabled again. |
2317 EXPECT_TRUE(registry()->enabled_extensions().Contains(id)); | 2316 EXPECT_TRUE(registry()->enabled_extensions().Contains(id)); |
2318 EXPECT_FALSE(IsPendingCustodianApproval(id)); | 2317 EXPECT_FALSE(IsPendingCustodianApproval(id)); |
2319 } | 2318 } |
2320 | 2319 |
2321 TEST_F(ExtensionServiceSyncTest, SyncUninstallByCustodianSkipsPolicy) { | 2320 TEST_F(ExtensionServiceSyncTest, SyncUninstallByCustodianSkipsPolicy) { |
2322 InitializeEmptyExtensionService(); | 2321 InitializeEmptyExtensionService(); |
2323 extension_sync_service()->MergeDataAndStartSyncing( | 2322 extension_sync_service()->MergeDataAndStartSyncing( |
2324 syncer::EXTENSIONS, syncer::SyncDataList(), | 2323 syncer::EXTENSIONS, syncer::SyncDataList(), |
2325 base::WrapUnique(new syncer::FakeSyncChangeProcessor()), | 2324 base::MakeUnique<syncer::FakeSyncChangeProcessor>(), |
2326 base::WrapUnique(new syncer::SyncErrorFactoryMock())); | 2325 base::MakeUnique<syncer::SyncErrorFactoryMock>()); |
2327 | 2326 |
2328 extensions::util::SetWasInstalledByCustodian(good2048, profile(), true); | 2327 extensions::util::SetWasInstalledByCustodian(good2048, profile(), true); |
2329 // Install two extensions. | 2328 // Install two extensions. |
2330 base::FilePath path1 = data_dir().AppendASCII("good.crx"); | 2329 base::FilePath path1 = data_dir().AppendASCII("good.crx"); |
2331 base::FilePath path2 = data_dir().AppendASCII("good2048.crx"); | 2330 base::FilePath path2 = data_dir().AppendASCII("good2048.crx"); |
2332 const Extension* extensions[] = { | 2331 const Extension* extensions[] = { |
2333 InstallCRX(path1, INSTALL_NEW), | 2332 InstallCRX(path1, INSTALL_NEW), |
2334 InstallCRX(path2, INSTALL_NEW) | 2333 InstallCRX(path2, INSTALL_NEW) |
2335 }; | 2334 }; |
2336 | 2335 |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2511 break; | 2510 break; |
2512 } | 2511 } |
2513 } | 2512 } |
2514 } | 2513 } |
2515 EXPECT_TRUE(found_delete); | 2514 EXPECT_TRUE(found_delete); |
2516 | 2515 |
2517 // Make sure there is one extension, and there are no more apps. | 2516 // Make sure there is one extension, and there are no more apps. |
2518 EXPECT_EQ(1u, extensions_processor.data().size()); | 2517 EXPECT_EQ(1u, extensions_processor.data().size()); |
2519 EXPECT_TRUE(apps_processor.data().empty()); | 2518 EXPECT_TRUE(apps_processor.data().empty()); |
2520 } | 2519 } |
OLD | NEW |