Commit 8603f25b authored by Nnamdi Theodore Johnson-Kanu's avatar Nnamdi Theodore Johnson-Kanu Committed by Commit Bot

[CrOS settings] Port os_reset_page/ and localized_link/ to Polymer3

- Forks TestLifetimeBrowserProxy into test_os_lifetime_browser_proxy.js
- create new os_settings_v3_browsertest.js

Bug: 1045266
Change-Id: I4500646fda8e8208d7bc63b405594592f9a7fce2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2190976
Commit-Queue: Nnamdi Theodore Johnson-kanu <tjohnsonkanu@google.com>
Reviewed-by: default avatardpapad <dpapad@chromium.org>
Reviewed-by: default avatarRegan Hsu <hsuregan@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771716}
parent 5afa89dd
...@@ -292,8 +292,10 @@ if (is_chromeos) { ...@@ -292,8 +292,10 @@ if (is_chromeos) {
deps += [ "//chrome/browser/resources/settings/chromeos:build" ] deps += [ "//chrome/browser/resources/settings/chromeos:build" ]
} else { } else {
source = "settings/os_settings_resources.grd" source = "settings/os_settings_resources.grd"
deps += deps += [
[ "//chrome/browser/resources/settings/chromeos:polymer3_elements" ] "//chrome/browser/resources/settings/chromeos:polymer3_elements",
"//chrome/browser/ui/webui/settings/chromeos/search:mojo_bindings_js",
]
} }
defines = chrome_grit_defines defines = chrome_grit_defines
......
...@@ -8,6 +8,7 @@ import("//tools/grit/grit_rule.gni") ...@@ -8,6 +8,7 @@ import("//tools/grit/grit_rule.gni")
import("//ui/webui/resources/tools/js_modulizer.gni") import("//ui/webui/resources/tools/js_modulizer.gni")
import("//ui/webui/webui_features.gni") import("//ui/webui/webui_features.gni")
import("../../optimize_webui.gni") import("../../optimize_webui.gni")
import("./os_settings.gni")
if (optimize_webui) { if (optimize_webui) {
settings_pak_file = "os_settings_resources.pak" settings_pak_file = "os_settings_resources.pak"
...@@ -43,7 +44,7 @@ if (optimize_webui) { ...@@ -43,7 +44,7 @@ if (optimize_webui) {
"chrome://os-settings/constants/setting.mojom-lite.js", "chrome://os-settings/constants/setting.mojom-lite.js",
"chrome://os-settings/search/search.mojom-lite.js", "chrome://os-settings/search/search.mojom-lite.js",
"chrome://os-settings/search/search_result_icon.mojom-lite.js", "chrome://os-settings/search/search_result_icon.mojom-lite.js",
"chrome://os-settings/search/user_action_recorder.mojom-lite.js", "chromeos/search/user_action_recorder.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom.html", "chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom.html",
"chrome://resources/mojo/mojo/public/mojom/base/string16.mojom.html", "chrome://resources/mojo/mojo/public/mojom/base/string16.mojom.html",
"chrome://resources/mojo/mojo/public/mojom/base/time.mojom.html", "chrome://resources/mojo/mojo/public/mojom/base/time.mojom.html",
...@@ -180,7 +181,8 @@ group("closure_compile_module") { ...@@ -180,7 +181,8 @@ group("closure_compile_module") {
#"device_page:closure_compile_module", #"device_page:closure_compile_module",
#"google_assistant_page:closure_compile_module", #"google_assistant_page:closure_compile_module",
#"internet_page:closure_compile_module", #"internet_page:closure_compile_module",
#"localized_link:closure_compile_module", "localized_link:closure_compile_module",
#"multidevice_page:closure_compile_module", #"multidevice_page:closure_compile_module",
#"os_a11y_page:closure_compile_module", #"os_a11y_page:closure_compile_module",
#"os_about_page:closure_compile_module", #"os_about_page:closure_compile_module",
...@@ -191,7 +193,8 @@ group("closure_compile_module") { ...@@ -191,7 +193,8 @@ group("closure_compile_module") {
#"os_people_page:closure_compile_module", #"os_people_page:closure_compile_module",
#"os_printing_page:closure_compile_module", #"os_printing_page:closure_compile_module",
#"os_privacy_page:closure_compile_module", #"os_privacy_page:closure_compile_module",
#"os_reset_page:closure_compile_module", "os_reset_page:closure_compile_module",
#"os_search_page:closure_compile_module", #"os_search_page:closure_compile_module",
#"os_settings_main:closure_compile_module", #"os_settings_main:closure_compile_module",
#"os_settings_menu:closure_compile_module", #"os_settings_menu:closure_compile_module",
...@@ -222,10 +225,8 @@ group("closure_compile_module") { ...@@ -222,10 +225,8 @@ group("closure_compile_module") {
js_library("metrics_recorder.m") { js_library("metrics_recorder.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/metrics_recorder.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/metrics_recorder.m.js" ]
deps = [ deps = [ "//chrome/browser/ui/webui/settings/chromeos/search:mojo_bindings_js_library_for_compile" ]
# TODO: Fill those in. extra_deps = [ ":modulize" ]
]
extra_deps = [ ":metrics_recorder_module" ]
} }
js_library("os_icons.m") { js_library("os_icons.m") {
...@@ -323,21 +324,17 @@ group("polymer3_elements") { ...@@ -323,21 +324,17 @@ group("polymer3_elements") {
"personalization_page:polymer3_elements", "personalization_page:polymer3_elements",
# Local targets # Local targets
":metrics_recorder_module",
":modulize", ":modulize",
":os_icons_module", ":os_icons_module",
":os_page_visibility_module", ":os_page_visibility_module",
":os_route_module", ":os_route_module",
":os_settings_icons_css_module", ":os_settings_icons_css_module",
"..:modulize",
"..:settings_shared_css_module",
"..:settings_vars_css_module",
] ]
} }
polymer_modulizer("metrics_recorder") {
js_file = "metrics_recorder.js"
html_file = "metrics_recorder.html"
html_type = "dom-module"
}
polymer_modulizer("os_icons") { polymer_modulizer("os_icons") {
js_file = "os_icons.m.js" js_file = "os_icons.m.js"
html_file = "os_icons.html" html_file = "os_icons.html"
...@@ -364,8 +361,10 @@ polymer_modulizer("os_settings_icons_css") { ...@@ -364,8 +361,10 @@ polymer_modulizer("os_settings_icons_css") {
js_modulizer("modulize") { js_modulizer("modulize") {
input_files = [ input_files = [
"metrics_recorder.js",
"os_settings_routes.js", "os_settings_routes.js",
"route_origin_behavior.js", "route_origin_behavior.js",
"search_handler.js", "search_handler.js",
] ]
namespace_rewrites = os_settings_namespace_rewrites
} }
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("//tools/polymer/polymer.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("../os_settings.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
deps = [ ":localized_link" ] deps = [ ":localized_link" ]
...@@ -12,24 +15,20 @@ js_library("localized_link") { ...@@ -12,24 +15,20 @@ js_library("localized_link") {
deps = [ "//ui/webui/resources/js:assert" ] deps = [ "//ui/webui/resources/js:assert" ]
} }
# TODO: Uncomment as the Polymer3 migration makes progress. js_type_check("closure_compile_module") {
#js_type_check("closure_compile_module") { is_polymer3 = true
# is_polymer3 = true deps = [ ":localized_link.m" ]
# deps = [ }
# ":localized_link.m"
# ]
#}
js_library("localized_link.m") { js_library("localized_link.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/localized_link/localized_link.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/localized_link/localized_link.m.js" ]
deps = [ deps = [
# TODO: Fill those in. "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:assert.m",
] ]
extra_deps = [ ":localized_link_module" ] extra_deps = [ ":localized_link_module" ]
} }
import("//tools/polymer/polymer.gni")
group("polymer3_elements") { group("polymer3_elements") {
public_deps = [ ":localized_link_module" ] public_deps = [ ":localized_link_module" ]
} }
...@@ -38,4 +37,8 @@ polymer_modulizer("localized_link") { ...@@ -38,4 +37,8 @@ polymer_modulizer("localized_link") {
js_file = "localized_link.js" js_file = "localized_link.js"
html_file = "localized_link.html" html_file = "localized_link.html"
html_type = "dom-module" html_type = "dom-module"
namespace_rewrites = os_settings_namespace_rewrites
auto_imports =
os_settings_auto_imports +
[ "ui/webui/resources/html/assert.html|assert,assertNotReached" ]
} }
<link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/cr.html">
<link rel="import" href="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.html"> <link rel="import" href="chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.html">
<script src="chrome://os-settings/search/user_action_recorder.mojom-lite.js"></script> <script src="search/user_action_recorder.mojom-lite.js"></script>
<script src="metrics_recorder.js"></script> <script src="metrics_recorder.js"></script>
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
// 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 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js'
// #import '../search/user_action_recorder.mojom-lite.js';
// clang-format on
/** /**
* @fileoverview * @fileoverview
* Provides functions used for recording user actions within settings. * Provides functions used for recording user actions within settings.
...@@ -16,7 +21,7 @@ cr.define('settings', function() { ...@@ -16,7 +21,7 @@ cr.define('settings', function() {
* @param {!chromeos.settings.mojom.UserActionRecorderInterface} * @param {!chromeos.settings.mojom.UserActionRecorderInterface}
* testRecorder * testRecorder
*/ */
function setUserActionRecorderForTesting(testRecorder) { /* #export */ function setUserActionRecorderForTesting(testRecorder) {
userActionRecorder = testRecorder; userActionRecorder = testRecorder;
} }
...@@ -32,27 +37,27 @@ cr.define('settings', function() { ...@@ -32,27 +37,27 @@ cr.define('settings', function() {
return userActionRecorder; return userActionRecorder;
} }
function recordPageFocus() { /* #export */ function recordPageFocus() {
getRecorder().recordPageFocus(); getRecorder().recordPageFocus();
} }
function recordPageBlur() { /* #export */ function recordPageBlur() {
getRecorder().recordPageBlur(); getRecorder().recordPageBlur();
} }
function recordClick() { /* #export */ function recordClick() {
getRecorder().recordClick(); getRecorder().recordClick();
} }
function recordNavigation() { /* #export */ function recordNavigation() {
getRecorder().recordNavigation(); getRecorder().recordNavigation();
} }
function recordSearch() { /* #export */ function recordSearch() {
getRecorder().recordSearch(); getRecorder().recordSearch();
} }
function recordSettingChange() { /* #export */ function recordSettingChange() {
getRecorder().recordSettingChange(); getRecorder().recordSettingChange();
} }
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("//tools/polymer/polymer.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("../os_settings.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
deps = [ deps = [
...@@ -25,6 +28,7 @@ js_library("os_reset_page") { ...@@ -25,6 +28,7 @@ js_library("os_reset_page") {
deps = [ deps = [
"//ui/webui/resources/js:assert", "//ui/webui/resources/js:assert",
"//ui/webui/resources/js:cr", "//ui/webui/resources/js:cr",
"//ui/webui/resources/js:load_time_data",
"//ui/webui/resources/js/cr/ui:focus_without_ink", "//ui/webui/resources/js/cr/ui:focus_without_ink",
] ]
} }
...@@ -34,20 +38,23 @@ js_library("os_reset_browser_proxy") { ...@@ -34,20 +38,23 @@ js_library("os_reset_browser_proxy") {
externs_list = [ "$externs_path/chrome_send.js" ] externs_list = [ "$externs_path/chrome_send.js" ]
} }
# TODO: Uncomment as the Polymer3 migration makes progress. js_type_check("closure_compile_module") {
#js_type_check("closure_compile_module") { is_polymer3 = true
# is_polymer3 = true deps = [
# deps = [ ":os_powerwash_dialog.m",
# ":os_powerwash_dialog.m", ":os_reset_browser_proxy.m",
# ":os_reset_browser_proxy.m", ":os_reset_page.m",
# ":os_reset_page.m" ]
# ] }
#}
js_library("os_powerwash_dialog.m") { js_library("os_powerwash_dialog.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.m.js" ]
deps = [ deps = [
# TODO: Fill those in. ":os_reset_browser_proxy.m",
"..:metrics_recorder.m",
"../..:lifetime_browser_proxy.m",
"../localized_link:localized_link.m",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
] ]
extra_deps = [ ":os_powerwash_dialog_module" ] extra_deps = [ ":os_powerwash_dialog_module" ]
} }
...@@ -55,7 +62,8 @@ js_library("os_powerwash_dialog.m") { ...@@ -55,7 +62,8 @@ js_library("os_powerwash_dialog.m") {
js_library("os_reset_browser_proxy.m") { js_library("os_reset_browser_proxy.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.m.js" ]
deps = [ deps = [
# TODO: Fill those in. "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:cr.m",
] ]
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize" ]
} }
...@@ -63,13 +71,14 @@ js_library("os_reset_browser_proxy.m") { ...@@ -63,13 +71,14 @@ js_library("os_reset_browser_proxy.m") {
js_library("os_reset_page.m") { js_library("os_reset_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.m.js" ]
deps = [ deps = [
# TODO: Fill those in. "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:load_time_data.m",
"//ui/webui/resources/js/cr/ui:focus_without_ink.m",
] ]
extra_deps = [ ":os_reset_page_module" ] extra_deps = [ ":os_reset_page_module" ]
} }
import("//tools/polymer/polymer.gni")
group("polymer3_elements") { group("polymer3_elements") {
public_deps = [ public_deps = [
":modulize", ":modulize",
...@@ -82,16 +91,21 @@ polymer_modulizer("os_powerwash_dialog") { ...@@ -82,16 +91,21 @@ polymer_modulizer("os_powerwash_dialog") {
js_file = "os_powerwash_dialog.js" js_file = "os_powerwash_dialog.js"
html_file = "os_powerwash_dialog.html" html_file = "os_powerwash_dialog.html"
html_type = "dom-module" html_type = "dom-module"
namespace_rewrites = os_settings_namespace_rewrites
auto_imports = os_settings_auto_imports
} }
polymer_modulizer("os_reset_page") { polymer_modulizer("os_reset_page") {
js_file = "os_reset_page.js" js_file = "os_reset_page.js"
html_file = "os_reset_page.html" html_file = "os_reset_page.html"
html_type = "dom-module" html_type = "dom-module"
migrated_imports = settings_migrated_imports
namespace_rewrites = os_settings_namespace_rewrites
auto_imports = os_settings_auto_imports +
[ "ui/webui/resources/html/assert.html|assert" ]
} }
import("//ui/webui/resources/tools/js_modulizer.gni")
js_modulizer("modulize") { js_modulizer("modulize") {
input_files = [ "os_reset_browser_proxy.js" ] input_files = [ "os_reset_browser_proxy.js" ]
namespace_rewrites = os_settings_namespace_rewrites
} }
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
// 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 {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
cr.define('settings', function() { cr.define('settings', function() {
/** @interface */ /** @interface */
class OsResetBrowserProxy { /* #export */ class OsResetBrowserProxy {
/** /**
* A method to be called when the reset powerwash dialog is shown. * A method to be called when the reset powerwash dialog is shown.
*/ */
...@@ -19,7 +21,7 @@ cr.define('settings', function() { ...@@ -19,7 +21,7 @@ cr.define('settings', function() {
/** /**
* @implements {settings.OsResetBrowserProxy} * @implements {settings.OsResetBrowserProxy}
*/ */
class OsResetBrowserProxyImpl { /* #export */ class OsResetBrowserProxyImpl {
/** @override */ /** @override */
onPowerwashDialogShow() { onPowerwashDialogShow() {
chrome.send('onPowerwashDialogShow'); chrome.send('onPowerwashDialogShow');
......
# Copyright 2020 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.
import("//third_party/closure_compiler/compile_js.gni")
import("../settings.gni")
os_settings_namespace_rewrites =
settings_namespace_rewrites + [
"settings.OsResetBrowserProxy|OsResetBrowserProxy",
"settings.recordSettingChange|recordSettingChange",
]
os_settings_auto_imports = settings_auto_imports + [
"chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.html|OsResetBrowserProxy,OsResetBrowserProxyImpl",
"chrome/browser/resources/settings/chromeos/metrics_recorder.html|recordSettingChange",
"chrome/browser/resources/settings/lifetime_browser_proxy.html|LifetimeBrowserProxy,LifetimeBrowserProxyImpl",
]
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
// 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 './os_reset_page/os_powerwash_dialog.m.js';
import './os_reset_page/os_reset_page.m.js';
import './localized_link/localized_link.m.js';
import {getSearchHandler} from './search_handler.m.js'; export {OsResetBrowserProxyImpl} from './os_reset_page/os_reset_browser_proxy.m.js';
export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../../lifetime_browser_proxy.m.js';
console.log('getSearchHandler', getSearchHandler); \ No newline at end of file
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<grit-part> <grit-part>
<include name="IDR_OS_SETTINGS_SEARCH_HANDLER_M_JS" <include name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/search_handler.m.js" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.m.js"
use_base_dir="false" use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_RESET_POWERWASH_DIALOG_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_RESET_PAGE_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_LOCALIZED_LINK_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/localized_link/localized_link.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_METRIC_RECORDER_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/metrics_recorder.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_LIFETIME_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/lifetime_browser_proxy.m.js"
use_base_dir="false"
compress="false"
type="BINDATA"/>
<include name="IDR_OS_SETTINGS_SETTINGS_SHARED_CSS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/settings_shared_css.m.js"
use_base_dir="false"
preprocess="true"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_VARS_CSS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/settings_vars_css.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_I18N_SETUP_JS"
file="i18n_setup.js"
compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_V3_HTML" <include name="IDR_OS_SETTINGS_SETTINGS_V3_HTML"
file="chromeos/os_settings_v3.html" file="chromeos/os_settings_v3.html"
compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_V3_JS" <include name="IDR_OS_SETTINGS_SETTINGS_V3_JS"
file="chromeos/os_settings.js" file="chromeos/os_settings.js"
compress="false"
type="BINDATA" /> type="BINDATA" />
</grit-part> </grit-part>
\ No newline at end of file
...@@ -145,6 +145,9 @@ js2gtest("browser_tests_js_webui") { ...@@ -145,6 +145,9 @@ js2gtest("browser_tests_js_webui") {
"settings/chromeos/os_settings_ui_browsertest.js", "settings/chromeos/os_settings_ui_browsertest.js",
"sys_internals/sys_internals_browsertest.js", "sys_internals/sys_internals_browsertest.js",
] ]
if (!optimize_webui) {
sources += [ "settings/chromeos/os_settings_v3_browsertest.js" ]
}
} else { } else {
sources += [ sources += [
"signin/signin_browsertest.js", "signin/signin_browsertest.js",
...@@ -225,7 +228,13 @@ js2gtest("browser_tests_js_webui") { ...@@ -225,7 +228,13 @@ js2gtest("browser_tests_js_webui") {
"$root_gen_dir/chrome/test/data/webui/test_util.m.js", "$root_gen_dir/chrome/test/data/webui/test_util.m.js",
] ]
if (is_chromeos) { if (is_chromeos) {
data += [ "$root_gen_dir/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.m.js" ] data += [
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_reset_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.m.js",
]
} }
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
} }
......
...@@ -7,7 +7,15 @@ import("//third_party/closure_compiler/compile_js.gni") ...@@ -7,7 +7,15 @@ import("//third_party/closure_compiler/compile_js.gni")
import("//ui/webui/resources/tools/js_modulizer.gni") import("//ui/webui/resources/tools/js_modulizer.gni")
import("../namespace_rewrites.gni") import("../namespace_rewrites.gni")
js_modulizer("modulize") { group("modulize") {
public_deps = [ ":modulize_local" ]
if (is_chromeos) {
deps = [ "./chromeos:modulize" ]
}
}
js_modulizer("modulize_local") {
input_files = [ input_files = [
"fake_input_method_private.js", "fake_input_method_private.js",
"fake_language_settings_private.js", "fake_language_settings_private.js",
...@@ -349,7 +357,7 @@ js_library("test_about_page_browser_proxy") { ...@@ -349,7 +357,7 @@ js_library("test_about_page_browser_proxy") {
"//chrome/browser/resources/settings:settings", "//chrome/browser/resources/settings:settings",
"//ui/webui/resources/js:cr.m", "//ui/webui/resources/js:cr.m",
] ]
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize_local" ]
} }
js_library("test_hats_browser_proxy") { js_library("test_hats_browser_proxy") {
...@@ -365,7 +373,7 @@ js_library("test_lifetime_browser_proxy.m") { ...@@ -365,7 +373,7 @@ js_library("test_lifetime_browser_proxy.m") {
"..:test_browser_proxy.m", "..:test_browser_proxy.m",
"//chrome/browser/resources/settings:settings", "//chrome/browser/resources/settings:settings",
] ]
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize_local" ]
} }
js_library("test_local_data_browser_proxy") { js_library("test_local_data_browser_proxy") {
...@@ -381,7 +389,7 @@ js_library("test_search_engines_browser_proxy.m") { ...@@ -381,7 +389,7 @@ js_library("test_search_engines_browser_proxy.m") {
"..:test_browser_proxy.m", "..:test_browser_proxy.m",
"//chrome/browser/resources/settings:settings", "//chrome/browser/resources/settings:settings",
] ]
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize_local" ]
} }
js_library("test_site_settings_prefs_browser_proxy") { js_library("test_site_settings_prefs_browser_proxy") {
......
...@@ -2,7 +2,11 @@ ...@@ -2,7 +2,11 @@
# 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("//chrome/browser/resources/settings/chromeos/os_settings.gni")
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("//tools/polymer/polymer.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("./os_namespace_rewrites.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
deps = [ deps = [
...@@ -24,3 +28,16 @@ js_library("fake_settings_search_handler") { ...@@ -24,3 +28,16 @@ js_library("fake_settings_search_handler") {
"//ui/webui/resources/js:cr", "//ui/webui/resources/js:cr",
] ]
} }
js_modulizer("modulize") {
input_files = [
"fake_settings_search_handler.js",
"fake_user_action_recorder.js",
"localized_link_test.js",
"os_reset_page_test.js",
"test_os_reset_browser_proxy.js",
"test_os_lifetime_browser_proxy.js",
]
namespace_rewrites =
os_settings_namespace_rewrites + os_test_namespace_rewrites
}
...@@ -31,5 +31,6 @@ cr.define('settings', function() { ...@@ -31,5 +31,6 @@ cr.define('settings', function() {
} }
} }
// #cr_define_end
return {FakeSettingsSearchHandler: FakeSettingsSearchHandler}; return {FakeSettingsSearchHandler: FakeSettingsSearchHandler};
}); });
...@@ -48,5 +48,6 @@ cr.define('settings', function() { ...@@ -48,5 +48,6 @@ cr.define('settings', function() {
} }
} }
// #cr_define_end
return {FakeUserActionRecorder: FakeUserActionRecorder}; return {FakeUserActionRecorder: FakeUserActionRecorder};
}); });
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
// 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, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
// #import 'chrome://os-settings/chromeos/os_settings.js';
suite('localized_link', function() { suite('localized_link', function() {
let localizedStringWithLink; let localizedStringWithLink;
......
os_test_namespace_rewrites = [
"reset_page.TestOsResetBrowserProxy|TestOsResetBrowserProxy",
"settings.TestLifetimeBrowserProxy|TestLifetimeBrowserProxy",
]
...@@ -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 {TestLifetimeBrowserProxy} from './test_os_lifetime_browser_proxy.m.js';
// #import {LifetimeBrowserProxy, LifetimeBrowserProxyImpl, OsResetBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
// #import {TestOsResetBrowserProxy} from './test_os_reset_browser_proxy.m.js';
// #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js';
// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
cr.define('settings_reset_page', function() { cr.define('settings_reset_page', function() {
/** @enum {string} */ /** @enum {string} */
const TestNames = { const TestNames = {
...@@ -9,85 +15,84 @@ cr.define('settings_reset_page', function() { ...@@ -9,85 +15,84 @@ cr.define('settings_reset_page', function() {
PowerwashDialogOpenClose: 'PowerwashDialogOpenClose', PowerwashDialogOpenClose: 'PowerwashDialogOpenClose',
}; };
function registerDialogTests() { suite('DialogTests', function() {
suite('DialogTests', function() { let resetPage = null;
let resetPage = null;
/** @type {!settings.ResetPageBrowserProxy} */ /** @type {!settings.ResetPageBrowserProxy} */
let resetPageBrowserProxy = null; let resetPageBrowserProxy = null;
/** @type {!settings.LifetimeBrowserProxy} */ /** @type {!settings.LifetimeBrowserProxy} */
let lifetimeBrowserProxy = null; let lifetimeBrowserProxy = null;
setup(function() { setup(function() {
lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy(); lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy();
settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy; settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
resetPageBrowserProxy = new reset_page.TestOsResetBrowserProxy(); resetPageBrowserProxy = new reset_page.TestOsResetBrowserProxy();
settings.OsResetBrowserProxyImpl.instance_ = resetPageBrowserProxy; settings.OsResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
PolymerTest.clearBody(); PolymerTest.clearBody();
resetPage = document.createElement('os-settings-reset-page'); resetPage = document.createElement('os-settings-reset-page');
document.body.appendChild(resetPage); document.body.appendChild(resetPage);
Polymer.dom.flush(); Polymer.dom.flush();
}); });
teardown(function() { teardown(function() {
resetPage.remove(); resetPage.remove();
}); });
/** /**
* @param {function(SettingsPowerwashDialogElement):!Element} * @param {function(SettingsPowerwashDialogElement):!Element}
* closeButtonFn A function that returns the button to be used for * closeButtonFn A function that returns the button to be used for
* closing the dialog. * closing the dialog.
* @return {!Promise} * @return {!Promise}
*/ */
function testOpenClosePowerwashDialog(closeButtonFn) { function testOpenClosePowerwashDialog(closeButtonFn) {
// Open powerwash dialog. // Open powerwash dialog.
assertTrue(!!resetPage); assertTrue(!!resetPage);
resetPage.$.powerwash.click(); resetPage.$.powerwash.click();
Polymer.dom.flush(); Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog'); const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog); assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open); assertTrue(dialog.$.dialog.open);
const onDialogClosed = new Promise(function(resolve, reject) { const onDialogClosed = new Promise(function(resolve, reject) {
dialog.addEventListener('close', function() { dialog.addEventListener('close', function() {
assertFalse(dialog.$.dialog.open); assertFalse(dialog.$.dialog.open);
resolve(); resolve();
});
}); });
});
closeButtonFn(dialog).click(); closeButtonFn(dialog).click();
return Promise.all([ return Promise.all([
onDialogClosed, onDialogClosed,
resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'), resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'),
]); ]);
} }
// Tests that the powerwash dialog opens and closes correctly, and // Tests that the powerwash dialog opens and closes correctly, and
// that chrome.send calls are propagated as expected. // that chrome.send calls are propagated as expected.
test(TestNames.PowerwashDialogOpenClose, function() { test(TestNames.PowerwashDialogOpenClose, function() {
// Test case where the 'cancel' button is clicked. // Test case where the 'cancel' button is clicked.
return testOpenClosePowerwashDialog(function(dialog) { return testOpenClosePowerwashDialog(function(dialog) {
return dialog.$.cancel; return dialog.$.cancel;
});
}); });
});
// Tests that when powerwash is requested chrome.send calls are // Tests that when powerwash is requested chrome.send calls are
// propagated as expected. // propagated as expected.
test(TestNames.PowerwashDialogAction, async () => { test(TestNames.PowerwashDialogAction, async () => {
// Open powerwash dialog. // Open powerwash dialog.
resetPage.$.powerwash.click(); resetPage.$.powerwash.click();
Polymer.dom.flush(); Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog'); const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog); assertTrue(!!dialog);
dialog.$.powerwash.click(); dialog.$.powerwash.click();
const requestTpmFirmwareUpdate = const requestTpmFirmwareUpdate =
await lifetimeBrowserProxy.whenCalled('factoryReset'); await lifetimeBrowserProxy.whenCalled('factoryReset');
assertFalse(requestTpmFirmwareUpdate); assertFalse(requestTpmFirmwareUpdate);
});
}); });
} });
registerDialogTests(); // #cr_define_end
return {};
}); });
...@@ -1329,6 +1329,7 @@ var OSSettingsResetPageTest = class extends OSSettingsBrowserTest { ...@@ -1329,6 +1329,7 @@ var OSSettingsResetPageTest = class extends OSSettingsBrowserTest {
BROWSER_SETTINGS_PATH + '../test_util.js', BROWSER_SETTINGS_PATH + '../test_util.js',
'test_os_reset_browser_proxy.js', 'test_os_reset_browser_proxy.js',
'os_reset_page_test.js', 'os_reset_page_test.js',
'test_os_lifetime_browser_proxy.js',
]); ]);
} }
}; };
......
// Copyright 2020 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.
/** @fileoverview Tests for shared Polymer 3 elements. */
// Polymer BrowserTest fixture.
GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
GEN('#include "chrome/common/buildflags.h"');
GEN('#include "content/public/test/browser_test.h"');
GEN('#include "services/network/public/cpp/features.h"');
/** Test fixture for shared Polymer 3 elements. */
// eslint-disable-next-line no-var
var OSSettingsV3BrowserTest = class extends PolymerTest {
/** @override */
get browsePreload() {
return 'chrome://os-settings';
}
/** @override */
get extraLibraries() {
return [
'//third_party/mocha/mocha.js',
'//chrome/test/data/webui/mocha_adapter.js',
];
}
/** @override */
get featureList() {
return {
enabled: [
'network::features::kOutOfBlinkCors',
],
};
}
};
[['ResetPage', 'os_reset_page_test.m.js'],
['LocalizedLink', 'localized_link_test.m.js'],
].forEach(test => registerTest(...test));
function registerTest(testName, module, caseName) {
const className = `OSSettings${testName}V3Test`;
this[className] = class extends OSSettingsV3BrowserTest {
/** @override */
get browsePreload() {
return `chrome://os-settings/test_loader.html?module=settings/chromeos/${module}`;
}
};
TEST_F(className, caseName || 'All', () => mocha.run());
}
// Copyright 2020 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.
// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
// #import {LifetimeBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
cr.define('settings', function() {
/**
* A test version of LifetimeBrowserProxy.
*
* @implements {settings.LifetimeBrowserProxy}
*/
/* #export */ class TestLifetimeBrowserProxy extends TestBrowserProxy {
constructor() {
const methodNames = ['restart', 'relaunch'];
methodNames.push('signOutAndRestart', 'factoryReset');
super(methodNames);
}
/** @override */
restart() {
this.methodCalled('restart');
}
/** @override */
relaunch() {
this.methodCalled('relaunch');
}
/** @override */
signOutAndRestart() {
this.methodCalled('signOutAndRestart');
}
/** @override */
factoryReset(requestTpmFirmwareUpdate) {
this.methodCalled('factoryReset', requestTpmFirmwareUpdate);
}
}
// #cr_define_end
return {
TestLifetimeBrowserProxy: TestLifetimeBrowserProxy,
};
});
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
// 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 {TestBrowserProxy} from '../../test_browser_proxy.m.js';
cr.define('reset_page', function() { cr.define('reset_page', function() {
/** @implements {settings.OsResetBrowserProxy} */ /** @implements {settings.OsResetBrowserProxy} */
class TestOsResetBrowserProxy extends TestBrowserProxy { /* #export */ class TestOsResetBrowserProxy extends TestBrowserProxy {
constructor() { constructor() {
super([ super([
'onPowerwashDialogShow', 'onPowerwashDialogShow',
...@@ -17,6 +19,7 @@ cr.define('reset_page', function() { ...@@ -17,6 +19,7 @@ cr.define('reset_page', function() {
} }
} }
// #cr_define_end
return { return {
TestOsResetBrowserProxy: TestOsResetBrowserProxy, TestOsResetBrowserProxy: TestOsResetBrowserProxy,
}; };
......
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