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

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

Issue 173853007: Media Galleries: Prune uninteresting folders when scanning. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 6 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_folder_finder_unittest.cc
===================================================================
--- chrome/browser/media_galleries/media_folder_finder_unittest.cc (revision 253526)
+++ chrome/browser/media_galleries/media_folder_finder_unittest.cc (working copy)
@@ -7,13 +7,16 @@
#include <set>
#include <string>
+#include "base/base_paths.h"
#include "base/bind.h"
#include "base/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/run_loop.h"
#include "base/strings/stringprintf.h"
+#include "base/test/scoped_path_override.h"
#include "base/threading/sequenced_worker_pool.h"
#include "chrome/browser/media_galleries/media_scan_types.h"
+#include "chrome/common/chrome_paths.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/test_browser_thread_bundle.h"
@@ -62,11 +65,14 @@
return received_results_;
}
- const base::FilePath& fake_dir() {
+ const base::FilePath& fake_dir() const {
return fake_dir_.path();
}
void CreateTestDir(const base::FilePath& parent_dir) {
+ if (parent_dir == fake_dir())
+ return;
+
ASSERT_TRUE(fake_dir().IsParent(parent_dir));
ASSERT_TRUE(base::CreateDirectory(parent_dir));
}
@@ -341,3 +347,66 @@
RunLoopUntilReceivedCallback();
DeleteMediaFolderFinder();
}
+
+TEST_F(MediaFolderFinderTest, Prune) {
+ MediaFolderFinder::MediaFolderFinderResults expected_results;
+ std::vector<base::FilePath> folders;
+ folders.push_back(fake_dir());
+
+#if defined(OS_WIN)
+ int pruned_dir_key = base::DIR_IE_INTERNET_CACHE;
+#elif defined(OS_MACOSX)
+ int pruned_dir_key = chrome::DIR_USER_LIBRARY;
+#else
+ int pruned_dir_key = base::DIR_CACHE;
+#endif
+
+ base::FilePath fake_pruned_dir = fake_dir().AppendASCII("dir1");
+ base::ScopedPathOverride scoped_fake_pruned_dir_override(pruned_dir_key,
+ fake_pruned_dir);
+
+ CreateTestFile(fake_dir(), MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+ CreateTestFile(fake_pruned_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+
+ base::FilePath test_dir = fake_pruned_dir.AppendASCII("dir2");
+ CreateTestFile(test_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+
+ // |fake_pruned_dir| and |test_dir| are pruned.
+ expected_results.erase(fake_pruned_dir);
+ expected_results.erase(test_dir);
+
+ CreateMediaFolderFinder(folders, true, expected_results);
+ StartScan();
+ RunLoopUntilReceivedCallback();
+ DeleteMediaFolderFinder();
+}
+
+TEST_F(MediaFolderFinderTest, Graylist) {
+ MediaFolderFinder::MediaFolderFinderResults expected_results;
+ std::vector<base::FilePath> folders;
+ folders.push_back(fake_dir());
+
+ base::FilePath fake_home_dir = fake_dir().AppendASCII("dir1");
+ base::FilePath test_dir = fake_home_dir.AppendASCII("dir2");
+ base::ScopedPathOverride scoped_fake_home_dir_override(base::DIR_HOME,
+ fake_home_dir);
+
+ CreateTestFile(fake_dir(), MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+ CreateTestFile(fake_home_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+ CreateTestFile(test_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+
+ // |fake_home_dir| and its ancestors do not show up in results.
+ expected_results.erase(fake_dir());
+ expected_results.erase(fake_home_dir);
+
+ CreateMediaFolderFinder(folders, true, expected_results);
+ StartScan();
+ RunLoopUntilReceivedCallback();
+ DeleteMediaFolderFinder();
+}
« no previous file with comments | « chrome/browser/media_galleries/media_folder_finder.cc ('k') | chrome/browser/media_galleries/media_scan_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698