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

Unified Diff: chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js

Issue 762593006: Prototype implementation of MediaImportHandler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync to master. Created 6 years 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: chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js
diff --git a/chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js b/chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js
index 6d34d7daabe74af1853ff06c9465ccaf24320476..17605c6b2cf81cb436428f40fef66cd7d61dc1d5 100644
--- a/chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js
+++ b/chrome/test/data/file_manager/unit_tests/mocks/mock_file_operation_manager.js
@@ -7,6 +7,7 @@
/**
* Mock class of FileOperationManager.
* @constructor
+ * @extends {cr.EventTarget}
*/
function MockFileOperationManager() {
cr.EventTarget.call(this);
@@ -16,6 +17,12 @@ function MockFileOperationManager() {
* @type {Event}
*/
this.cancelEvent = null;
+
+ /** @type {!Array<string>} */
+ this.generatedTaskIds = [];
+
+ /** @type {Function} */
+ this.pasteResolver = null;
}
MockFileOperationManager.prototype = {
@@ -28,3 +35,59 @@ MockFileOperationManager.prototype = {
MockFileOperationManager.prototype.requestTaskCancel = function() {
this.dispatchEvent(this.cancelEvent);
};
+
+/**
+ * @param {!Array<!Entry>} sourceEntries Entries of the source files.
+ * @param {!DirectoryEntry} targetEntry The destination entry of the target
+ * directory.
+ * @param {boolean} isMove True if the operation is "move", otherwise (i.e.
+ * if the operation is "copy") false.
+ * @param {string=} opt_taskId If the corresponding item has already created
+ * at another places, we need to specify the ID of the item. If the
+ * item is not created, FileOperationManager generates new ID.
+ */
+MockFileOperationManager.prototype.paste = function(
+ sourceEntries, targetEntry, isMove, opt_taskId) {
+ if (this.pasteResolver) {
+ this.pasteResolver.call(this, {
+ sourceEntries: sourceEntries,
+ targetEntry: targetEntry,
+ isMove: isMove,
+ opt_taskId: opt_taskId
+ });
+ // Reset the resolver for the next paste call.
+ this.pasteResolver = null;
+ }
+};
+
+/**
+ * @return {Promise<Object>} A promise that is resolved the next time #paste is
+ * called. The Object contains the arguments that #paste was called with.
+ */
+MockFileOperationManager.prototype.whenPasteCalled = function() {
+ if (this.pasteResolver) {
+ throw new Error('Only one paste call can be waited on at a time.');
+ }
+
+ return new Promise(function(resolve, reject) {
+ this.pasteResolver = resolve;
+ }.bind(this));
+};
+
+/**
+ * Generates a unique task Id.
+ * @return {string}
+ */
+MockFileOperationManager.prototype.generateTaskId = function() {
+ var newTaskId = 'task' + this.generatedTaskIds.length;
+ this.generatedTaskIds.push(newTaskId);
+ return newTaskId;
+};
+
+/**
+ * @return {boolean} Whether or not the given task ID belongs to a task
+ * generated by this manager.
+ */
+MockFileOperationManager.prototype.isKnownTaskId = function(id) {
+ return this.generatedTaskIds.indexOf(id) !== -1;
+};

Powered by Google App Engine
This is Rietveld 408576698