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

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: add tests, fix bugs 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 252098)
+++ chrome/browser/media_galleries/media_folder_finder_unittest.cc (working copy)
@@ -7,11 +7,13 @@
#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 "content/public/browser/browser_thread.h"
@@ -67,6 +69,9 @@
}
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 +346,58 @@
RunLoopUntilReceivedCallback();
DeleteMediaFolderFinder();
}
+
+TEST_F(MediaFolderFinderTest, Prune) {
+ MediaFolderFinder::MediaFolderFinderResults expected_results;
+ std::vector<base::FilePath> folders;
+ folders.push_back(fake_dir());
+
+ base::FilePath fake_cache_dir = fake_dir().AppendASCII("dir1");
+ base::ScopedPathOverride scoped_fake_cache_dir_override(base::DIR_CACHE,
+ fake_cache_dir);
+
+ CreateTestFile(fake_dir(), MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+ CreateTestFile(fake_cache_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+
+ base::FilePath test_dir = fake_cache_dir.AppendASCII("dir2");
+ CreateTestFile(test_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
+ &expected_results);
+
+ // |fake_cache_dir| and |test_dir| are pruned.
+ expected_results.erase(fake_cache_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();
+}

Powered by Google App Engine
This is Rietveld 408576698