Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: chrome/browser/extensions/extension_service_sync_unittest.cc

Issue 2257113002: Re-write many calls to WrapUnique() with MakeUnique() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_resource_protocols.cc ('k') | chrome/browser/extensions/extension_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698