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

Unified Diff: chrome/browser/media_galleries/media_scan_manager_unittest.cc

Issue 1695563002: Media Galleries Partial Deprecation: Remove scan functionality. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media_galleries/media_scan_manager_unittest.cc
diff --git a/chrome/browser/media_galleries/media_scan_manager_unittest.cc b/chrome/browser/media_galleries/media_scan_manager_unittest.cc
deleted file mode 100644
index 1a6adc214b9bcdd77954094c483e820672cc0cc0..0000000000000000000000000000000000000000
--- a/chrome/browser/media_galleries/media_scan_manager_unittest.cc
+++ /dev/null
@@ -1,735 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-
-#include "base/base_paths.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/run_loop.h"
-#include "base/test/scoped_path_override.h"
-#include "build/build_config.h"
-#include "chrome/browser/extensions/test_extension_system.h"
-#include "chrome/browser/media_galleries/media_folder_finder.h"
-#include "chrome/browser/media_galleries/media_galleries_preferences.h"
-#include "chrome/browser/media_galleries/media_galleries_preferences_factory.h"
-#include "chrome/browser/media_galleries/media_galleries_test_util.h"
-#include "chrome/browser/media_galleries/media_scan_manager.h"
-#include "chrome/browser/media_galleries/media_scan_manager_observer.h"
-#include "chrome/test/base/testing_profile.h"
-#include "components/storage_monitor/test_storage_monitor.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "extensions/browser/extension_system.h"
-#include "extensions/common/extension.h"
-#include "extensions/common/permissions/media_galleries_permission.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h"
-#include "chrome/browser/chromeos/settings/cros_settings.h"
-#include "chrome/browser/chromeos/settings/device_settings_service.h"
-#endif
-
-namespace {
-
-class MockMediaFolderFinder : MediaFolderFinder {
- public:
- typedef base::Callback<void(MediaFolderFinderResultsCallback)>
- FindFoldersStartedCallback;
-
- static MediaFolderFinder* CreateMockMediaFolderFinder(
- const FindFoldersStartedCallback& started_callback,
- const base::Closure destruction_callback,
- const MediaFolderFinderResultsCallback& callback) {
- return new MockMediaFolderFinder(started_callback, destruction_callback,
- callback);
- }
-
- MockMediaFolderFinder(
- const FindFoldersStartedCallback& started_callback,
- const base::Closure destruction_callback,
- const MediaFolderFinderResultsCallback& callback)
- : MediaFolderFinder(callback),
- started_callback_(started_callback),
- destruction_callback_(destruction_callback),
- callback_(callback) {
- }
- ~MockMediaFolderFinder() override { destruction_callback_.Run(); }
-
- void StartScan() override { started_callback_.Run(callback_); }
-
- private:
- FindFoldersStartedCallback started_callback_;
- base::Closure destruction_callback_;
- MediaFolderFinderResultsCallback callback_;
-
- DISALLOW_COPY_AND_ASSIGN(MockMediaFolderFinder);
-};
-
-} // namespace
-
-class TestMediaScanManager : public MediaScanManager {
- public:
- typedef base::Callback<MediaFolderFinder*(
- const MediaFolderFinder::MediaFolderFinderResultsCallback&)>
- MediaFolderFinderFactory;
-
- explicit TestMediaScanManager(const MediaFolderFinderFactory& factory) {
- SetMediaFolderFinderFactory(factory);
- }
- ~TestMediaScanManager() override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestMediaScanManager);
-};
-
-class MediaScanManagerTest : public MediaScanManagerObserver,
- public testing::Test {
- public:
- MediaScanManagerTest()
- : find_folders_start_count_(0),
- find_folders_destroy_count_(0),
- find_folders_success_(false),
- expected_gallery_count_(0),
- profile_(new TestingProfile()) {}
-
- ~MediaScanManagerTest() override {
- EXPECT_EQ(find_folders_start_count_, find_folders_destroy_count_);
- }
-
- void SetUp() override {
- ASSERT_TRUE(storage_monitor::TestStorageMonitor::CreateAndInstall());
-
- extensions::TestExtensionSystem* extension_system(
- static_cast<extensions::TestExtensionSystem*>(
- extensions::ExtensionSystem::Get(profile_.get())));
- extension_system->CreateExtensionService(
- base::CommandLine::ForCurrentProcess(), base::FilePath(), false);
-
- gallery_prefs_ =
- MediaGalleriesPreferencesFactory::GetForProfile(profile_.get());
- base::RunLoop loop;
- gallery_prefs_->EnsureInitialized(loop.QuitClosure());
- loop.Run();
-
- std::vector<std::string> read_permissions;
- read_permissions.push_back(
- extensions::MediaGalleriesPermission::kReadPermission);
- extension_ = AddMediaGalleriesApp("read", read_permissions, profile_.get());
-
- ASSERT_TRUE(test_results_dir_.CreateUniqueTempDir());
-
- MockMediaFolderFinder::FindFoldersStartedCallback started_callback =
- base::Bind(&MediaScanManagerTest::OnFindFoldersStarted,
- base::Unretained(this));
- base::Closure destruction_callback =
- base::Bind(&MediaScanManagerTest::OnFindFoldersDestroyed,
- base::Unretained(this));
- TestMediaScanManager::MediaFolderFinderFactory factory =
- base::Bind(&MockMediaFolderFinder::CreateMockMediaFolderFinder,
- started_callback, destruction_callback);
- media_scan_manager_.reset(new TestMediaScanManager(factory));
- media_scan_manager_->AddObserver(profile_.get(), this);
- }
-
- void TearDown() override {
- media_scan_manager_->RemoveObserver(profile_.get());
- media_scan_manager_.reset();
- storage_monitor::TestStorageMonitor::Destroy();
- }
-
- // Create a test folder in the test specific scoped temp dir and return the
- // final path in |full_path|.
- void MakeTestFolder(const std::string& root_relative_path,
- base::FilePath* full_path) {
- ASSERT_TRUE(test_results_dir_.IsValid());
- *full_path =
- test_results_dir_.path().AppendASCII(root_relative_path);
- ASSERT_TRUE(base::CreateDirectory(*full_path));
- }
-
- // Create the specified path, and add it to preferences as a gallery.
- MediaGalleryPrefId AddGallery(const std::string& rel_path,
- MediaGalleryPrefInfo::Type type,
- int audio_count,
- int image_count,
- int video_count) {
- base::FilePath full_path;
- MakeTestFolder(rel_path, &full_path);
- MediaGalleryPrefInfo gallery_info;
- gallery_prefs_->LookUpGalleryByPath(full_path, &gallery_info);
- return gallery_prefs_->AddGallery(gallery_info.device_id,
- gallery_info.path,
- type,
- gallery_info.volume_label,
- gallery_info.vendor_name,
- gallery_info.model_name,
- gallery_info.total_size_in_bytes,
- gallery_info.last_attach_time,
- audio_count, image_count, video_count);
- }
-
- void SetFindFoldersResults(
- bool success,
- const MediaFolderFinder::MediaFolderFinderResults& results) {
- find_folders_success_ = success;
- find_folders_results_ = results;
- }
-
- void SetExpectedScanResults(int gallery_count,
- const MediaGalleryScanResult& file_counts) {
- expected_gallery_count_ = gallery_count;
- expected_file_counts_ = file_counts;
- }
-
- void StartScan() {
- media_scan_manager_->StartScan(
- profile_.get(), extension_.get(), true /* user_gesture */);
- }
-
- MediaGalleriesPreferences* gallery_prefs() {
- return gallery_prefs_;
- }
-
- const MediaGalleriesPrefInfoMap& known_galleries() const {
- return gallery_prefs_->known_galleries();
- }
-
- size_t gallery_count() const {
- return known_galleries().size();
- }
-
- extensions::Extension* extension() {
- return extension_.get();
- }
-
- int FindFoldersStartCount() {
- return find_folders_start_count_;
- }
-
- int FindFolderDestroyCount() {
- return find_folders_destroy_count_;
- }
-
- void CheckFileCounts(MediaGalleryPrefId pref_id, int audio_count,
- int image_count, int video_count) {
- if (!ContainsKey(known_galleries(), pref_id)) {
- EXPECT_TRUE(false);
- return;
- }
- MediaGalleriesPrefInfoMap::const_iterator pref_info =
- known_galleries().find(pref_id);
- EXPECT_EQ(audio_count, pref_info->second.audio_count);
- EXPECT_EQ(image_count, pref_info->second.image_count);
- EXPECT_EQ(video_count, pref_info->second.video_count);
- }
-
- // MediaScanManagerObserver implementation.
- void OnScanFinished(const std::string& extension_id,
- int gallery_count,
- const MediaGalleryScanResult& file_counts) override {
- EXPECT_EQ(extension_->id(), extension_id);
- EXPECT_EQ(expected_gallery_count_, gallery_count);
- EXPECT_EQ(expected_file_counts_.audio_count, file_counts.audio_count);
- EXPECT_EQ(expected_file_counts_.image_count, file_counts.image_count);
- EXPECT_EQ(expected_file_counts_.video_count, file_counts.video_count);
- }
-
- protected:
- // So derived tests can access ...::FindContainerScanResults().
- MediaFolderFinder::MediaFolderFinderResults FindContainerScanResults(
- const MediaFolderFinder::MediaFolderFinderResults& found_folders,
- const std::vector<base::FilePath>& sensitive_locations) {
- return MediaScanManager::FindContainerScanResults(found_folders,
- sensitive_locations);
- }
-
- private:
- void OnFindFoldersStarted(
- MediaFolderFinder::MediaFolderFinderResultsCallback callback) {
- find_folders_start_count_++;
- callback.Run(find_folders_success_, find_folders_results_);
- }
-
- void OnFindFoldersDestroyed() {
- find_folders_destroy_count_++;
- }
-
- scoped_ptr<TestMediaScanManager> media_scan_manager_;
-
- int find_folders_start_count_;
- int find_folders_destroy_count_;
- bool find_folders_success_;
- MediaFolderFinder::MediaFolderFinderResults find_folders_results_;
-
- int expected_gallery_count_;
- MediaGalleryScanResult expected_file_counts_;
-
- base::ScopedTempDir test_results_dir_;
-
- // Needed for extension service & friends to work.
- content::TestBrowserThreadBundle thread_bundle_;
-
- scoped_refptr<extensions::Extension> extension_;
-
- EnsureMediaDirectoriesExists mock_gallery_locations_;
-
-#if defined(OS_CHROMEOS)
- chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
- chromeos::ScopedTestCrosSettings test_cros_settings_;
- chromeos::ScopedTestUserManager test_user_manager_;
-#endif
-
- storage_monitor::TestStorageMonitor monitor_;
- scoped_ptr<TestingProfile> profile_;
- MediaGalleriesPreferences* gallery_prefs_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaScanManagerTest);
-};
-
-TEST_F(MediaScanManagerTest, SingleResult) {
- size_t galleries_before = gallery_count();
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- base::FilePath path;
- MakeTestFolder("found_media_folder", &path);
-
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- found_folders[path] = file_counts;
- SetFindFoldersResults(true, found_folders);
-
- SetExpectedScanResults(1 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 1, gallery_count());
-}
-
-// Generally test that it includes directories with sufficient density
-// and excludes others.
-//
-// A/ - NOT included
-// A/B/ - NOT included
-// A/B/C/files
-// A/D/ - NOT included
-// A/D/E/files
-// A/D/F/files
-// A/D/G/files
-// A/D/H/
-// A/H/ - included in results
-// A/H/I/files
-// A/H/J/files
-TEST_F(MediaScanManagerTest, MergeRedundant) {
- base::FilePath path;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- std::vector<base::FilePath> sensitive_locations;
- std::vector<base::FilePath> expected_folders;
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- MakeTestFolder("A", &path);
- MakeTestFolder("A/B", &path);
- MakeTestFolder("A/B/C", &path);
- found_folders[path] = file_counts;
- // Not dense enough.
- MakeTestFolder("A/D", &path);
- MakeTestFolder("A/D/E", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/F", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/G", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/H", &path);
- // Dense enough to be reported.
- MakeTestFolder("A/H", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/H/I", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/H/J", &path);
- found_folders[path] = file_counts;
- MediaFolderFinder::MediaFolderFinderResults results =
- FindContainerScanResults(found_folders, sensitive_locations);
- EXPECT_EQ(expected_folders.size(), results.size());
- for (std::vector<base::FilePath>::const_iterator it =
- expected_folders.begin();
- it != expected_folders.end();
- ++it) {
- EXPECT_TRUE(results.find(*it) != results.end());
- }
-}
-
-// Make sure intermediates are not included.
-//
-// A/ - included in results
-// A/B1/ - NOT included
-// A/B1/B2/files
-// A/C1/ - NOT included
-// A/C1/C2/files
-TEST_F(MediaScanManagerTest, MergeRedundantNoIntermediates) {
- base::FilePath path;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- std::vector<base::FilePath> sensitive_locations;
- std::vector<base::FilePath> expected_folders;
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- MakeTestFolder("A", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/B1", &path);
- MakeTestFolder("A/B1/B2", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/C1", &path);
- MakeTestFolder("A/C1/C2", &path);
- found_folders[path] = file_counts;
- // Make "home dir" not dense enough.
- MakeTestFolder("D", &path);
- MediaFolderFinder::MediaFolderFinderResults results =
- FindContainerScanResults(found_folders, sensitive_locations);
- EXPECT_EQ(expected_folders.size(), results.size());
- for (std::vector<base::FilePath>::const_iterator it =
- expected_folders.begin();
- it != expected_folders.end();
- ++it) {
- EXPECT_TRUE(results.find(*it) != results.end());
- }
-}
-
-// Make sure "A/" only gets a count of 1, from "A/D/",
-// not 2 from "A/D/H/" and "A/D/I/".
-//
-// A/ - NOT included
-// A/D/ - included in results
-// A/D/E/files
-// A/D/F/files
-// A/D/G/files
-// A/D/H/files
-// A/D/I/ - NOT included
-// A/D/I/J/files
-TEST_F(MediaScanManagerTest, MergeRedundantVerifyNoOvercount) {
- base::FilePath path;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- std::vector<base::FilePath> sensitive_locations;
- std::vector<base::FilePath> expected_folders;
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- MakeTestFolder("A", &path);
- MakeTestFolder("A/D", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/D/E", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/F", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/G", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/H", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/I", &path);
- MakeTestFolder("A/D/I/J", &path);
- found_folders[path] = file_counts;
- MediaFolderFinder::MediaFolderFinderResults results =
- FindContainerScanResults(found_folders, sensitive_locations);
- EXPECT_EQ(expected_folders.size(), results.size());
- for (std::vector<base::FilePath>::const_iterator it =
- expected_folders.begin();
- it != expected_folders.end();
- ++it) {
- EXPECT_TRUE(results.find(*it) != results.end());
- }
-}
-
-// Make sure that sensistive directories are pruned.
-//
-// A/ - NOT included
-// A/B/ - sensitive
-// A/C/ - included in results
-// A/C/G/files
-// A/C/H/files
-// A/D/ - included in results
-// A/D/I/files
-// A/D/J/files
-// A/E/ - included in results
-// A/E/K/files
-// A/E/L/files
-// A/F/ - included in results
-// A/F/M/files
-// A/F/N/files
-TEST_F(MediaScanManagerTest, MergeRedundantWithSensitive) {
- base::FilePath path;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- std::vector<base::FilePath> sensitive_locations;
- std::vector<base::FilePath> expected_folders;
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- MakeTestFolder("A", &path);
- MakeTestFolder("A/B", &path);
- sensitive_locations.push_back(path);
- MakeTestFolder("A/C", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/C/G", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/C/H", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/D/I", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/D/J", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/E", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/E/K", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/E/L", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/F", &path);
- expected_folders.push_back(path);
- MakeTestFolder("A/F/M", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("A/F/N", &path);
- found_folders[path] = file_counts;
- MediaFolderFinder::MediaFolderFinderResults results =
- FindContainerScanResults(found_folders, sensitive_locations);
- EXPECT_EQ(expected_folders.size(), results.size());
- for (std::vector<base::FilePath>::const_iterator it =
- expected_folders.begin();
- it != expected_folders.end();
- ++it) {
- EXPECT_TRUE(results.find(*it) != results.end());
- }
-}
-
-TEST_F(MediaScanManagerTest, Containers) {
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- base::FilePath path;
- std::set<base::FilePath> expected_galleries;
- std::set<base::FilePath> bad_galleries;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- size_t galleries_before = gallery_count();
-
- // Should manifest as a gallery in result1.
- MakeTestFolder("dir1/result1", &path);
- expected_galleries.insert(path);
- found_folders[path] = file_counts;
-
- // Should manifest as a gallery in dir2.
- MakeTestFolder("dir2/result2", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- MakeTestFolder("dir2/result3", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- expected_galleries.insert(path.DirName());
-
- // Should manifest as a two galleries: result4 and result5.
- MakeTestFolder("dir3/other", &path);
- bad_galleries.insert(path);
- MakeTestFolder("dir3/result4", &path);
- expected_galleries.insert(path);
- found_folders[path] = file_counts;
- MakeTestFolder("dir3/result5", &path);
- expected_galleries.insert(path);
- found_folders[path] = file_counts;
-
- // Should manifest as a gallery in dir4.
- MakeTestFolder("dir4/other", &path);
- bad_galleries.insert(path);
- MakeTestFolder("dir4/result6", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- MakeTestFolder("dir4/result7", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- MakeTestFolder("dir4/result8", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- MakeTestFolder("dir4/result9", &path);
- bad_galleries.insert(path);
- found_folders[path] = file_counts;
- expected_galleries.insert(path.DirName());
-
- SetFindFoldersResults(true, found_folders);
-
- file_counts.audio_count = 9;
- SetExpectedScanResults(5 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 5, gallery_count());
-
- std::set<base::FilePath> found_galleries;
- for (MediaGalleriesPrefInfoMap::const_iterator it = known_galleries().begin();
- it != known_galleries().end();
- ++it) {
- found_galleries.insert(it->second.AbsolutePath());
- DCHECK(!ContainsKey(bad_galleries, it->second.AbsolutePath()));
- }
- for (std::set<base::FilePath>::const_iterator it = expected_galleries.begin();
- it != expected_galleries.end();
- ++it) {
- DCHECK(ContainsKey(found_galleries, *it));
- }
-}
-
-TEST_F(MediaScanManagerTest, UpdateExistingScanResults) {
- size_t galleries_before = gallery_count();
-
- MediaGalleryPrefId ungranted_scan =
- AddGallery("uscan", MediaGalleryPrefInfo::kScanResult, 1, 0, 0);
- MediaGalleryPrefId granted_scan =
- AddGallery("gscan", MediaGalleryPrefInfo::kScanResult, 0, 2, 0);
- gallery_prefs()->SetGalleryPermissionForExtension(*extension(), granted_scan,
- true);
- EXPECT_EQ(galleries_before + 2, gallery_count());
-
- // Run once with no scan results. "uscan" should go away and "gscan" should
- // have its scan counts updated.
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- SetFindFoldersResults(true, found_folders);
-
- MediaGalleryScanResult file_counts;
- SetExpectedScanResults(0 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 1, gallery_count());
- CheckFileCounts(granted_scan, 0, 0, 0);
-
- MediaGalleryPrefId id =
- AddGallery("uscan", MediaGalleryPrefInfo::kScanResult, 1, 1, 1);
- EXPECT_NE(id, ungranted_scan);
- ungranted_scan = id;
-
- // Add scan results near the existing scan results.
- file_counts.audio_count = 0;
- file_counts.image_count = 0;
- file_counts.video_count = 7;
- base::FilePath path;
- MakeTestFolder("uscan", &path);
- found_folders[path] = file_counts;
-
- file_counts.video_count = 11;
- MakeTestFolder("gscan/dir1", &path);
- found_folders[path] = file_counts;
-
- MakeTestFolder("junk", &path);
-
- SetFindFoldersResults(true, found_folders);
- file_counts.video_count = 7;
- SetExpectedScanResults(1 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(2, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 2, gallery_count());
- CheckFileCounts(granted_scan, 0, 0, 11);
- // The new scan result should be one more than it's previous id.
- CheckFileCounts(ungranted_scan + 1, 0, 0, 7);
-}
-
-TEST_F(MediaScanManagerTest, UpdateExistingCounts) {
- size_t galleries_before = gallery_count();
-
- MediaGalleryPrefId auto_id =
- AddGallery("auto", MediaGalleryPrefInfo::kAutoDetected, 1, 0, 0);
- MediaGalleryPrefId user_id =
- AddGallery("user", MediaGalleryPrefInfo::kUserAdded, 0, 2, 0);
- MediaGalleryPrefId scan_id =
- AddGallery("scan", MediaGalleryPrefInfo::kScanResult, 0, 0, 3);
- // Grant permission so this one isn't removed and readded.
- gallery_prefs()->SetGalleryPermissionForExtension(*extension(), scan_id,
- true);
- CheckFileCounts(auto_id, 1, 0, 0);
- CheckFileCounts(user_id, 0, 2, 0);
- CheckFileCounts(scan_id, 0, 0, 3);
-
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 4;
- base::FilePath path;
- MakeTestFolder("auto/dir1", &path);
- found_folders[path] = file_counts;
-
- file_counts.audio_count = 6;
- MakeTestFolder("scan", &path);
- found_folders[path] = file_counts;
-
- MakeTestFolder("junk", &path);
-
- file_counts.audio_count = 5;
- MakeTestFolder("user/dir2", &path);
- found_folders[path] = file_counts;
-
- SetFindFoldersResults(true, found_folders);
-
- file_counts.audio_count = 0;
- SetExpectedScanResults(0 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 3, gallery_count());
- CheckFileCounts(auto_id, 4, 0, 0);
- CheckFileCounts(user_id, 5, 0, 0);
- CheckFileCounts(scan_id, 6, 0, 0);
-
- EXPECT_EQ(1U, found_folders.erase(path));
- SetFindFoldersResults(true, found_folders);
- SetExpectedScanResults(0 /*gallery_count*/, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(2, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + 3, gallery_count());
- CheckFileCounts(auto_id, 4, 0, 0);
- CheckFileCounts(user_id, 0, 0, 0);
- CheckFileCounts(scan_id, 6, 0, 0);
-}
-
-TEST_F(MediaScanManagerTest, Graylist) {
- size_t galleries_before = gallery_count();
- MediaGalleryScanResult file_counts;
- file_counts.audio_count = 1;
- file_counts.image_count = 2;
- file_counts.video_count = 3;
- base::FilePath path;
- MakeTestFolder("found_media_folder", &path);
- base::ScopedPathOverride scoped_fake_home_dir_override(base::DIR_HOME, path);
-
- const size_t kGalleriesAdded = 3;
- MediaFolderFinder::MediaFolderFinderResults found_folders;
- MakeTestFolder("found_media_folder/dir1", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("found_media_folder/dir2", &path);
- found_folders[path] = file_counts;
- MakeTestFolder("found_media_folder/dir3", &path);
- found_folders[path] = file_counts;
- SetFindFoldersResults(true, found_folders);
-
- file_counts.audio_count *= kGalleriesAdded;
- file_counts.image_count *= kGalleriesAdded;
- file_counts.video_count *= kGalleriesAdded;
- SetExpectedScanResults(kGalleriesAdded, file_counts);
- StartScan();
-
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, FindFolderDestroyCount());
- EXPECT_EQ(galleries_before + kGalleriesAdded, gallery_count());
-}
« no previous file with comments | « chrome/browser/media_galleries/media_scan_manager_observer.h ('k') | chrome/browser/media_galleries/media_scan_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698