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

Side by Side Diff: chrome/browser/media_galleries/media_file_system_registry_unittest.cc

Issue 14113053: chrome: Use base::MessageLoop. (Part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // MediaFileSystemRegistry unit tests. 5 // MediaFileSystemRegistry unit tests.
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 481
482 ProfileState::~ProfileState() { 482 ProfileState::~ProfileState() {
483 // TestExtensionSystem uses DeleteSoon, so we need to delete the profiles 483 // TestExtensionSystem uses DeleteSoon, so we need to delete the profiles
484 // and then run the message queue to clean up. But first we have to 484 // and then run the message queue to clean up. But first we have to
485 // delete everything that references the profile. 485 // delete everything that references the profile.
486 single_web_contents_.reset(); 486 single_web_contents_.reset();
487 shared_web_contents1_.reset(); 487 shared_web_contents1_.reset();
488 shared_web_contents2_.reset(); 488 shared_web_contents2_.reset();
489 profile_.reset(); 489 profile_.reset();
490 490
491 MessageLoop::current()->RunUntilIdle(); 491 base::MessageLoop::current()->RunUntilIdle();
492 } 492 }
493 493
494 MediaGalleriesPreferences* ProfileState::GetMediaGalleriesPrefs() { 494 MediaGalleriesPreferences* ProfileState::GetMediaGalleriesPrefs() {
495 return MediaGalleriesPreferencesFactory::GetForProfile(profile_.get()); 495 return MediaGalleriesPreferencesFactory::GetForProfile(profile_.get());
496 } 496 }
497 497
498 void ProfileState::CheckGalleries( 498 void ProfileState::CheckGalleries(
499 const std::string& test, 499 const std::string& test,
500 const std::vector<MediaFileSystemInfo>& regular_extension_galleries, 500 const std::vector<MediaFileSystemInfo>& regular_extension_galleries,
501 const std::vector<MediaFileSystemInfo>& all_extension_galleries) { 501 const std::vector<MediaFileSystemInfo>& all_extension_galleries) {
502 content::RenderViewHost* rvh = single_web_contents_->GetRenderViewHost(); 502 content::RenderViewHost* rvh = single_web_contents_->GetRenderViewHost();
503 MediaFileSystemRegistry* registry = 503 MediaFileSystemRegistry* registry =
504 g_browser_process->media_file_system_registry(); 504 g_browser_process->media_file_system_registry();
505 505
506 // No Media Galleries permissions. 506 // No Media Galleries permissions.
507 std::vector<MediaFileSystemInfo> empty_expectation; 507 std::vector<MediaFileSystemInfo> empty_expectation;
508 registry->GetMediaFileSystemsForExtension( 508 registry->GetMediaFileSystemsForExtension(
509 rvh, no_permissions_extension_.get(), 509 rvh, no_permissions_extension_.get(),
510 base::Bind(&ProfileState::CompareResults, base::Unretained(this), 510 base::Bind(&ProfileState::CompareResults, base::Unretained(this),
511 base::StringPrintf("%s (no permission)", test.c_str()), 511 base::StringPrintf("%s (no permission)", test.c_str()),
512 base::ConstRef(empty_expectation))); 512 base::ConstRef(empty_expectation)));
513 MessageLoop::current()->RunUntilIdle(); 513 base::MessageLoop::current()->RunUntilIdle();
514 EXPECT_EQ(1, GetAndClearComparisonCount()); 514 EXPECT_EQ(1, GetAndClearComparisonCount());
515 515
516 // Read permission only. 516 // Read permission only.
517 registry->GetMediaFileSystemsForExtension( 517 registry->GetMediaFileSystemsForExtension(
518 rvh, regular_permission_extension_.get(), 518 rvh, regular_permission_extension_.get(),
519 base::Bind(&ProfileState::CompareResults, base::Unretained(this), 519 base::Bind(&ProfileState::CompareResults, base::Unretained(this),
520 base::StringPrintf("%s (regular permission)", test.c_str()), 520 base::StringPrintf("%s (regular permission)", test.c_str()),
521 base::ConstRef(regular_extension_galleries))); 521 base::ConstRef(regular_extension_galleries)));
522 MessageLoop::current()->RunUntilIdle(); 522 base::MessageLoop::current()->RunUntilIdle();
523 EXPECT_EQ(1, GetAndClearComparisonCount()); 523 EXPECT_EQ(1, GetAndClearComparisonCount());
524 524
525 // All galleries permission. 525 // All galleries permission.
526 registry->GetMediaFileSystemsForExtension( 526 registry->GetMediaFileSystemsForExtension(
527 rvh, all_permission_extension_.get(), 527 rvh, all_permission_extension_.get(),
528 base::Bind(&ProfileState::CompareResults, base::Unretained(this), 528 base::Bind(&ProfileState::CompareResults, base::Unretained(this),
529 base::StringPrintf("%s (all permission)", test.c_str()), 529 base::StringPrintf("%s (all permission)", test.c_str()),
530 base::ConstRef(all_extension_galleries))); 530 base::ConstRef(all_extension_galleries)));
531 MessageLoop::current()->RunUntilIdle(); 531 base::MessageLoop::current()->RunUntilIdle();
532 EXPECT_EQ(1, GetAndClearComparisonCount()); 532 EXPECT_EQ(1, GetAndClearComparisonCount());
533 } 533 }
534 534
535 FSInfoMap ProfileState::GetGalleriesInfo(extensions::Extension* extension) { 535 FSInfoMap ProfileState::GetGalleriesInfo(extensions::Extension* extension) {
536 content::RenderViewHost* rvh = single_web_contents_->GetRenderViewHost(); 536 content::RenderViewHost* rvh = single_web_contents_->GetRenderViewHost();
537 FSInfoMap results; 537 FSInfoMap results;
538 MediaFileSystemRegistry* registry = 538 MediaFileSystemRegistry* registry =
539 g_browser_process->media_file_system_registry(); 539 g_browser_process->media_file_system_registry();
540 registry->GetMediaFileSystemsForExtension( 540 registry->GetMediaFileSystemsForExtension(
541 rvh, extension, 541 rvh, extension,
542 base::Bind(&GetGalleryInfoCallback, base::Unretained(&results))); 542 base::Bind(&GetGalleryInfoCallback, base::Unretained(&results)));
543 MessageLoop::current()->RunUntilIdle(); 543 base::MessageLoop::current()->RunUntilIdle();
544 return results; 544 return results;
545 } 545 }
546 546
547 extensions::Extension* ProfileState::all_permission_extension() { 547 extensions::Extension* ProfileState::all_permission_extension() {
548 return all_permission_extension_.get(); 548 return all_permission_extension_.get();
549 } 549 }
550 550
551 extensions::Extension* ProfileState::regular_permission_extension() { 551 extensions::Extension* ProfileState::regular_permission_extension() {
552 return regular_permission_extension_.get(); 552 return regular_permission_extension_.get();
553 } 553 }
(...skipping 27 matching lines...) Expand all
581 return result; 581 return result;
582 } 582 }
583 583
584 } // namespace 584 } // namespace
585 585
586 ///////////////////////////////// 586 /////////////////////////////////
587 // MediaFileSystemRegistryTest // 587 // MediaFileSystemRegistryTest //
588 ///////////////////////////////// 588 /////////////////////////////////
589 589
590 MediaFileSystemRegistryTest::MediaFileSystemRegistryTest() 590 MediaFileSystemRegistryTest::MediaFileSystemRegistryTest()
591 : ui_thread_(content::BrowserThread::UI, MessageLoop::current()), 591 : ui_thread_(content::BrowserThread::UI, base::MessageLoop::current()),
592 file_thread_(content::BrowserThread::FILE, MessageLoop::current()), 592 file_thread_(content::BrowserThread::FILE, base::MessageLoop::current()),
593 permissions_info_(extensions::ChromeAPIPermissions()) { 593 permissions_info_(extensions::ChromeAPIPermissions()) {}
594 }
595 594
596 void MediaFileSystemRegistryTest::CreateProfileState(size_t profile_count) { 595 void MediaFileSystemRegistryTest::CreateProfileState(size_t profile_count) {
597 for (size_t i = 0; i < profile_count; ++i) { 596 for (size_t i = 0; i < profile_count; ++i) {
598 ProfileState* state = new ProfileState(&rph_factory_); 597 ProfileState* state = new ProfileState(&rph_factory_);
599 profile_states_.push_back(state); 598 profile_states_.push_back(state);
600 } 599 }
601 } 600 }
602 601
603 ProfileState* MediaFileSystemRegistryTest::GetProfileState(size_t i) { 602 ProfileState* MediaFileSystemRegistryTest::GetProfileState(size_t i) {
604 return profile_states_[i]; 603 return profile_states_[i];
(...skipping 15 matching lines...) Expand all
620 } 619 }
621 620
622 std::string MediaFileSystemRegistryTest::AttachDevice( 621 std::string MediaFileSystemRegistryTest::AttachDevice(
623 MediaStorageUtil::Type type, 622 MediaStorageUtil::Type type,
624 const std::string& unique_id, 623 const std::string& unique_id,
625 const base::FilePath& location) { 624 const base::FilePath& location) {
626 std::string device_id = MediaStorageUtil::MakeDeviceId(type, unique_id); 625 std::string device_id = MediaStorageUtil::MakeDeviceId(type, unique_id);
627 DCHECK(MediaStorageUtil::IsRemovableDevice(device_id)); 626 DCHECK(MediaStorageUtil::IsRemovableDevice(device_id));
628 string16 name = location.LossyDisplayName(); 627 string16 name = location.LossyDisplayName();
629 ProcessAttach(device_id, name, location.value()); 628 ProcessAttach(device_id, name, location.value());
630 MessageLoop::current()->RunUntilIdle(); 629 base::MessageLoop::current()->RunUntilIdle();
631 return device_id; 630 return device_id;
632 } 631 }
633 632
634 void MediaFileSystemRegistryTest::DetachDevice(const std::string& device_id) { 633 void MediaFileSystemRegistryTest::DetachDevice(const std::string& device_id) {
635 DCHECK(MediaStorageUtil::IsRemovableDevice(device_id)); 634 DCHECK(MediaStorageUtil::IsRemovableDevice(device_id));
636 ProcessDetach(device_id); 635 ProcessDetach(device_id);
637 MessageLoop::current()->RunUntilIdle(); 636 base::MessageLoop::current()->RunUntilIdle();
638 } 637 }
639 638
640 void MediaFileSystemRegistryTest::SetGalleryPermission( 639 void MediaFileSystemRegistryTest::SetGalleryPermission(
641 ProfileState* profile_state, extensions::Extension* extension, 640 ProfileState* profile_state, extensions::Extension* extension,
642 const std::string& device_id, bool has_access) { 641 const std::string& device_id, bool has_access) {
643 MediaGalleriesPreferences* preferences = 642 MediaGalleriesPreferences* preferences =
644 profile_state->GetMediaGalleriesPrefs(); 643 profile_state->GetMediaGalleriesPrefs();
645 MediaGalleryPrefIdSet pref_id = 644 MediaGalleryPrefIdSet pref_id =
646 preferences->LookUpGalleriesByDeviceId(device_id); 645 preferences->LookUpGalleriesByDeviceId(device_id);
647 ASSERT_EQ(1U, pref_id.size()); 646 ASSERT_EQ(1U, pref_id.size());
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_.Append(kDCIMDirectoryName))); 766 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_.Append(kDCIMDirectoryName)));
768 } 767 }
769 768
770 void MediaFileSystemRegistryTest::TearDown() { 769 void MediaFileSystemRegistryTest::TearDown() {
771 profile_states_.clear(); 770 profile_states_.clear();
772 ChromeRenderViewHostTestHarness::TearDown(); 771 ChromeRenderViewHostTestHarness::TearDown();
773 MediaFileSystemRegistry* registry = 772 MediaFileSystemRegistry* registry =
774 g_browser_process->media_file_system_registry(); 773 g_browser_process->media_file_system_registry();
775 EXPECT_EQ(0U, registry->GetExtensionGalleriesHostCountForTests()); 774 EXPECT_EQ(0U, registry->GetExtensionGalleriesHostCountForTests());
776 BrowserThread::GetBlockingPool()->FlushForTesting(); 775 BrowserThread::GetBlockingPool()->FlushForTesting();
777 MessageLoop::current()->RunUntilIdle(); 776 base::MessageLoop::current()->RunUntilIdle();
778 extensions::ManifestHandler::ClearRegistryForTesting(); 777 extensions::ManifestHandler::ClearRegistryForTesting();
779 } 778 }
780 779
781 /////////// 780 ///////////
782 // Tests // 781 // Tests //
783 /////////// 782 ///////////
784 783
785 TEST_F(MediaFileSystemRegistryTest, Basic) { 784 TEST_F(MediaFileSystemRegistryTest, Basic) {
786 CreateProfileState(1); 785 CreateProfileState(1);
787 AssertAllAutoAddedGalleries(); 786 AssertAllAutoAddedGalleries();
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 GetMediaFileSystemRegistry()->GetPreferences(profile_state->profile()); 868 GetMediaFileSystemRegistry()->GetPreferences(profile_state->profile());
870 const MediaGalleriesPrefInfoMap& galleries = prefs->known_galleries(); 869 const MediaGalleriesPrefInfoMap& galleries = prefs->known_galleries();
871 for (MediaGalleriesPrefInfoMap::const_iterator it = galleries.begin(); 870 for (MediaGalleriesPrefInfoMap::const_iterator it = galleries.begin();
872 it != galleries.end(); ++it) { 871 it != galleries.end(); ++it) {
873 if (it->second.device_id == device_id) { 872 if (it->second.device_id == device_id) {
874 prefs->ForgetGalleryById(it->first); 873 prefs->ForgetGalleryById(it->first);
875 forget_gallery = true; 874 forget_gallery = true;
876 break; 875 break;
877 } 876 }
878 } 877 }
879 MessageLoop::current()->RunUntilIdle(); 878 base::MessageLoop::current()->RunUntilIdle();
880 EXPECT_TRUE(forget_gallery); 879 EXPECT_TRUE(forget_gallery);
881 EXPECT_EQ(gallery_count, GetAutoAddedGalleries(profile_state).size()); 880 EXPECT_EQ(gallery_count, GetAutoAddedGalleries(profile_state).size());
882 881
883 // Call GetPreferences() and the gallery count should not change. 882 // Call GetPreferences() and the gallery count should not change.
884 GetMediaFileSystemRegistry()->GetPreferences(profile_state->profile()); 883 GetMediaFileSystemRegistry()->GetPreferences(profile_state->profile());
885 EXPECT_EQ(gallery_count, GetAutoAddedGalleries(profile_state).size()); 884 EXPECT_EQ(gallery_count, GetAutoAddedGalleries(profile_state).size());
886 } 885 }
887 886
888 TEST_F(MediaFileSystemRegistryTest, GalleryNameDefault) { 887 TEST_F(MediaFileSystemRegistryTest, GalleryNameDefault) {
889 FSInfoMap galleries_info; 888 FSInfoMap galleries_info;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 pref_info_with_relpath.device_id = device_id; 986 pref_info_with_relpath.device_id = device_id;
988 EXPECT_EQ(dcim_dir().Append(pref_info_with_relpath.path).value(), 987 EXPECT_EQ(dcim_dir().Append(pref_info_with_relpath.path).value(),
989 pref_info_with_relpath.AbsolutePath().value()); 988 pref_info_with_relpath.AbsolutePath().value());
990 989
991 DetachDevice(device_id); 990 DetachDevice(device_id);
992 EXPECT_TRUE(pref_info.AbsolutePath().empty()); 991 EXPECT_TRUE(pref_info.AbsolutePath().empty());
993 EXPECT_TRUE(pref_info_with_relpath.AbsolutePath().empty()); 992 EXPECT_TRUE(pref_info_with_relpath.AbsolutePath().empty());
994 } 993 }
995 994
996 } // namespace chrome 995 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698