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 77069304d0fb01d51022575a7fe987b3876daedd..6eae02e1316760726619addebb2bccbc6bf27fbd 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 |
@@ -58,7 +58,7 @@ function setUp() { |
function testEmptySourceList() { |
assertThrows( |
function() { |
- scanner.scan([]); |
+ scanner.scanFiles([]); |
}); |
} |
@@ -76,7 +76,7 @@ function testIsScanning(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- var results = scanner.scan([root]); |
+ var results = scanner.scanDirectory(root); |
assertFalse(results.isFinal()); |
}), |
callback); |
@@ -99,7 +99,7 @@ function testObserverNotifiedOnScanFinish(callback) { |
// We kick this off first so we can capture the result for |
// use in an assert. Promises ensure the scan won't finish |
// until after our funciton is fully processed. |
- var result = scanner.scan([root]); |
+ var result = scanner.scanDirectory(root); |
scanner.addObserver( |
function(eventType, scanResult) { |
assertEquals(importer.ScanEvent.FINALIZED, eventType); |
@@ -114,6 +114,34 @@ function testObserverNotifiedOnScanFinish(callback) { |
} |
/** |
+ * Verifies that scanFiles slurps up all specified files. |
+ */ |
+function testScanFiles(callback) { |
+ var filenames = [ |
+ 'foo', |
+ 'foo.jpg', |
+ 'bar.gif', |
+ 'baz.avi' |
+ ]; |
+ var expectedFiles = [ |
+ '/testScanFiles/foo.jpg', |
+ '/testScanFiles/bar.gif', |
+ '/testScanFiles/baz.avi' |
+ ]; |
+ reportPromise( |
+ makeTestFileSystemRoot('testScanFiles') |
+ .then(populateDir.bind(null, filenames)) |
+ .then(fileOperationUtil.gatherEntriesRecursively) |
+ .then( |
+ /** @param {!Array<!FileEntry>} files */ |
+ function(files) { |
+ return scanner.scanFiles(files).whenFinal(); |
+ }) |
+ .then(assertResults.bind(null, expectedFiles)), |
+ callback); |
+} |
+ |
+/** |
* Verifies that scanning a simple single-level directory structure works. |
*/ |
function testEmptyScanResults(callback) { |
@@ -130,7 +158,7 @@ function testEmptyScanResults(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- return scanner.scan([root]).whenFinal(); |
+ return scanner.scanDirectory(root).whenFinal(); |
}) |
.then(assertResults.bind(null, [])), |
callback); |
@@ -162,7 +190,7 @@ function testSingleLevel(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- return scanner.scan([root]).whenFinal(); |
+ return scanner.scanDirectory(root).whenFinal(); |
}) |
.then(assertResults.bind(null, expectedFiles)), |
callback); |
@@ -209,7 +237,7 @@ function testIgnoresPreviousImports(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- return scanner.scan([root]).whenFinal(); |
+ return scanner.scanDirectory(root).whenFinal(); |
}) |
.then(assertResults.bind(null, expectedFiles)), |
callback); |
@@ -220,23 +248,23 @@ function testMultiLevel(callback) { |
'foo.jpg', |
'bar', |
[ |
- 'foo.0', |
+ 'dir1', |
'bar.0.jpg' |
], |
[ |
- 'foo.1', |
+ 'dir2', |
'bar.1.gif', |
[ |
- 'foo.1.0', |
+ 'dir3', |
'bar.1.0.avi' |
] |
] |
]; |
var expectedFiles = [ |
'/testMultiLevel/foo.jpg', |
- '/testMultiLevel/foo.0/bar.0.jpg', |
- '/testMultiLevel/foo.1/bar.1.gif', |
- '/testMultiLevel/foo.1/foo.1.0/bar.1.0.avi' |
+ '/testMultiLevel/dir1/bar.0.jpg', |
+ '/testMultiLevel/dir2/bar.1.gif', |
+ '/testMultiLevel/dir2/dir3/bar.1.0.avi' |
]; |
reportPromise( |
@@ -248,53 +276,7 @@ function testMultiLevel(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- return scanner.scan([root]).whenFinal(); |
- }) |
- .then(assertResults.bind(null, expectedFiles)), |
- callback); |
-} |
- |
-function testMultipleDirectories(callback) { |
- var filenames = [ |
- 'foo', |
- 'bar', |
- [ |
- 'foo.0', |
- 'bar.0.jpg' |
- ], |
- [ |
- 'foo.1', |
- 'bar.1.jpg', |
- ] |
- ]; |
- // Expected file paths from the scan. We're scanning the two subdirectories |
- // only. |
- var expectedFiles = [ |
- '/testMultipleDirectories/foo.0/bar.0.jpg', |
- '/testMultipleDirectories/foo.1/bar.1.jpg' |
- ]; |
- |
- var getDirectory = function(root, dirname) { |
- return new Promise(function(resolve, reject) { |
- root.getDirectory( |
- dirname, {create: false}, resolve, reject); |
- }); |
- }; |
- |
- reportPromise( |
- makeTestFileSystemRoot('testMultipleDirectories') |
- .then(populateDir.bind(null, filenames)) |
- .then( |
- /** |
- * Scans the directories. |
- * @param {!DirectoryEntry} root |
- */ |
- function(root) { |
- return Promise.all(['foo.0', 'foo.1'].map( |
- getDirectory.bind(null, root))).then( |
- function(directories) { |
- return scanner.scan(directories).whenFinal(); |
- }); |
+ return scanner.scanDirectory(root).whenFinal(); |
}) |
.then(assertResults.bind(null, expectedFiles)), |
callback); |
@@ -302,47 +284,39 @@ function testMultipleDirectories(callback) { |
function testDedupesFilesInScanResult(callback) { |
var filenames = [ |
+ 'foo.jpg', |
+ 'bar.jpg', |
[ |
- 'a', |
+ 'dir1', |
'foo.jpg', |
'bar.jpg' |
], |
[ |
- 'b', |
+ 'dir2', |
'foo.jpg', |
'bar.jpg', |
- 'wee.jpg' |
+ [ |
+ 'dir3', |
+ 'foo.jpg', |
+ 'bar.jpg' |
+ ] |
] |
]; |
- // Expected file paths from the scan. We're scanning the two subdirectories |
- // only. |
var expectedFiles = [ |
- '/testDedupesFiles/a/foo.jpg', |
- '/testDedupesFiles/a/bar.jpg', |
- '/testDedupesFiles/b/wee.jpg' |
+ '/testDedupesFilesInScanResult/foo.jpg', |
+ '/testDedupesFilesInScanResult/bar.jpg' |
]; |
- var getDirectory = function(root, dirname) { |
- return new Promise(function(resolve, reject) { |
- root.getDirectory( |
- dirname, {create: false}, resolve, reject); |
- }); |
- }; |
- |
reportPromise( |
- makeTestFileSystemRoot('testDedupesFiles') |
+ makeTestFileSystemRoot('testDedupesFilesInScanResult') |
.then(populateDir.bind(null, filenames)) |
.then( |
/** |
- * Scans the directories. |
+ * Scans the directory. |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- return Promise.all(['a', 'b'].map( |
- getDirectory.bind(null, root))).then( |
- function(directories) { |
- return scanner.scan(directories).whenFinal(); |
- }); |
+ return scanner.scanDirectory(root).whenFinal(); |
}) |
.then(assertResults.bind(null, expectedFiles)), |
callback); |
@@ -361,7 +335,7 @@ function testInvalidation(callback) { |
* @param {!DirectoryEntry} root |
*/ |
function(root) { |
- scan = scanner.scan([root]); |
+ scan = scanner.scanDirectory(root); |
watcher.callback(); |
return invalidatePromise; |
}), |