Commit 4970ab6d authored by Jérémie Boulic's avatar Jérémie Boulic Committed by Chromium LUCI CQ

Files app: Generate JS modules for foreground page

In //ui/file_manager/file_manager/foreground/js/:
- actions_controller.js
- import_controller.js
- import_controller_unittest.js

Conversion of externs:
//ui/file_manager/externs/command_handler_deps.js

Bug: 1133186
Change-Id: I65d231c4c82fe92ac956845ab19b601b1636c8f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2629328
Commit-Queue: Jeremie Boulic <jboulic@chromium.org>
Reviewed-by: default avatarLuciano Pacheco <lucmult@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843881}
parent 57cf1657
......@@ -157,7 +157,7 @@ IN_PROC_BROWSER_TEST_F(CanvasFileManagerJsTest, ImageOrientation) {
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, ImportControllerTest) {
RunTestURL("foreground/js/import_controller_unittest_gen.html");
RunTestURL("foreground/js/import_controller_unittest.m_gen.html");
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, ImporterCommonTest) {
......
......@@ -26,6 +26,34 @@ js_library("background_window.m") {
extra_deps = [ ":modulize" ]
}
js_library("command_handler_deps.m") {
sources =
[ "$root_gen_dir/ui/file_manager/externs/command_handler_deps.m.js" ]
deps = [
":files_app_entry_interfaces.m",
":volume_manager.m",
"background:crostini.m",
"background:file_operation_manager.m",
"background:progress_center.m",
"//ui/file_manager/file_manager/foreground/js:actions_controller.m",
"//ui/file_manager/file_manager/foreground/js:dialog_type.m",
"//ui/file_manager/file_manager/foreground/js:directory_contents.m",
"//ui/file_manager/file_manager/foreground/js:directory_model.m",
"//ui/file_manager/file_manager/foreground/js:directory_tree_naming_controller.m",
"//ui/file_manager/file_manager/foreground/js:file_selection.m",
"//ui/file_manager/file_manager/foreground/js:file_transfer_controller.m",
"//ui/file_manager/file_manager/foreground/js:naming_controller.m",
"//ui/file_manager/file_manager/foreground/js:providers_model.m",
"//ui/file_manager/file_manager/foreground/js:spinner_controller.m",
"//ui/file_manager/file_manager/foreground/js:task_controller.m",
"//ui/file_manager/file_manager/foreground/js/metadata:metadata_model.m",
"//ui/file_manager/file_manager/foreground/js/ui:directory_tree.m",
"//ui/file_manager/file_manager/foreground/js/ui:file_manager_ui.m",
]
extra_deps = [ ":modulize" ]
}
js_library("entries_changed_event.m") {
sources =
[ "$root_gen_dir/ui/file_manager/externs/entries_changed_event.m.js" ]
......@@ -131,6 +159,7 @@ js_library("volume_info_list.m") {
js_modulizer("modulize") {
input_files = [
"background_window.js",
"command_handler_deps.js",
"entries_changed_event.js",
"entry_location.js",
"exif_entry.js",
......
......@@ -2,11 +2,34 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {ActionsController} from '../file_manager/foreground/js/actions_controller.m.js';
// #import {FilesAppEntry} from './files_app_entry_interfaces.m.js';
// #import {Crostini} from './background/crostini.m.js';
// #import {MetadataModel} from '../file_manager/foreground/js/metadata/metadata_model.m.js';
// #import {VolumeManager} from './volume_manager.m.js';
// #import {FileManagerUI} from '../file_manager/foreground/js/ui/file_manager_ui.m.js';
// #import {TaskController} from '../file_manager/foreground/js/task_controller.m.js';
// #import {SpinnerController} from '../file_manager/foreground/js/spinner_controller.m.js';
// #import {ProvidersModel} from '../file_manager/foreground/js/providers_model.m.js';
// #import {ProgressCenter} from './background/progress_center.m.js';
// #import {NamingController} from '../file_manager/foreground/js/naming_controller.m.js';
// #import {FileSelectionHandler, FileSelection} from '../file_manager/foreground/js/file_selection.m.js';
// #import {FileTransferController} from '../file_manager/foreground/js/file_transfer_controller.m.js';
// #import {FileOperationManager} from './background/file_operation_manager.m.js';
// #import {FileFilter} from '../file_manager/foreground/js/directory_contents.m.js';
// #import {DirectoryTreeNamingController} from '../file_manager/foreground/js/directory_tree_naming_controller.m.js';
// #import {DirectoryTree} from '../file_manager/foreground/js/ui/directory_tree.m.js';
// #import {DirectoryModel} from '../file_manager/foreground/js/directory_model.m.js';
// #import {DialogType} from '../file_manager/foreground/js/dialog_type.m.js';
// clang-format on
/**
* Interface on which |CommandHandler| depends.
* @interface
*/
class CommandHandlerDeps {
/* #export */ class CommandHandlerDeps {
constructor() {
/** @type {ActionsController} */
this.actionsController;
......
......@@ -853,6 +853,9 @@ js_library("mock_media_scanner.m") {
"//ui/file_manager/externs/background:media_scanner.m",
"//ui/file_manager/file_manager/common/js:importer_common.m",
]
visibility += [
"//ui/file_manager/file_manager/foreground/js:import_controller_unittest.m",
]
extra_deps = [ ":modulize" ]
}
......@@ -874,6 +877,9 @@ js_library("media_scanner.m") {
"//ui/file_manager/file_manager/common/js:importer_common.m",
"//ui/webui/resources/js:assert.m",
]
visibility += [
"//ui/file_manager/file_manager/foreground/js:import_controller_unittest.m",
]
extra_deps = [ ":modulize" ]
}
......
......@@ -9,6 +9,7 @@ import("//ui/webui/resources/js/cr.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
visibility = [
"//ui/file_manager/externs/*",
"//ui/file_manager/file_manager/foreground/*",
"//ui/file_manager/file_manager/test/*",
]
......@@ -28,6 +29,7 @@ group("closure_compile") {
js_type_check("closure_compile_jsmodules") {
is_polymer3 = true
deps = [
":actions_controller.m",
":actions_model.m",
":android_app_list_model.m",
":constants.m",
......@@ -48,6 +50,7 @@ js_type_check("closure_compile_jsmodules") {
":file_watcher.m",
":folder_shortcuts_data_model.m",
":holding_space_util.m",
":import_controller.m",
":last_modified_controller.m",
":launch_param.m",
":list_thumbnail_loader.m",
......@@ -188,6 +191,23 @@ js_library("actions_controller") {
]
}
js_library("actions_controller.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/actions_controller.m.js" ]
deps = [
":actions_model.m",
":directory_model.m",
":file_selection.m",
":folder_shortcuts_data_model.m",
"metadata:metadata_model.m",
"ui:file_manager_ui.m",
"//ui/file_manager/externs:volume_manager.m",
"//ui/file_manager/externs/background:drive_sync_handler.m",
"//ui/webui/resources/js/cr/ui:context_menu_handler.m",
]
extra_deps = [ ":modulize" ]
}
js_library("actions_model") {
deps = [
":folder_shortcuts_data_model",
......@@ -1044,14 +1064,43 @@ js_library("import_controller") {
]
}
js_unittest("import_controller_unittest") {
js_library("import_controller.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/import_controller.m.js" ]
deps = [
":import_controller",
"//ui/file_manager/base/js:mock_chrome",
"//ui/file_manager/base/js:test_error_reporting",
"//ui/file_manager/file_manager/background/js:mock_media_scanner",
"//ui/file_manager/file_manager/background/js:mock_volume_manager",
"//ui/file_manager/file_manager/common/js:test_importer_common",
":file_selection.m",
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:command_handler_deps.m",
"//ui/file_manager/externs:files_app_entry_interfaces.m",
"//ui/file_manager/externs:volume_info.m",
"//ui/file_manager/externs:volume_manager.m",
"//ui/file_manager/externs/background:media_import_handler.m",
"//ui/file_manager/externs/background:media_scanner.m",
"//ui/file_manager/file_manager/common/js:importer_common.m",
"//ui/file_manager/file_manager/common/js:metrics.m",
"//ui/file_manager/file_manager/common/js:util.m",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:cr.m",
"//ui/webui/resources/js:util.m",
]
extra_deps = [ ":modulize" ]
}
js_unittest("import_controller_unittest.m") {
deps = [
":import_controller.m",
"//chrome/test/data/webui:chai_assert",
"//ui/file_manager/base/js:mock_chrome.m",
"//ui/file_manager/base/js:test_error_reporting.m",
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:volume_info.m",
"//ui/file_manager/externs:volume_manager.m",
"//ui/file_manager/externs/background:media_import_handler.m",
"//ui/file_manager/externs/background:media_scanner.m",
"//ui/file_manager/file_manager/background/js:mock_media_scanner.m",
"//ui/file_manager/file_manager/background/js:mock_volume_manager.m",
"//ui/file_manager/file_manager/common/js:mock_entry.m",
"//ui/webui/resources/js:assert.m",
]
}
......@@ -1621,6 +1670,7 @@ js_test_gen_html("js_test_gen_html_modules") {
":file_tasks_unittest.m",
":file_transfer_controller_unittest.m",
":file_type_filters_controller_unittest.m",
":import_controller_unittest.m",
":list_thumbnail_loader_unittest.m",
":navigation_list_model_unittest.m",
":providers_model_unittest.m",
......@@ -1641,15 +1691,13 @@ js_test_gen_html("js_test_gen_html_modules") {
}
js_test_gen_html("js_test_gen_html") {
deps = [
":file_manager_commands_unittest",
":import_controller_unittest",
]
deps = [ ":file_manager_commands_unittest" ]
mocks = [ "$externs_path/file_manager_private.js" ]
}
js_modulizer("modulize") {
input_files = [
"actions_controller.js",
"actions_model.js",
"android_app_list_model.js",
"constants.js",
......@@ -1664,11 +1712,13 @@ js_modulizer("modulize") {
"fake_file_selection_handler.js",
"file_list_model.js",
"file_selection.js",
"file_tasks.js",
"file_transfer_controller.js",
"file_type_filters_controller.js",
"file_watcher.js",
"folder_shortcuts_data_model.js",
"holding_space_util.js",
"import_controller.js",
"last_modified_controller.js",
"launch_param.js",
"list_thumbnail_loader.js",
......@@ -1685,16 +1735,15 @@ js_modulizer("modulize") {
"path_component.js",
"providers_model.js",
"quick_view_model.js",
"selection_menu_controller.js",
"sort_menu_controller.js",
"spinner_controller.js",
"task_controller.js",
"task_history.js",
"toolbar_controller.js",
"thumbnail_loader.js",
"web_store_utils.js",
"webui_command_extender.js",
"sort_menu_controller.js",
"selection_menu_controller.js",
"file_tasks.js",
"task_controller.js",
"toolbar_controller.js",
]
namespace_rewrites = cr_namespace_rewrites + [
......
......@@ -2,10 +2,23 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {FileManagerUI} from './ui/file_manager_ui.m.js';
// #import {DriveSyncHandler} from '../../../externs/background/drive_sync_handler.m.js';
// #import {FolderShortcutsDataModel} from './folder_shortcuts_data_model.m.js';
// #import {DirectoryModel} from './directory_model.m.js';
// #import {MetadataModel} from './metadata/metadata_model.m.js';
// #import {VolumeManager} from '../../../externs/volume_manager.m.js';
// #import {Action, ActionsModel} from './actions_model.m.js';
// #import {contextMenuHandler} from 'chrome://resources/js/cr/ui/context_menu_handler.m.js';
// clang-format on
// #import {FileSelectionHandler} from './file_selection.m.js';
/**
* Manages actions for the current selection.
*/
class ActionsController {
/* #export */ class ActionsController {
/**
* @param {!VolumeManager} volumeManager
* @param {!MetadataModel} metadataModel
......
......@@ -2,9 +2,32 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview
* @suppress {uselessCode} Temporary suppress because of the line exporting.
*/
// clang-format off
// #import {importer} from '../../common/js/importer_common.m.js';
// #import {CommandHandlerDeps} from '../../../externs/command_handler_deps.m.js';
// #import {VolumeInfo} from '../../../externs/volume_info.m.js';
// #import {FilesAppEntry} from '../../../externs/files_app_entry_interfaces.m.js';
// #import {VolumeManager} from '../../../externs/volume_manager.m.js';
// #import {mediaImportInterfaces} from '../../../externs/background/media_import_handler.m.js';
// #import {mediaScannerInterfaces} from '../../../externs/background/media_scanner.m.js';
// #import {FileSelectionHandler} from './file_selection.m.js';
// #import {util, strf, str} from '../../common/js/util.m.js';
// #import {queryRequiredElement, getRequiredElement} from 'chrome://resources/js/util.m.js';
// #import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
// #import {dispatchSimpleEvent} from 'chrome://resources/js/cr.m.js';
// #import {metrics} from '../../common/js/metrics.m.js';
// #import {assert, assertNotReached} from 'chrome://resources/js/assert.m.js';
// clang-format on
// Namespace
// eslint-disable-next-line
var importer = importer || {};
/* #ignore */ var importer = importer || {};
/** @private @enum {string} */
importer.ActivityState = {
......@@ -1302,3 +1325,6 @@ importer.RuntimeControllerEnvironment = class {
.catch(importer.getLogger().catcher('import-destination-reveal'));
}
};
// eslint-disable-next-line semi,no-extra-semi
/* #export */ {importer};
......@@ -2,6 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assert} from 'chrome://resources/js/assert.m.js';
import {assertFalse, assertTrue} from 'chrome://test/chai_assert.js';
import {MockChromeStorageAPI, MockCommandLinePrivate} from '../../../base/js/mock_chrome.m.js';
import {reportPromise} from '../../../base/js/test_error_reporting.m.js';
import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
import {mediaImportInterfaces} from '../../../externs/background/media_import_handler.m.js';
import {mediaScannerInterfaces} from '../../../externs/background/media_scanner.m.js';
import {VolumeInfo} from '../../../externs/volume_info.m.js';
import {VolumeManager} from '../../../externs/volume_manager.m.js';
import {TestMediaScanner} from '../../background/js/mock_media_scanner.m.js';
import {MockVolumeManager} from '../../background/js/mock_volume_manager.m.js';
import {MockDirectoryEntry, MockFileEntry, MockFileSystem} from '../../common/js/mock_entry.m.js';
import {importer} from './import_controller.m.js';
/** @const {!Event} */
const EMPTY_EVENT = new Event('directory-changed');
......@@ -41,7 +55,7 @@ window.metrics = {
};
// Set up the test components.
function setUp() {
export function setUp() {
window.loadTimeData.getString = id => id;
window.loadTimeData.data = {};
......@@ -65,15 +79,15 @@ function setUp() {
mediaImporter = new TestImportRunner();
}
function testClickMainToStartImport(callback) {
export function testClickMainToStartImport(callback) {
reportPromise(startImport(importer.ClickSource.MAIN), callback);
}
function testClickPanelToStartImport(callback) {
export function testClickPanelToStartImport(callback) {
reportPromise(startImport(importer.ClickSource.IMPORT), callback);
}
function testClickCancel(callback) {
export function testClickCancel(callback) {
const promise = startImport(importer.ClickSource.IMPORT).then(task => {
widget.click(importer.ClickSource.CANCEL);
return task.whenCanceled;
......@@ -82,7 +96,7 @@ function testClickCancel(callback) {
reportPromise(promise, callback);
}
function testVolumeUnmount_InvalidatesScans(callback) {
export function testVolumeUnmount_InvalidatesScans(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -122,7 +136,7 @@ function testVolumeUnmount_InvalidatesScans(callback) {
reportPromise(promise, callback);
}
function testDirectoryChange_TriggersUpdate(callback) {
export function testDirectoryChange_TriggersUpdate(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -136,7 +150,7 @@ function testDirectoryChange_TriggersUpdate(callback) {
reportPromise(widget.updateResolver.promise, callback);
}
function testDirectoryChange_CancelsScan(callback) {
export function testDirectoryChange_CancelsScan(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -167,7 +181,7 @@ function testDirectoryChange_CancelsScan(callback) {
reportPromise(promise, callback);
}
function testWindowClose_CancelsScan(callback) {
export function testWindowClose_CancelsScan(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -197,7 +211,8 @@ function testWindowClose_CancelsScan(callback) {
reportPromise(promise, callback);
}
function testDirectoryChange_DetailsPanelVisibility_InitialChangeDir(callback) {
export function testDirectoryChange_DetailsPanelVisibility_InitialChangeDir(
callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -237,7 +252,8 @@ function testDirectoryChange_DetailsPanelVisibility_InitialChangeDir(callback) {
reportPromise(promise, callback);
}
function testDirectoryChange_DetailsPanelVisibility_SubsequentChangeDir() {
export function
testDirectoryChange_DetailsPanelVisibility_SubsequentChangeDir() {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -258,7 +274,7 @@ function testDirectoryChange_DetailsPanelVisibility_SubsequentChangeDir() {
assertFalse(widget.detailsVisible);
}
function testSelectionChange_TriggersUpdate(callback) {
export function testSelectionChange_TriggersUpdate(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -280,7 +296,7 @@ function testSelectionChange_TriggersUpdate(callback) {
reportPromise(widget.updateResolver.promise, callback);
}
function testFinalizeScans_TriggersUpdate(callback) {
export function testFinalizeScans_TriggersUpdate(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -304,7 +320,7 @@ function testFinalizeScans_TriggersUpdate(callback) {
reportPromise(widget.updateResolver.promise, callback);
}
function testClickDestination_ShowsRootPriorToImport(callback) {
export function testClickDestination_ShowsRootPriorToImport(callback) {
const controller = createController(
VolumeManagerCommon.VolumeType.MTP, 'mtp-volume',
[
......@@ -319,7 +335,8 @@ function testClickDestination_ShowsRootPriorToImport(callback) {
reportPromise(environment.showImportRootResolver.promise, callback);
}
function testClickDestination_ShowsDestinationAfterImportStarted(callback) {
export function testClickDestination_ShowsDestinationAfterImportStarted(
callback) {
const promise = startImport(importer.ClickSource.MAIN).then(() => {
return mediaImporter.importResolver.promise.then(() => {
widget.click(importer.ClickSource.DESTINATION);
......
......@@ -375,6 +375,7 @@ js_library("directory_tree.m") {
"//ui/webui/resources/js/cr/ui:menu.m",
"//ui/webui/resources/js/cr/ui:tree.m",
]
visibility += [ "//ui/file_manager/externs:command_handler_deps.m" ]
extra_deps = [ ":modulize" ]
}
......@@ -618,6 +619,7 @@ js_library("file_manager_ui.m") {
"//ui/webui/resources/js/cr/ui:menu_item.m",
"//ui/webui/resources/js/cr/ui:splitter.m",
]
visibility += [ "//ui/file_manager/externs:command_handler_deps.m" ]
extra_deps = [ ":modulize" ]
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment