 Chromium Code Reviews
 Chromium Code Reviews Issue 980603003:
  Move content deduplication into the scan process.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 980603003:
  Move content deduplication into the scan process.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: ui/file_manager/file_manager/background/js/media_scanner_unittest.js | 
| diff --git a/ui/file_manager/file_manager/background/js/media_scanner_unittest.js b/ui/file_manager/file_manager/background/js/media_scanner_unittest.js | 
| index 6e1630af77d4610ddd193f42fca3b63d626eaf64..e1098014db6a74c77b563caa31bbd3144800208d 100644 | 
| --- a/ui/file_manager/file_manager/background/js/media_scanner_unittest.js | 
| +++ b/ui/file_manager/file_manager/background/js/media_scanner_unittest.js | 
| @@ -20,16 +20,32 @@ var importHistory; | 
| /** @type {!importer.TestDirectoryWatcher} */ | 
| var watcher; | 
| +/** | 
| + * @type {function(!FileEntry, !importer.Destination): | 
| + * !Promise<!importer.Disposition>} | 
| + */ | 
| +var dispositionChecker; | 
| + | 
| // Set up the test components. | 
| function setUp() { | 
| + | 
| importHistory = new importer.TestImportHistory(); | 
| + // This is the default disposition checker. | 
| 
mtomasz
2015/03/05 04:36:53
nit: This could really fit in two lines and be eas
 
Steve McKay
2015/03/05 21:39:04
Acknowledged.
 | 
| + // Tests can replace this at runtime if they | 
| + // want specialized behaviors. | 
| + dispositionChecker = function() { | 
| + return Promise.resolve(importer.Disposition.ORIGINAL); | 
| + }; | 
| + | 
| scanner = new importer.DefaultMediaScanner( | 
| /** @param {!FileEntry} entry */ | 
| function(entry) { | 
| return Promise.resolve(entry.name); | 
| }, | 
| - importHistory, | 
| + function(entry, destination) { | 
| + return dispositionChecker(entry, destination); | 
| + }, | 
| function(callback) { | 
| watcher = new TestDirectoryWatcher(callback); | 
| return watcher; | 
| @@ -156,15 +172,30 @@ function testSingleLevel(callback) { | 
| * Verifies that scanning ignores previously imported entries. | 
| */ | 
| function testIgnoresPreviousImports(callback) { | 
| + | 
| 
mtomasz
2015/03/05 04:36:53
nit: remove.
 
Steve McKay
2015/03/05 21:39:04
Done.
 | 
| importHistory.importedPaths[ | 
| '/testIgnoresPreviousImports/oldimage1234.jpg'] = | 
| [importer.Destination.GOOGLE_DRIVE]; | 
| var filenames = [ | 
| - 'oldimage1234.jpg', | 
| + 'oldimage1234.jpg', // a history duplicate | 
| + 'driveimage1234.jpg', // a content duplicate | 
| 'foo.jpg', | 
| 'bar.gif', | 
| 'baz.avi' | 
| ]; | 
| + | 
| + // Replace the default dispositionChecker with a function | 
| + // that treats our dupes accordingly. | 
| + dispositionChecker = function(entry, destination) { | 
| + if (entry.name === filenames[0]) { | 
| + return Promise.resolve(importer.Disposition.HISTORY_DUPLICATE); | 
| + } | 
| + if (entry.name === filenames[1]) { | 
| + return Promise.resolve(importer.Disposition.CONTENT_DUPLICATE); | 
| + } | 
| + return Promise.resolve(importer.Disposition.ORIGINAL); | 
| + }; | 
| + | 
| var expectedFiles = [ | 
| '/testIgnoresPreviousImports/foo.jpg', | 
| '/testIgnoresPreviousImports/bar.gif', | 
| @@ -270,7 +301,7 @@ function testMultipleDirectories(callback) { | 
| callback); | 
| } | 
| -function testDedupesFiles(callback) { | 
| +function testDedupesFilesInScanResult(callback) { | 
| var filenames = [ | 
| [ | 
| 'a', |