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

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

Issue 14197014: Add TestBrowserThreadBundle into RenderViewHostTestHarness. Kill some unnecessary real threads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: once more unto the try serves. Created 7 years, 6 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/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 content::MockRenderProcessHost* single_rph_; 273 content::MockRenderProcessHost* single_rph_;
274 content::MockRenderProcessHost* shared_rph_; 274 content::MockRenderProcessHost* shared_rph_;
275 275
276 DISALLOW_COPY_AND_ASSIGN(ProfileState); 276 DISALLOW_COPY_AND_ASSIGN(ProfileState);
277 }; 277 };
278 278
279 } // namespace 279 } // namespace
280 280
281 class MediaFileSystemRegistryTest : public ChromeRenderViewHostTestHarness { 281 class MediaFileSystemRegistryTest : public ChromeRenderViewHostTestHarness {
282 public: 282 public:
283 MediaFileSystemRegistryTest();
284 virtual ~MediaFileSystemRegistryTest() {}
285
286 void CreateProfileState(size_t profile_count); 283 void CreateProfileState(size_t profile_count);
287 284
288 ProfileState* GetProfileState(size_t i); 285 ProfileState* GetProfileState(size_t i);
289 286
290 MediaGalleriesPreferences* GetPreferences(Profile* profile); 287 MediaGalleriesPreferences* GetPreferences(Profile* profile);
291 288
292 base::FilePath empty_dir() { 289 base::FilePath empty_dir() {
293 return empty_dir_; 290 return empty_dir_;
294 } 291 }
295 292
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 base::ScopedTempDir galleries_dir_; 360 base::ScopedTempDir galleries_dir_;
364 // An empty directory in |galleries_dir_| 361 // An empty directory in |galleries_dir_|
365 base::FilePath empty_dir_; 362 base::FilePath empty_dir_;
366 // A directory in |galleries_dir_| with a DCIM directory in it. 363 // A directory in |galleries_dir_| with a DCIM directory in it.
367 base::FilePath dcim_dir_; 364 base::FilePath dcim_dir_;
368 365
369 // MediaFileSystemRegistry owns this. 366 // MediaFileSystemRegistry owns this.
370 TestMediaFileSystemContext* test_file_system_context_; 367 TestMediaFileSystemContext* test_file_system_context_;
371 368
372 // Needed for extension service & friends to work. 369 // Needed for extension service & friends to work.
373 content::TestBrowserThread ui_thread_;
374 content::TestBrowserThread file_thread_;
375 370
376 #if defined OS_CHROMEOS 371 #if defined OS_CHROMEOS
377 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; 372 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
378 chromeos::ScopedTestCrosSettings test_cros_settings_; 373 chromeos::ScopedTestCrosSettings test_cros_settings_;
379 chromeos::ScopedTestUserManager test_user_manager_; 374 scoped_ptr<chromeos::ScopedTestUserManager> test_user_manager_;
380 #endif 375 #endif
381 376
382 // TODO(gbillock): Eliminate windows-specific code from this test. 377 // TODO(gbillock): Eliminate windows-specific code from this test.
383 #if defined(OS_WIN) 378 #if defined(OS_WIN)
384 scoped_ptr<test::TestStorageMonitorWin> monitor_; 379 scoped_ptr<test::TestStorageMonitorWin> monitor_;
385 #else 380 #else
386 scoped_ptr<chrome::test::TestStorageMonitor> monitor_; 381 scoped_ptr<chrome::test::TestStorageMonitor> monitor_;
387 #endif 382 #endif
388 383
389 MockProfileSharedRenderProcessHostFactory rph_factory_; 384 MockProfileSharedRenderProcessHostFactory rph_factory_;
390 385
391 ScopedVector<ProfileState> profile_states_; 386 ScopedVector<ProfileState> profile_states_;
392
393 DISALLOW_COPY_AND_ASSIGN(MediaFileSystemRegistryTest);
394 }; 387 };
395 388
396 namespace { 389 namespace {
397 390
398 bool MediaFileSystemInfoComparator(const MediaFileSystemInfo& a, 391 bool MediaFileSystemInfoComparator(const MediaFileSystemInfo& a,
399 const MediaFileSystemInfo& b) { 392 const MediaFileSystemInfo& b) {
400 CHECK_NE(a.name, b.name); // Name must be unique. 393 CHECK_NE(a.name, b.name); // Name must be unique.
401 return a.name < b.name; 394 return a.name < b.name;
402 } 395 }
403 396
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 num_comparisons_ = 0; 564 num_comparisons_ = 0;
572 return result; 565 return result;
573 } 566 }
574 567
575 } // namespace 568 } // namespace
576 569
577 ///////////////////////////////// 570 /////////////////////////////////
578 // MediaFileSystemRegistryTest // 571 // MediaFileSystemRegistryTest //
579 ///////////////////////////////// 572 /////////////////////////////////
580 573
581 MediaFileSystemRegistryTest::MediaFileSystemRegistryTest()
582 : ui_thread_(content::BrowserThread::UI, base::MessageLoop::current()),
583 file_thread_(content::BrowserThread::FILE, base::MessageLoop::current()) {
584 }
585
586 void MediaFileSystemRegistryTest::CreateProfileState(size_t profile_count) { 574 void MediaFileSystemRegistryTest::CreateProfileState(size_t profile_count) {
587 for (size_t i = 0; i < profile_count; ++i) { 575 for (size_t i = 0; i < profile_count; ++i) {
588 ProfileState* state = new ProfileState(&rph_factory_); 576 ProfileState* state = new ProfileState(&rph_factory_);
589 profile_states_.push_back(state); 577 profile_states_.push_back(state);
590 } 578 }
591 } 579 }
592 580
593 ProfileState* MediaFileSystemRegistryTest::GetProfileState(size_t i) { 581 ProfileState* MediaFileSystemRegistryTest::GetProfileState(size_t i) {
594 return profile_states_[i]; 582 return profile_states_[i];
595 } 583 }
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 registry->extension_hosts_map_.begin(); 720 registry->extension_hosts_map_.begin();
733 it != registry->extension_hosts_map_.end(); 721 it != registry->extension_hosts_map_.end();
734 ++it) { 722 ++it) {
735 extension_galleries_host_count += it->second.size(); 723 extension_galleries_host_count += it->second.size();
736 } 724 }
737 return extension_galleries_host_count; 725 return extension_galleries_host_count;
738 } 726 }
739 727
740 728
741 void MediaFileSystemRegistryTest::SetUp() { 729 void MediaFileSystemRegistryTest::SetUp() {
730 ChromeRenderViewHostTestHarness::SetUp();
742 #if defined(OS_WIN) 731 #if defined(OS_WIN)
743 test::TestPortableDeviceWatcherWin* portable_device_watcher = 732 test::TestPortableDeviceWatcherWin* portable_device_watcher =
744 new test::TestPortableDeviceWatcherWin; 733 new test::TestPortableDeviceWatcherWin;
745 test::TestVolumeMountWatcherWin* mount_watcher = 734 test::TestVolumeMountWatcherWin* mount_watcher =
746 new test::TestVolumeMountWatcherWin; 735 new test::TestVolumeMountWatcherWin;
747 portable_device_watcher->set_use_dummy_mtp_storage_info(true); 736 portable_device_watcher->set_use_dummy_mtp_storage_info(true);
748 monitor_.reset(new test::TestStorageMonitorWin( 737 monitor_.reset(new test::TestStorageMonitorWin(
749 mount_watcher, portable_device_watcher)); 738 mount_watcher, portable_device_watcher));
750 monitor_->Initialize(base::Bind(&base::DoNothing));
751 // TODO(gbillock): Replace this with the correct event notification
752 // on the storage monitor finishing the startup scan when that exists.
753 base::RunLoop().RunUntilIdle();
754 mount_watcher->FlushWorkerPoolForTesting();
755 base::RunLoop().RunUntilIdle();
756 mount_watcher->FlushWorkerPoolForTesting();
757 base::RunLoop().RunUntilIdle();
758 #else 739 #else
759 monitor_.reset(new test::TestStorageMonitor()); 740 monitor_.reset(new test::TestStorageMonitor());
760 monitor_->Initialize(base::Bind(&base::DoNothing)); 741 // TODO(ajwong): ask gbillock if we need this MarkInitialized?
Greg Billock 2013/06/05 23:31:33 The TestStorageMonitor is set up so the tests run
761 monitor_->MarkInitialized(); 742 monitor_->MarkInitialized();
762 base::RunLoop().RunUntilIdle();
763 #endif 743 #endif
744 base::RunLoop runloop;
745 monitor_->Initialize(runloop.QuitClosure());
746 runloop.Run();
764 747
765 ChromeRenderViewHostTestHarness::SetUp();
766 DeleteContents(); 748 DeleteContents();
767 SetRenderProcessHostFactory(&rph_factory_); 749 SetRenderProcessHostFactory(&rph_factory_);
768 750
769 test_file_system_context_ = new TestMediaFileSystemContext( 751 test_file_system_context_ = new TestMediaFileSystemContext(
770 g_browser_process->media_file_system_registry()); 752 g_browser_process->media_file_system_registry());
771 753
754 #if defined(OS_CHROMEOS)
755 test_user_manager_.reset(new chromeos::ScopedTestUserManager());
756 #endif
757
772 ASSERT_TRUE(galleries_dir_.CreateUniqueTempDir()); 758 ASSERT_TRUE(galleries_dir_.CreateUniqueTempDir());
773 empty_dir_ = galleries_dir_.path().AppendASCII("empty"); 759 empty_dir_ = galleries_dir_.path().AppendASCII("empty");
774 ASSERT_TRUE(file_util::CreateDirectory(empty_dir_)); 760 ASSERT_TRUE(file_util::CreateDirectory(empty_dir_));
775 dcim_dir_ = galleries_dir_.path().AppendASCII("with_dcim"); 761 dcim_dir_ = galleries_dir_.path().AppendASCII("with_dcim");
776 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_)); 762 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_));
777 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_.Append(kDCIMDirectoryName))); 763 ASSERT_TRUE(file_util::CreateDirectory(dcim_dir_.Append(kDCIMDirectoryName)));
778 } 764 }
779 765
780 void MediaFileSystemRegistryTest::TearDown() { 766 void MediaFileSystemRegistryTest::TearDown() {
781 profile_states_.clear(); 767 profile_states_.clear();
782 ChromeRenderViewHostTestHarness::TearDown();
783 MediaFileSystemRegistry* registry = 768 MediaFileSystemRegistry* registry =
784 g_browser_process->media_file_system_registry(); 769 g_browser_process->media_file_system_registry();
785 EXPECT_EQ(0U, GetExtensionGalleriesHostCount(registry)); 770 EXPECT_EQ(0U, GetExtensionGalleriesHostCount(registry));
786 BrowserThread::GetBlockingPool()->FlushForTesting(); 771 #if defined(OS_CHROMEOS)
787 base::MessageLoop::current()->RunUntilIdle(); 772 test_user_manager_.reset();
773 #endif
774
775 #if defined(OS_WIN)
776 monitor_.reset();
777 #endif
778 ChromeRenderViewHostTestHarness::TearDown();
788 } 779 }
789 780
790 /////////// 781 ///////////
791 // Tests // 782 // Tests //
792 /////////// 783 ///////////
793 784
794 TEST_F(MediaFileSystemRegistryTest, Basic) { 785 TEST_F(MediaFileSystemRegistryTest, Basic) {
795 CreateProfileState(1); 786 CreateProfileState(1);
796 AssertAllAutoAddedGalleries(); 787 AssertAllAutoAddedGalleries();
797 788
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
993 pref_info_with_relpath.device_id = device_id; 984 pref_info_with_relpath.device_id = device_id;
994 EXPECT_EQ(dcim_dir().Append(pref_info_with_relpath.path).value(), 985 EXPECT_EQ(dcim_dir().Append(pref_info_with_relpath.path).value(),
995 pref_info_with_relpath.AbsolutePath().value()); 986 pref_info_with_relpath.AbsolutePath().value());
996 987
997 DetachDevice(device_id); 988 DetachDevice(device_id);
998 EXPECT_TRUE(pref_info.AbsolutePath().empty()); 989 EXPECT_TRUE(pref_info.AbsolutePath().empty());
999 EXPECT_TRUE(pref_info_with_relpath.AbsolutePath().empty()); 990 EXPECT_TRUE(pref_info_with_relpath.AbsolutePath().empty());
1000 } 991 }
1001 992
1002 } // namespace chrome 993 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/media/media_capture_devices_dispatcher.cc ('k') | chrome/browser/nacl_host/pnacl_translation_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698