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