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

Unified Diff: ui/file_manager/file_manager/foreground/js/import_controller_unittest.js

Issue 1022213002: Add a cancel button to the details panel...visible when import is active. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self review Created 5 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 side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
diff --git a/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js b/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
index b929a952f0e10a58778ad160db4888697f7e43cd..3cd55df7f13233edf2837814e380cccaf6c53f2c 100644
--- a/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
@@ -43,11 +43,6 @@ var MESSAGES = {
loadTimeData.data = MESSAGES;
function setUp() {
- // Stub out metrics support.
- metrics = {
- recordEnum: function() {}
- };
-
new MockChromeStorageAPI();
widget = new importer.TestCommandWidget();
@@ -62,37 +57,24 @@ function setUp() {
mediaImporter = new TestImportRunner();
}
-function testClickToStartImport(callback) {
- var controller = createController(
- VolumeManagerCommon.VolumeType.MTP,
- 'mtp-volume',
- [
- '/DCIM/',
- '/DCIM/photos0/',
- '/DCIM/photos0/IMG00001.jpg',
- '/DCIM/photos0/IMG00002.jpg',
- ],
- '/DCIM');
-
- var fileSystem = new MockFileSystem('testFs');
- // ensure there is some content in the scan so the code that depends
- // on this state doesn't croak which it finds it missing.
- mediaScanner.fileEntries.push(
- new MockFileEntry(fileSystem, '/DCIM/photos0/IMG00001.jpg', {size: 0}));
+function testClickMainToStartImport(callback) {
+ reportPromise(
+ startImport(importer.ClickSource.MAIN),
+ callback);
+}
- // First we need to force the controller into a scanning state.
- environment.directoryChangedListener_(EMPTY_EVENT);
+function testClickPanelToStartImport(callback) {
+ reportPromise(
+ startImport(importer.ClickSource.IMPORT),
+ callback);
+}
- var promise = widget.updateResolver.promise.then(
- function() {
- widget.resetPromises();
- mediaScanner.finalizeScans();
- return widget.updateResolver.promise.then(
- function() {
- widget.resetPromises();
- widget.click(importer.ClickSource.MAIN);
- return mediaImporter.importResolver.promise;
- });
+function testClickCancel(callback) {
+ var promise = startImport(importer.ClickSource.IMPORT)
+ .then(
+ function(task) {
+ widget.click(importer.ClickSource.CANCEL);
+ return task.whenCanceled;
});
reportPromise(promise, callback);
@@ -248,6 +230,21 @@ function testClickDestination_ShowsRootPriorToImport(callback) {
}
function testClickDestination_ShowsDestinationAfterImportStarted(callback) {
+ var promise = startImport(importer.ClickSource.MAIN)
+ .then(
+ function() {
+ return mediaImporter.importResolver.promise.then(
+ function() {
+ widget.click(importer.ClickSource.DESTINATION);
+ return
+ environment.showImportDestinationResolver.promise;
+ });
+ });
+
+ reportPromise(promise, callback);
+}
+
+function startImport(clickSource) {
var controller = createController(
VolumeManagerCommon.VolumeType.MTP,
'mtp-volume',
@@ -268,24 +265,17 @@ function testClickDestination_ShowsDestinationAfterImportStarted(callback) {
// First we need to force the controller into a scanning state.
environment.directoryChangedListener_(EMPTY_EVENT);
- var promise = widget.updateResolver.promise.then(
+ return widget.updateResolver.promise.then(
function() {
widget.resetPromises();
mediaScanner.finalizeScans();
return widget.updateResolver.promise.then(
function() {
widget.resetPromises();
- widget.click(importer.ClickSource.MAIN);
- return mediaImporter.importResolver.promise.then(
- function() {
- widget.click(importer.ClickSource.DESTINATION);
- return
- environment.showImportDestinationResolver.promise;
- });
+ widget.click(clickSource);
+ return mediaImporter.importResolver.promise;
});
});
-
- reportPromise(promise, callback);
}
/**
@@ -312,8 +302,14 @@ function TestImportTask(scan, destination, destinationDirectory) {
/** @private {!importer.Resolver} */
this.finishedResolver_ = new importer.Resolver();
+ /** @private {!importer.Resolver} */
+ this.canceledResolver_ = new importer.Resolver();
+
/** @public {!Promise} */
this.whenFinished = this.finishedResolver_.promise;
+
+ /** @public {!Promise} */
+ this.whenCanceled = this.canceledResolver_.promise;
}
/** @return {!Promise<DirectoryEntry>} */
@@ -321,6 +317,11 @@ TestImportTask.prototype.finish = function() {
this.finishedResolver_.resolve();
};
+/** @return {!Promise<DirectoryEntry>} */
+TestImportTask.prototype.requestCancel = function() {
+ this.canceledResolver_.resolve();
+};
+
/**
* Test import runner.
*
@@ -590,7 +591,8 @@ function createController(volumeType, volumeId, fileNames, currentDirectory) {
environment,
mediaScanner,
mediaImporter,
- widget);
+ widget,
+ new TestTracker());
}
/**

Powered by Google App Engine
This is Rietveld 408576698