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

Video player: Generate first JS modules

JS modules for the following files in ui/file_manager/video_player/js:
- video_player_metrics.js
- video_player_native_controls.js
- video_player_native_controls_unittest.js

Bug: 1133186
Change-Id: I4cc517f86566b0a7dc9719c4598bff37bac253b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2596728Reviewed-by: default avatarLuciano Pacheco <lucmult@chromium.org>
Commit-Queue: Jeremie Boulic <jboulic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837939}
parent b7547c13
...@@ -13,5 +13,5 @@ class VideoPlayerJsTest : public FileManagerJsTestBase { ...@@ -13,5 +13,5 @@ class VideoPlayerJsTest : public FileManagerJsTestBase {
}; };
IN_PROC_BROWSER_TEST_F(VideoPlayerJsTest, SaveResumePlaybackTest) { IN_PROC_BROWSER_TEST_F(VideoPlayerJsTest, SaveResumePlaybackTest) {
RunTestURL("video_player_native_controls_unittest_gen.html"); RunTestURL("video_player_native_controls_unittest.m_gen.html");
} }
...@@ -71,7 +71,7 @@ group("unit_test_data") { ...@@ -71,7 +71,7 @@ group("unit_test_data") {
"gallery/js/image_editor:js_test_gen_html_modules", "gallery/js/image_editor:js_test_gen_html_modules",
"image_loader:js_test_gen_html", "image_loader:js_test_gen_html",
"image_loader:js_test_gen_html_modules", "image_loader:js_test_gen_html_modules",
"video_player/js:js_test_gen_html", "video_player/js:js_test_gen_html_modules",
] ]
} }
......
...@@ -5,6 +5,15 @@ ...@@ -5,6 +5,15 @@
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("//third_party/closure_compiler/js_unit_tests.gni") import("//third_party/closure_compiler/js_unit_tests.gni")
import("//ui/file_manager/base/gn/js_test_gen_html.gni") import("//ui/file_manager/base/gn/js_test_gen_html.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
js_type_check("closure_compile_jsmodules") {
uses_js_modules = true
deps = [
":video_player_metrics.m",
":video_player_native_controls.m",
]
}
js_type_check("closure_compile_module") { js_type_check("closure_compile_module") {
deps = [ deps = [
...@@ -50,12 +59,25 @@ js_library("video_player_native_controls") { ...@@ -50,12 +59,25 @@ js_library("video_player_native_controls") {
externs_list = [ "//ui/file_manager/externs/platform.js" ] externs_list = [ "//ui/file_manager/externs/platform.js" ]
} }
js_unittest("video_player_native_controls_unittest") { js_library("video_player_native_controls.m") {
sources = [ "$root_gen_dir/ui/file_manager/video_player/js/video_player_native_controls.m.js" ]
deps = [ deps = [
":video_player_native_controls", "//ui/file_manager/base/js:app_util.m",
"//ui/file_manager/base/js:app_util", "//ui/webui/resources/js:assert.m",
"//ui/file_manager/base/js:mock_chrome", "//ui/webui/resources/js:load_time_data.m",
"//ui/webui/resources/js:webui_resource_test", "//ui/webui/resources/js:util.m",
]
externs_list = [ "//ui/file_manager/externs/platform.js" ]
extra_deps = [ ":modulize" ]
}
js_unittest("video_player_native_controls_unittest.m") {
deps = [
":video_player_native_controls.m",
"//chrome/test/data/webui:chai_assert",
"//ui/file_manager/base/js:mock_chrome.m",
] ]
} }
...@@ -77,14 +99,40 @@ js_library("video_player_metrics") { ...@@ -77,14 +99,40 @@ js_library("video_player_metrics") {
deps = [ "//ui/file_manager/file_manager/common/js:metrics_base" ] deps = [ "//ui/file_manager/file_manager/common/js:metrics_base" ]
} }
js_test_gen_html("js_test_gen_html") { js_library("video_player_metrics.m") {
deps = [ ":video_player_native_controls_unittest" ] sources = [
"$root_gen_dir/ui/file_manager/video_player/js/video_player_metrics.m.js",
]
deps = [ "//ui/file_manager/file_manager/common/js:metrics_base.m" ]
extra_deps = [ ":modulize" ]
}
js_test_gen_html("js_test_gen_html_modules") {
deps = [ ":video_player_native_controls_unittest.m" ]
js_module = true
closure_flags =
strict_error_checking_closure_args + [
"js_module_root=./gen/ui",
"js_module_root=../../ui",
"browser_resolver_prefix_replacements=\"chrome://test/=./\"",
"hide_warnings_for=third_party/",
]
} }
group("closure_compile") { group("closure_compile") {
testonly = true testonly = true
deps = [ deps = [
":closure_compile_jsmodules",
":closure_compile_module", ":closure_compile_module",
":js_test_gen_html_type_check_auto", ":js_test_gen_html_modules_type_check_auto",
]
}
js_modulizer("modulize") {
input_files = [
"video_player_native_controls.js",
"video_player_metrics.js",
] ]
} }
...@@ -6,11 +6,15 @@ ...@@ -6,11 +6,15 @@
* @fileoverview Utility methods for accessing chrome.metricsPrivate API. * @fileoverview Utility methods for accessing chrome.metricsPrivate API.
* *
* To be included as a first script in main.html * To be included as a first script in main.html
* @suppress {uselessCode} Temporary suppress because of the line exporting.
*/ */
// #import {metricsBase} from '../../file_manager/common/js/metrics_base.m.js';
/** /**
* @extends {metricsBase} * @extends {metricsBase}
*/ */
// eslint-disable-next-line no-var
var metrics = metricsBase; var metrics = metricsBase;
/** /**
...@@ -100,3 +104,6 @@ metrics.recordPlayType = function(type) { ...@@ -100,3 +104,6 @@ metrics.recordPlayType = function(type) {
metrics.convertName_ = function(name) { metrics.convertName_ = function(name) {
return 'VideoPlayer.' + name; return 'VideoPlayer.' + name;
}; };
// eslint-disable-next-line semi,no-extra-semi
/* #export */ {metrics};
...@@ -2,10 +2,17 @@ ...@@ -2,10 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// clang-format off
// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
// #import {appUtil} from '../../base/js/app_util.m.js';
// #import {getRequiredElement, queryRequiredElement} from 'chrome://resources/js/util.m.js';
// #import {assertInstanceof} from 'chrome://resources/js/assert.m.js';
// clang-format on
/** /**
* Video player with chrome's native controls. * Video player with chrome's native controls.
*/ */
class NativeControlsVideoPlayer { /* #export */ class NativeControlsVideoPlayer {
constructor() { constructor() {
/** /**
* List of open videos. * List of open videos.
......
...@@ -2,6 +2,12 @@ ...@@ -2,6 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import {assertEquals} from 'chrome://test/chai_assert.js';
import {MockChromeStorageAPI} from '../../base/js/mock_chrome.m.js';
import {NativeControlsVideoPlayer} from './video_player_native_controls.m.js';
/** /**
* Helper function for creating an mock HTMLVideoElement. * Helper function for creating an mock HTMLVideoElement.
* *
...@@ -19,10 +25,10 @@ function mockVideoElement(src, duration, currentTime) { ...@@ -19,10 +25,10 @@ function mockVideoElement(src, duration, currentTime) {
* Test case for save and resume playback position when close and reopen video * Test case for save and resume playback position when close and reopen video
* player app. * player app.
*/ */
function testSaveResumePlayback() { export function testSaveResumePlayback() {
new MockChromeStorageAPI(); new MockChromeStorageAPI();
let player = new NativeControlsVideoPlayer(); const player = new NativeControlsVideoPlayer();
const testCases = [ const testCases = [
mockVideoElement('test_1', 305, 150), mockVideoElement('test_2', 305, 14), mockVideoElement('test_1', 305, 150), mockVideoElement('test_2', 305, 14),
......
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