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

Unified Diff: ui/file_manager/file_manager/background/js/media_scanner_unittest.js

Issue 1174653002: Show progress bar during scanning. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Normalize statics object naming. Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
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 14cd55599852c227f7b2b542b5bfee9e51d7ee68..38527060b12f59c44eb1a861043ceeef975afda9 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
@@ -197,6 +197,39 @@ function testSingleLevel(callback) {
}
/**
+ * Verifies that scanning a simple single-level directory produces 100%
+ * progress at completion.
+ */
+function testProgress(callback) {
+ var filenames = [
+ 'foo',
+ 'foo.jpg',
+ 'bar.gif',
+ 'baz.avi',
+ 'foo.mp3',
+ 'bar.txt'
+ ];
+ var expectedFiles = [
+ '/testProgress/foo.jpg',
+ '/testProgress/bar.gif',
+ '/testProgress/baz.avi'
+ ];
+ reportPromise(
+ makeTestFileSystemRoot('testProgress')
+ .then(populateDir.bind(null, filenames))
+ .then(
+ /**
+ * Scans the directory.
+ * @param {!DirectoryEntry} root
+ */
+ function(root) {
+ return scanner.scanDirectory(root).whenFinal();
+ })
+ .then(assertProgress.bind(null, 100)),
+ callback);
+}
+
+/**
* Verifies that scanning ignores previously imported entries.
*/
function testIgnoresPreviousImports(callback) {
@@ -371,6 +404,29 @@ function testDedupesFilesInScanResult(callback) {
callback);
}
+/**
+ * Verifies that scanning a simple single-level directory structure works.
+ */
+function testDefaultScanResult() {
+ var hashGenerator = function(file) {
+ return file.toURL();
+ };
+ var scan = new importer.DefaultScanResult(hashGenerator);
+
+ // 0 before we set candidate count
+ assertProgress(0, scan);
+
+ scan.setCandidateCount(3);
+ assertProgress(0, scan);
+
+ scan.onCandidatesProcessed(1);
+ assertProgress(33, scan);
+ scan.onCandidatesProcessed(1);
+ assertProgress(66, scan);
+ scan.onCandidatesProcessed(1);
+ assertProgress(100, scan);
+}
+
function testInvalidation(callback) {
var invalidatePromise = new Promise(function(fulfill) {
scanner.addObserver(fulfill);
@@ -393,22 +449,36 @@ function testInvalidation(callback) {
/**
* Verifies the results of the media scan are as expected.
+ * @param {number} expected, 0-100
+ * @param {!importer.ScanResults} scan
+ * @return {!importer.ScanResults}
+ */
+function assertProgress(expected, scan) {
+ assertEquals(expected, scan.getStatistics().progress);
+ return scan;
+}
+
+/**
+ * Verifies the results of the media scan are as expected.
* @param {!Array<string>} expected
- * @param {!importer.ScanResults} results
+ * @param {!importer.ScanResults} scan
+ * @return {!importer.ScanResults}
*/
-function assertFilesFound(expected, results) {
- assertFileEntryPathsEqual(expected, results.getFileEntries());
+function assertFilesFound(expected, scan) {
+ assertFileEntryPathsEqual(expected, scan.getFileEntries());
+ return scan;
// TODO(smckay): Add coverage for getScanDurationMs && getTotalBytes.
}
/**
* Verifies the results of the media scan are as expected.
* @param {!Array<string>} expected
- * @param {!importer.ScanResults} results
+ * @param {!importer.ScanResults} scan
+ * @return {!importer.ScanResults}
*/
-function assertDuplicatesFound(expected, results) {
- assertFileEntryPathsEqual(expected, results.getDuplicateFileEntries());
- // TODO(smckay): Add coverage for getScanDurationMs && getTotalBytes.
+function assertDuplicatesFound(expected, scan) {
+ assertFileEntryPathsEqual(expected, scan.getDuplicateFileEntries());
+ return scan;
}
/**

Powered by Google App Engine
This is Rietveld 408576698