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

Side by Side 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, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media_galleries/media_folder_finder.h" 5 #include "chrome/browser/media_galleries/media_folder_finder.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "base/base_paths.h"
10 #include "base/bind.h" 11 #include "base/bind.h"
11 #include "base/file_util.h" 12 #include "base/file_util.h"
12 #include "base/files/scoped_temp_dir.h" 13 #include "base/files/scoped_temp_dir.h"
13 #include "base/run_loop.h" 14 #include "base/run_loop.h"
14 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
16 #include "base/test/scoped_path_override.h"
15 #include "base/threading/sequenced_worker_pool.h" 17 #include "base/threading/sequenced_worker_pool.h"
16 #include "chrome/browser/media_galleries/media_scan_types.h" 18 #include "chrome/browser/media_galleries/media_scan_types.h"
19 #include "chrome/common/chrome_paths.h"
17 #include "content/public/browser/browser_thread.h" 20 #include "content/public/browser/browser_thread.h"
18 #include "content/public/test/test_browser_thread_bundle.h" 21 #include "content/public/test/test_browser_thread_bundle.h"
19 22
20 23
21 class MediaFolderFinderTest : public testing::Test { 24 class MediaFolderFinderTest : public testing::Test {
22 public: 25 public:
23 MediaFolderFinderTest() { 26 MediaFolderFinderTest() {
24 } 27 }
25 28
26 virtual ~MediaFolderFinderTest() { 29 virtual ~MediaFolderFinderTest() {
(...skipping 28 matching lines...) Expand all
55 58
56 void DeleteMediaFolderFinder() { 59 void DeleteMediaFolderFinder() {
57 EXPECT_TRUE(media_folder_finder_.get() != NULL); 60 EXPECT_TRUE(media_folder_finder_.get() != NULL);
58 media_folder_finder_.reset(); 61 media_folder_finder_.reset();
59 } 62 }
60 63
61 bool received_results() const { 64 bool received_results() const {
62 return received_results_; 65 return received_results_;
63 } 66 }
64 67
65 const base::FilePath& fake_dir() { 68 const base::FilePath& fake_dir() const {
66 return fake_dir_.path(); 69 return fake_dir_.path();
67 } 70 }
68 71
69 void CreateTestDir(const base::FilePath& parent_dir) { 72 void CreateTestDir(const base::FilePath& parent_dir) {
73 if (parent_dir == fake_dir())
74 return;
75
70 ASSERT_TRUE(fake_dir().IsParent(parent_dir)); 76 ASSERT_TRUE(fake_dir().IsParent(parent_dir));
71 ASSERT_TRUE(base::CreateDirectory(parent_dir)); 77 ASSERT_TRUE(base::CreateDirectory(parent_dir));
72 } 78 }
73 79
74 void CreateTestFile(const base::FilePath& parent_dir, 80 void CreateTestFile(const base::FilePath& parent_dir,
75 MediaGalleryScanFileType type, 81 MediaGalleryScanFileType type,
76 size_t count, 82 size_t count,
77 bool big, 83 bool big,
78 MediaFolderFinder::MediaFolderFinderResults* results) { 84 MediaFolderFinder::MediaFolderFinderResults* results) {
79 CreateTestDir(parent_dir); 85 CreateTestDir(parent_dir);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 folders.push_back(dir1); 340 folders.push_back(dir1);
335 341
336 CreateTestFile(dir1, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true, 342 CreateTestFile(dir1, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
337 &expected_results); 343 &expected_results);
338 344
339 CreateMediaFolderFinder(folders, true, expected_results); 345 CreateMediaFolderFinder(folders, true, expected_results);
340 StartScan(); 346 StartScan();
341 RunLoopUntilReceivedCallback(); 347 RunLoopUntilReceivedCallback();
342 DeleteMediaFolderFinder(); 348 DeleteMediaFolderFinder();
343 } 349 }
350
351 TEST_F(MediaFolderFinderTest, Prune) {
352 MediaFolderFinder::MediaFolderFinderResults expected_results;
353 std::vector<base::FilePath> folders;
354 folders.push_back(fake_dir());
355
356 #if defined(OS_WIN)
357 int pruned_dir_key = base::DIR_IE_INTERNET_CACHE;
358 #elif defined(OS_MACOSX)
359 int pruned_dir_key = chrome::DIR_USER_LIBRARY;
360 #else
361 int pruned_dir_key = base::DIR_CACHE;
362 #endif
363
364 base::FilePath fake_pruned_dir = fake_dir().AppendASCII("dir1");
365 base::ScopedPathOverride scoped_fake_pruned_dir_override(pruned_dir_key,
366 fake_pruned_dir);
367
368 CreateTestFile(fake_dir(), MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
369 &expected_results);
370 CreateTestFile(fake_pruned_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
371 &expected_results);
372
373 base::FilePath test_dir = fake_pruned_dir.AppendASCII("dir2");
374 CreateTestFile(test_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
375 &expected_results);
376
377 // |fake_pruned_dir| and |test_dir| are pruned.
378 expected_results.erase(fake_pruned_dir);
379 expected_results.erase(test_dir);
380
381 CreateMediaFolderFinder(folders, true, expected_results);
382 StartScan();
383 RunLoopUntilReceivedCallback();
384 DeleteMediaFolderFinder();
385 }
386
387 TEST_F(MediaFolderFinderTest, Graylist) {
388 MediaFolderFinder::MediaFolderFinderResults expected_results;
389 std::vector<base::FilePath> folders;
390 folders.push_back(fake_dir());
391
392 base::FilePath fake_home_dir = fake_dir().AppendASCII("dir1");
393 base::FilePath test_dir = fake_home_dir.AppendASCII("dir2");
394 base::ScopedPathOverride scoped_fake_home_dir_override(base::DIR_HOME,
395 fake_home_dir);
396
397 CreateTestFile(fake_dir(), MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
398 &expected_results);
399 CreateTestFile(fake_home_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
400 &expected_results);
401 CreateTestFile(test_dir, MEDIA_GALLERY_SCAN_FILE_TYPE_IMAGE, 1, true,
402 &expected_results);
403
404 // |fake_home_dir| and its ancestors do not show up in results.
405 expected_results.erase(fake_dir());
406 expected_results.erase(fake_home_dir);
407
408 CreateMediaFolderFinder(folders, true, expected_results);
409 StartScan();
410 RunLoopUntilReceivedCallback();
411 DeleteMediaFolderFinder();
412 }
OLDNEW
« 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