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

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

Issue 835803003: Show suggest apps dialog also in Download. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unused string. Created 5 years, 11 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/file_tasks_unittest.js
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f824d109782e6b47c68db32239abb2b6b2ec968
--- /dev/null
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
@@ -0,0 +1,138 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+window.chrome = {
+ fileManagerPrivate: {
+ getFileTasks: function(entries, callback) {
+ setTimeout(callback.bind(null, [
+ {
+ taskId: 'handler-extension-id|app|any',
+ isDefault: false,
+ isGenericFileHandler: true
+ }
+ ]), 0);
+ },
+ executeTask: function(taskId, urls, onViewFiles) {
+ onViewFiles('failed');
+ }
+ },
+ runtime: {id: 'test-extension-id'}
+};
+
+window.metrics = {
+ recordEnum: function() {}
+};
+
+loadTimeData.data = {
+ NO_ACTION_FOR_EXECUTABLE: 'NO_ACTION_FOR_EXECUTABLE',
+ NO_ACTION_FOR_FILE_URL: 'NO_ACTION_FOR_FILE_URL',
+ NO_ACTION_FOR_DMG: 'NO_ACTION_FOR_DMG',
+ NO_ACTION_FOR_CRX: 'NO_ACTION_FOR_CRX',
+ NO_ACTION_FOR_CRX_TITLE: 'NO_ACTION_FOR_CRX_TITLE'
+};
+
+/**
+ * Returns a mock file manager.
+ * @return {!FileManager}
+ */
+function getMockFileManager() {
+ return {
+ isOnDrive: function() {
+ return false;
+ },
+ volumeManager: {
+ getDriveConnectionState: function() {
+ return VolumeManagerCommon.DriveConnectionType.ONLINE;
+ }
+ },
+ ui: {
+ alertDialog: {
+ showHtml: function(title, text, onOk, onCancel, onShow) {}
+ }
+ },
+ taskController: {
+ openSuggestAppsDialog: function(
+ entry, onSuccess, onCancelled, onFailure) {}
+ }
+ };
+}
+
+/**
+ * Returns a promise which is resolved when showHtml of alert dialog is called
+ * with expected title and text.
+ *
+ * @param {!Array.<!Entry>} entries Entries.
+ * @param {string} expectedTitle An expected title.
+ * @param {string} expectedText An expected text.
+ * @return {!Promise}
+ */
+function showHtmlOfAlertDialogIsCalled(
+ entries, expectedTitle, expectedText) {
+ return new Promise(function(resolve, reject) {
+ var fileManager = getMockFileManager();
+ fileManager.ui.alertDialog.showHtml =
+ function(title, text, onOk, onCancel, onShow) {
+ assertEquals(expectedTitle, title);
+ assertEquals(expectedText, text);
+ resolve();
+ };
+
+ var fileTasks = new FileTasks(fileManager);
+ fileTasks.init(entries).then(function() {
+ fileTasks.executeDefault();
+ });
+ });
+}
+
+/**
+ * Returns a promise which is resolved when openSuggestAppsDialog is called.
+ *
+ * @param {!Array.<!Entry>} entries Entries.
+ * @return {!Promise}
+ */
+function openSuggestAppsDialogIsCalled(entries) {
+ return new Promise(function(resolve, reject) {
+ var fileManager = getMockFileManager();
+ fileManager.taskController.openSuggestAppsDialog =
+ function(entry, onSuccess, onCancelled, onFailure) {
+ resolve();
+ };
+
+ var fileTasks = new FileTasks(fileManager);
+ fileTasks.init(entries).then(function() {
+ fileTasks.executeDefault();
+ });
+ });
+}
+
+function testToOpenExeFile(callback) {
+ var mockFileSystem = new MockFileSystem('volumeId');
+ var mockEntry = new MockFileEntry(mockFileSystem, '/test.exe');
+
+ reportPromise(showHtmlOfAlertDialogIsCalled(
+ [mockEntry], 'test.exe', 'NO_ACTION_FOR_EXECUTABLE'), callback);
+}
+
+function testToOpenDmgFile(callback) {
+ var mockFileSystem = new MockFileSystem('volumeId');
+ var mockEntry = new MockFileEntry(mockFileSystem, '/test.dmg');
+
+ reportPromise(showHtmlOfAlertDialogIsCalled(
+ [mockEntry], 'test.dmg', 'NO_ACTION_FOR_DMG'), callback);
+}
+
+function testToOpenCrxFile(callback) {
+ var mockFileSystem = new MockFileSystem('volumeId');
+ var mockEntry = new MockFileEntry(mockFileSystem, '/test.crx');
+
+ reportPromise(showHtmlOfAlertDialogIsCalled(
+ [mockEntry], 'NO_ACTION_FOR_CRX_TITLE', 'NO_ACTION_FOR_CRX'), callback);
+}
+
+function testToOpenRtfFile(callback) {
+ var mockFileSystem = new MockFileSystem('volumeId');
+ var mockEntry = new MockFileEntry(mockFileSystem, '/test.rtf');
+
+ reportPromise(openSuggestAppsDialogIsCalled([mockEntry]), callback);
+}

Powered by Google App Engine
This is Rietveld 408576698