| 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();
|
| +}
|
|
|