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

Files app: Generate more JS modules in //u/f/f/f/j/

In //ui/file_manager/file_manager/foreground/js/:
- fake_file_selection_handler.js
- file_selection.js
- file_transfer_controller.js
- file_transfer_controller_unittest.m.js
- holding_space_util.js
- path_component.js

Bug: 1133186
Change-Id: I410a81add17eeb9a3f4e8d85258bf202f15e42f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2622132
Commit-Queue: Jeremie Boulic <jboulic@chromium.org>
Reviewed-by: default avatarLuciano Pacheco <lucmult@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842896}
parent 2eecbe2b
......@@ -141,7 +141,7 @@ IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileTasks) {
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileTransferController) {
RunTestURL("foreground/js/file_transfer_controller_unittest_gen.html");
RunTestURL("foreground/js/file_transfer_controller_unittest.m_gen.html");
}
IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileTypeFiltersController) {
......
......@@ -39,10 +39,14 @@ js_type_check("closure_compile_jsmodules") {
":drop_effect_and_label.m",
":empty_folder_controller.m",
":fake_android_app_list_model.m",
":fake_file_selection_handler.m",
":file_list_model.m",
":file_selection.m",
":file_transfer_controller.m",
":file_type_filters_controller.m",
":file_watcher.m",
":folder_shortcuts_data_model.m",
":holding_space_util.m",
":launch_param.m",
":list_thumbnail_loader.m",
":mock_directory_model.m",
......@@ -51,6 +55,7 @@ js_type_check("closure_compile_jsmodules") {
":mock_thumbnail_loader.m",
":navigation_list_model.m",
":navigation_uma.m",
":path_component.m",
":providers_model.m",
":spinner_controller.m",
":thumbnail_loader.m",
......@@ -231,6 +236,16 @@ js_library("fake_file_selection_handler") {
]
}
js_library("fake_file_selection_handler.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/fake_file_selection_handler.m.js" ]
deps = [
":file_selection.m",
"//ui/webui/resources/js/cr:event_target.m",
]
extra_deps = [ ":modulize" ]
}
js_unittest("actions_model_unittest.m") {
deps = [
":actions_model.m",
......@@ -709,6 +724,26 @@ js_library("file_selection") {
]
}
js_library("file_selection.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/file_selection.m.js" ]
deps = [
":constants.m",
":directory_model.m",
"metadata:metadata_model.m",
"ui:list_container.m",
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:volume_manager.m",
"//ui/file_manager/externs/background:file_operation_manager.m",
"//ui/file_manager/file_manager/common/js:file_type.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/cr:event_target.m",
]
extra_deps = [ ":modulize" ]
}
js_library("file_tasks") {
deps = [
":directory_model",
......@@ -754,15 +789,66 @@ js_library("file_transfer_controller") {
externs_list = [ "//ui/file_manager/externs/background/progress_center.js" ]
}
js_unittest("file_transfer_controller_unittest") {
js_library("file_transfer_controller.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/file_transfer_controller.m.js" ]
deps = [
":fake_file_selection_handler",
":file_transfer_controller",
"//ui/file_manager/base/js:mock_chrome",
"//ui/file_manager/file_manager/background/js:mock_volume_manager",
"//ui/file_manager/file_manager/foreground/js:mock_directory_model",
"//ui/file_manager/file_manager/foreground/js/metadata:mock_metadata",
"//ui/webui/resources/js:webui_resource_test",
":directory_model.m",
":drop_effect_and_label.m",
":file_selection.m",
":thumbnail_loader.m",
"metadata:metadata_model.m",
"metadata:thumbnail_model.m",
"ui:directory_tree.m",
"ui:drag_selector.m",
"ui:list_container.m",
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:entry_location.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:file_operation_manager.m",
"//ui/file_manager/externs/background:progress_center.m",
"//ui/file_manager/file_manager/common/js:file_type.m",
"//ui/file_manager/file_manager/common/js:progress_center_common.m",
"//ui/file_manager/file_manager/common/js:util.m",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:util.m",
"//ui/webui/resources/js/cr/ui:command.m",
"//ui/webui/resources/js/cr/ui:list.m",
"//ui/webui/resources/js/cr/ui:tree.m",
]
extra_deps = [ ":modulize" ]
}
js_unittest("file_transfer_controller_unittest.m") {
deps = [
":dialog_type.m",
":fake_file_selection_handler.m",
":file_list_model.m",
":file_selection.m",
":file_transfer_controller.m",
":mock_directory_model.m",
"metadata:mock_metadata.m",
"metadata:thumbnail_model.m",
"ui:a11y_announce.m",
"ui:directory_tree.m",
"ui:file_grid.m",
"ui:file_table.m",
"ui:list_container.m",
"//chrome/test/data/webui:chai_assert",
"//ui/file_manager/base/js:mock_chrome.m",
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:volume_manager.m",
"//ui/file_manager/externs/background:file_operation_manager.m",
"//ui/file_manager/externs/background:import_history.m",
"//ui/file_manager/externs/background:progress_center.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:util.m",
"//ui/webui/resources/js/cr:ui.m",
"//ui/webui/resources/js/cr/ui:command.m",
"//ui/webui/resources/js/cr/ui:list_selection_model.m",
]
}
......@@ -862,6 +948,17 @@ js_library("holding_space_util") {
]
}
js_library("holding_space_util.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/holding_space_util.m.js" ]
deps = [
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/file_manager/common/js:metrics.m",
"//ui/webui/resources/js:load_time_data.m",
]
extra_deps = [ ":modulize" ]
}
js_library("import_controller") {
deps = [
":actions_controller",
......@@ -1084,6 +1181,17 @@ js_library("path_component") {
deps = [ "//ui/file_manager/base/js:volume_manager_types" ]
}
js_library("path_component.m") {
sources = [ "$root_gen_dir/ui/file_manager/file_manager/foreground/js/path_component.m.js" ]
deps = [
"//ui/file_manager/base/js:volume_manager_types.m",
"//ui/file_manager/externs:files_app_entry_interfaces.m",
"//ui/file_manager/file_manager/common/js:util.m",
]
extra_deps = [ ":modulize" ]
}
js_library("providers_model") {
deps = [ "//ui/webui/resources/js:assert" ]
}
......@@ -1292,6 +1400,7 @@ js_test_gen_html("js_test_gen_html_modules") {
":actions_model_unittest.m",
":directory_contents_unittest.m",
":file_list_model_unittest.m",
":file_transfer_controller_unittest.m",
":file_type_filters_controller_unittest.m",
":list_thumbnail_loader_unittest.m",
":navigation_list_model_unittest.m",
......@@ -1305,6 +1414,7 @@ js_test_gen_html("js_test_gen_html_modules") {
strict_error_checking_closure_args + [
"js_module_root=./gen/ui",
"js_module_root=../../ui",
"jscomp_off=duplicate",
"browser_resolver_prefix_replacements=\"chrome://test/=./\"",
"hide_warnings_for=third_party/",
]
......@@ -1314,7 +1424,6 @@ js_test_gen_html("js_test_gen_html") {
deps = [
":file_manager_commands_unittest",
":file_tasks_unittest",
":file_transfer_controller_unittest",
":import_controller_unittest",
":task_controller_unittest",
]
......@@ -1334,14 +1443,21 @@ js_modulizer("modulize") {
"drop_effect_and_label.js",
"empty_folder_controller.js",
"fake_android_app_list_model.js",
"fake_file_selection_handler.js",
"file_list_model.js",
"file_selection.js",
"file_transfer_controller.js",
"file_watcher.js",
"folder_shortcuts_data_model.js",
"holding_space_util.js",
"launch_param.js",
"list_thumbnail_loader.js",
"mock_directory_model.js",
"mock_folder_shortcut_data_model.js",
"mock_navigation_list_model.js",
"mock_thumbnail_loader.js",
"navigation_list_model.js",
"path_component.js",
"providers_model.js",
"thumbnail_loader.js",
"web_store_utils.js",
......@@ -1350,9 +1466,8 @@ js_modulizer("modulize") {
"metrics_start.js",
"mock_actions_model.js",
"spinner_controller.js",
"list_thumbnail_loader.js",
"mock_thumbnail_loader.js",
]
namespace_rewrites = cr_namespace_rewrites
namespace_rewrites =
cr_namespace_rewrites + [ "cr.ui.FilesMenuItem|FilesMenuItem" ]
}
......@@ -2,11 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {FileSelectionHandler, FileSelection} from './file_selection.m.js';
// #import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
// clang-format on
/**
* Mock FileSelectionHandler.
* @extends {FileSelectionHandler}
*/
class FakeFileSelectionHandler {
/* #export */ class FakeFileSelectionHandler {
constructor() {
this.selection = /** @type {!FileSelection} */ ({});
this.updateSelection([], []);
......
......@@ -2,10 +2,25 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {MetadataModel} from './metadata/metadata_model.m.js';
// #import {ListContainer} from './ui/list_container.m.js';
// #import {FileOperationManager} from '../../../externs/background/file_operation_manager.m.js';
// #import {DirectoryModel} from './directory_model.m.js';
// #import {VolumeManager} from '../../../externs/volume_manager.m.js';
// #import {AllowedPaths} from '../../../base/js/volume_manager_types.m.js';
// #import {util} from '../../common/js/util.m.js';
// #import {constants} from './constants.m.js';
// #import {FileType} from '../../common/js/file_type.m.js';
// #import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
// #import {dispatchSimpleEvent} from 'chrome://resources/js/cr.m.js';
// #import {assert} from 'chrome://resources/js/assert.m.js';
// clang-format on
/**
* The current selection object.
*/
class FileSelection {
/* #export */ class FileSelection {
/**
* @param {!Array<number>} indexes
* @param {!Array<Entry>} entries
......@@ -131,7 +146,7 @@ class FileSelection {
/**
* This object encapsulates everything related to current selection.
*/
class FileSelectionHandler extends cr.EventTarget {
/* #export */ class FileSelectionHandler extends cr.EventTarget {
/**
* @param {!DirectoryModel} directoryModel
* @param {!FileOperationManager} fileOperationManager
......
......@@ -2,6 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {EntryLocation} from '../../../externs/entry_location.m.js';
// #import {VolumeInfo} from '../../../externs/volume_info.m.js';
// #import {List} from 'chrome://resources/js/cr/ui/list.m.js';
// #import {FilesAppDirEntry, FakeEntry, FilesAppEntry} from '../../../externs/files_app_entry_interfaces.m.js';
// #import {Command} from 'chrome://resources/js/cr/ui/command.m.js';
// #import {VolumeManager} from '../../../externs/volume_manager.m.js';
// #import {DirectoryModel} from './directory_model.m.js';
// #import {ThumbnailModel} from './metadata/thumbnail_model.m.js';
// #import {MetadataModel} from './metadata/metadata_model.m.js';
// #import {FileOperationManager} from '../../../externs/background/file_operation_manager.m.js';
// #import {ProgressCenter} from '../../../externs/background/progress_center.m.js';
// #import {ListContainer} from './ui/list_container.m.js';
// #import {DropEffectAndLabel, DropEffectType} from './drop_effect_and_label.m.js';
// #import {FileSelectionHandler} from './file_selection.m.js';
// #import {DragSelector} from './ui/drag_selector.m.js';
// #import {assert, assertNotReached} from 'chrome://resources/js/assert.m.js';
// #import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
// #import {DirectoryItem, DirectoryTree} from './ui/directory_tree.m.js';
// #import {TreeItem} from 'chrome://resources/js/cr/ui/tree.m.js';
// #import {ThumbnailLoader} from './thumbnail_loader.m.js';
// #import {ProgressCenterItem, ProgressItemType, ProgressItemState} from '../../common/js/progress_center_common.m.js';
// #import {FileType} from '../../common/js/file_type.m.js';
// #import {util, strf} from '../../common/js/util.m.js';
// #import {queryRequiredElement} from 'chrome://resources/js/util.m.js';
// clang-format on
/**
* Global (placed in the window object) variable name to hold internal
* file dragging information. Needed to show visual feedback while dragging
......@@ -15,7 +42,7 @@ const DRAG_AND_DROP_GLOBAL_DATA = '__drag_and_drop_global_data';
*/
let FileAsyncData;
class FileTransferController {
/* #export */ class FileTransferController {
/**
* @param {!Document} doc Owning document.
* @param {!ListContainer} listContainer List container.
......
......@@ -2,6 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {decorate} from 'chrome://resources/js/cr/ui.m.js';
import {Command} from 'chrome://resources/js/cr/ui/command.m.js';
import {ListSelectionModel} from 'chrome://resources/js/cr/ui/list_selection_model.m.js';
import {queryRequiredElement} from 'chrome://resources/js/util.m.js';
import {assertEquals, assertFalse, assertTrue} from 'chrome://test/chai_assert.js';
import {installMockChrome} from '../../../base/js/mock_chrome.m.js';
import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
import {FileOperationManager} from '../../../externs/background/file_operation_manager.m.js';
import {importerHistoryInterfaces} from '../../../externs/background/import_history.m.js';
import {ProgressCenter} from '../../../externs/background/progress_center.m.js';
import {VolumeManager} from '../../../externs/volume_manager.m.js';
import {MockVolumeManager} from '../../background/js/mock_volume_manager.m.js';
import {MockDirectoryEntry, MockFileEntry, MockFileSystem} from '../../common/js/mock_entry.m.js';
import {DialogType} from './dialog_type.m.js';
import {FakeFileSelectionHandler} from './fake_file_selection_handler.m.js';
import {FileListModel} from './file_list_model.m.js';
import {FileSelectionHandler} from './file_selection.m.js';
import {FileTransferController} from './file_transfer_controller.m.js';
import {MockMetadataModel} from './metadata/mock_metadata.m.js';
import {ThumbnailModel} from './metadata/thumbnail_model.m.js';
import {createFakeDirectoryModel} from './mock_directory_model.m.js';
import {A11yAnnounce} from './ui/a11y_announce.m.js';
import {DirectoryTree} from './ui/directory_tree.m.js';
import {FileGrid} from './ui/file_grid.m.js';
import {FileTable} from './ui/file_table.m.js';
import {ListContainer} from './ui/list_container.m.js';
/** @type {!ListContainer} */
let listContainer;
......@@ -22,7 +49,7 @@ let volumeManager;
*/
let mockChrome;
function setUp() {
export function setUp() {
// Setup page DOM.
document.body.innerHTML = [
'<style>',
......@@ -74,8 +101,8 @@ function setUp() {
};
installMockChrome(mockChrome);
// Initialize cr.ui.Command with the <command>s.
cr.ui.decorate('command', cr.ui.Command);
// Initialize Command with the <command>s.
decorate('command', Command);
// Fake confirmation callback.
const confirmationDialog = (isMove, messages) => Promise.resolve(true);
......@@ -126,7 +153,6 @@ function setUp() {
FileTable.decorate(
table, metadataModel, volumeManager, historyLoader, a11y,
true /* fullPage */);
table.list = document.querySelector('#file-list');
const dataModel = new FileListModel(metadataModel);
table.list.dataModel = dataModel;
......@@ -139,7 +165,7 @@ function setUp() {
queryRequiredElement('#list-container'), table, grid,
DialogType.FULL_PAGE);
listContainer.dataModel = dataModel;
listContainer.selectionModel = new cr.ui.ListSelectionModel();
listContainer.selectionModel = new ListSelectionModel();
listContainer.setCurrentListType(ListContainer.ListType.DETAIL);
// Setup DirectoryTree elements.
......@@ -168,7 +194,7 @@ function setUp() {
* @suppress {accessControls} To be able to access private method
* isDocumentWideEvent_
*/
function testIsDocumentWideEvent() {
export function testIsDocumentWideEvent() {
const input = document.querySelector('#free-text');
const crInput = document.querySelector('#test-input');
const button = document.querySelector('#button');
......@@ -207,7 +233,7 @@ function testIsDocumentWideEvent() {
/**
* Tests canCutOrDrag() respects non-modifiable entries like Downloads.
*/
function testCanMoveDownloads() {
export function testCanMoveDownloads() {
// Item 1 of the volume info list should be Downloads volume type.
assertEquals(
VolumeManagerCommon.VolumeType.DOWNLOADS,
......@@ -243,7 +269,7 @@ function testCanMoveDownloads() {
/**
* Tests preparePaste() with FilesApp fs/sources and standard DataTransfer.
*/
async function testPreparePaste(done) {
export async function testPreparePaste(done) {
const myFilesVolume = volumeManager.volumeInfoList.item(1);
const myFilesMockFs =
/** @type {!MockFileSystem} */ (myFilesVolume.fileSystem);
......
......@@ -6,7 +6,13 @@
* @fileoverview Utility methods for the holding space feature.
*/
class HoldingSpaceUtil {
// clang-format off
// #import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
// #import {metrics} from '../../common/js/metrics.m.js';
// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
// clang-format on
/* #export */ class HoldingSpaceUtil {
/**
* Returns the key in localStorage to store the time (in milliseconds) of the
* first pin to holding space.
......
......@@ -2,6 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// clang-format off
// #import {FilesAppEntry, FakeEntry} from '../../../externs/files_app_entry_interfaces.m.js';
// #import {VolumeManagerCommon} from '../../../base/js/volume_manager_types.m.js';
// #import {util, str} from '../../common/js/util.m.js';
// clang-format on
/**
* File path component.
*
......@@ -11,7 +17,7 @@
* PathComponent.computeComponentsFromEntry computes an array of PathComponent
* of the given entry.
*/
class PathComponent {
/* #export */ class PathComponent {
/**
* @param {string} name Name.
* @param {string} url Url.
......@@ -161,4 +167,4 @@ class PathComponent {
return components;
}
}
\ No newline at end of file
}
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