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) {
deps += [ "//chrome/browser/resources/settings/chromeos:build" ]
} else {
source = "settings/os_settings_resources.grd"
deps +=
[ "//chrome/browser/resources/settings/chromeos:polymer3_elements" ]
deps += [
"//chrome/browser/resources/settings/chromeos:polymer3_elements",
"//chrome/browser/ui/webui/settings/chromeos/search:mojo_bindings_js",
]
}
defines = chrome_grit_defines
......
......@@ -8,6 +8,7 @@ import("//tools/grit/grit_rule.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("//ui/webui/webui_features.gni")
import("../../optimize_webui.gni")
import("./os_settings.gni")
if (optimize_webui) {
settings_pak_file = "os_settings_resources.pak"
......@@ -43,7 +44,7 @@ if (optimize_webui) {
"chrome://os-settings/constants/setting.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/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/string16.mojom.html",
"chrome://resources/mojo/mojo/public/mojom/base/time.mojom.html",
......@@ -180,7 +181,8 @@ group("closure_compile_module") {
#"device_page:closure_compile_module",
#"google_assistant_page:closure_compile_module",
#"internet_page:closure_compile_module",
#"localized_link:closure_compile_module",
"localized_link:closure_compile_module",
#"multidevice_page:closure_compile_module",
#"os_a11y_page:closure_compile_module",
#"os_about_page:closure_compile_module",
......@@ -191,7 +193,8 @@ group("closure_compile_module") {
#"os_people_page:closure_compile_module",
#"os_printing_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_settings_main:closure_compile_module",
#"os_settings_menu:closure_compile_module",
......@@ -222,10 +225,8 @@ group("closure_compile_module") {
js_library("metrics_recorder.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/metrics_recorder.m.js" ]
deps = [
# TODO: Fill those in.
]
extra_deps = [ ":metrics_recorder_module" ]
deps = [ "//chrome/browser/ui/webui/settings/chromeos/search:mojo_bindings_js_library_for_compile" ]
extra_deps = [ ":modulize" ]
}
js_library("os_icons.m") {
......@@ -323,21 +324,17 @@ group("polymer3_elements") {
"personalization_page:polymer3_elements",
# Local targets
":metrics_recorder_module",
":modulize",
":os_icons_module",
":os_page_visibility_module",
":os_route_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") {
js_file = "os_icons.m.js"
html_file = "os_icons.html"
......@@ -364,8 +361,10 @@ polymer_modulizer("os_settings_icons_css") {
js_modulizer("modulize") {
input_files = [
"metrics_recorder.js",
"os_settings_routes.js",
"route_origin_behavior.js",
"search_handler.js",
]
namespace_rewrites = os_settings_namespace_rewrites
}
......@@ -3,6 +3,9 @@
# found in the LICENSE file.
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") {
deps = [ ":localized_link" ]
......@@ -12,24 +15,20 @@ js_library("localized_link") {
deps = [ "//ui/webui/resources/js:assert" ]
}
# TODO: Uncomment as the Polymer3 migration makes progress.
#js_type_check("closure_compile_module") {
# is_polymer3 = true
# deps = [
# ":localized_link.m"
# ]
#}
js_type_check("closure_compile_module") {
is_polymer3 = true
deps = [ ":localized_link.m" ]
}
js_library("localized_link.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/localized_link/localized_link.m.js" ]
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" ]
}
import("//tools/polymer/polymer.gni")
group("polymer3_elements") {
public_deps = [ ":localized_link_module" ]
}
......@@ -38,4 +37,8 @@ polymer_modulizer("localized_link") {
js_file = "localized_link.js"
html_file = "localized_link.html"
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/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>
......@@ -2,6 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// 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
* Provides functions used for recording user actions within settings.
......@@ -16,7 +21,7 @@ cr.define('settings', function() {
* @param {!chromeos.settings.mojom.UserActionRecorderInterface}
* testRecorder
*/
function setUserActionRecorderForTesting(testRecorder) {
/* #export */ function setUserActionRecorderForTesting(testRecorder) {
userActionRecorder = testRecorder;
}
......@@ -32,27 +37,27 @@ cr.define('settings', function() {
return userActionRecorder;
}
function recordPageFocus() {
/* #export */ function recordPageFocus() {
getRecorder().recordPageFocus();
}
function recordPageBlur() {
/* #export */ function recordPageBlur() {
getRecorder().recordPageBlur();
}
function recordClick() {
/* #export */ function recordClick() {
getRecorder().recordClick();
}
function recordNavigation() {
/* #export */ function recordNavigation() {
getRecorder().recordNavigation();
}
function recordSearch() {
/* #export */ function recordSearch() {
getRecorder().recordSearch();
}
function recordSettingChange() {
/* #export */ function recordSettingChange() {
getRecorder().recordSettingChange();
}
......
......@@ -3,6 +3,9 @@
# found in the LICENSE file.
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") {
deps = [
......@@ -25,6 +28,7 @@ js_library("os_reset_page") {
deps = [
"//ui/webui/resources/js:assert",
"//ui/webui/resources/js:cr",
"//ui/webui/resources/js:load_time_data",
"//ui/webui/resources/js/cr/ui:focus_without_ink",
]
}
......@@ -34,20 +38,23 @@ js_library("os_reset_browser_proxy") {
externs_list = [ "$externs_path/chrome_send.js" ]
}
# TODO: Uncomment as the Polymer3 migration makes progress.
#js_type_check("closure_compile_module") {
# is_polymer3 = true
# deps = [
# ":os_powerwash_dialog.m",
# ":os_reset_browser_proxy.m",
# ":os_reset_page.m"
# ]
#}
js_type_check("closure_compile_module") {
is_polymer3 = true
deps = [
":os_powerwash_dialog.m",
":os_reset_browser_proxy.m",
":os_reset_page.m",
]
}
js_library("os_powerwash_dialog.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.m.js" ]
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" ]
}
......@@ -55,7 +62,8 @@ js_library("os_powerwash_dialog.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" ]
deps = [
# TODO: Fill those in.
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:cr.m",
]
extra_deps = [ ":modulize" ]
}
......@@ -63,13 +71,14 @@ js_library("os_reset_browser_proxy.m") {
js_library("os_reset_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.m.js" ]
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" ]
}
import("//tools/polymer/polymer.gni")
group("polymer3_elements") {
public_deps = [
":modulize",
......@@ -82,16 +91,21 @@ polymer_modulizer("os_powerwash_dialog") {
js_file = "os_powerwash_dialog.js"
html_file = "os_powerwash_dialog.html"
html_type = "dom-module"
namespace_rewrites = os_settings_namespace_rewrites
auto_imports = os_settings_auto_imports
}
polymer_modulizer("os_reset_page") {
js_file = "os_reset_page.js"
html_file = "os_reset_page.html"
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") {
input_files = [ "os_reset_browser_proxy.js" ]
namespace_rewrites = os_settings_namespace_rewrites
}
......@@ -2,9 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// #import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
cr.define('settings', function() {
/** @interface */
class OsResetBrowserProxy {
/* #export */ class OsResetBrowserProxy {
/**
* A method to be called when the reset powerwash dialog is shown.
*/
......@@ -19,7 +21,7 @@ cr.define('settings', function() {
/**
* @implements {settings.OsResetBrowserProxy}
*/
class OsResetBrowserProxyImpl {
/* #export */ class OsResetBrowserProxyImpl {
/** @override */
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 @@
// Use of this source code is governed by a BSD-style license that can be
// 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';
console.log('getSearchHandler', getSearchHandler);
\ No newline at end of file
export {OsResetBrowserProxyImpl} from './os_reset_page/os_reset_browser_proxy.m.js';
export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../../lifetime_browser_proxy.m.js';
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<grit-part>
<include name="IDR_OS_SETTINGS_SEARCH_HANDLER_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/search_handler.m.js"
<include name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.m.js"
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" />
<include name="IDR_OS_SETTINGS_SETTINGS_V3_HTML"
file="chromeos/os_settings_v3.html"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_V3_JS"
file="chromeos/os_settings.js"
compress="false"
type="BINDATA" />
</grit-part>
\ No newline at end of file
......@@ -145,6 +145,9 @@ js2gtest("browser_tests_js_webui") {
"settings/chromeos/os_settings_ui_browsertest.js",
"sys_internals/sys_internals_browsertest.js",
]
if (!optimize_webui) {
sources += [ "settings/chromeos/os_settings_v3_browsertest.js" ]
}
} else {
sources += [
"signin/signin_browsertest.js",
......@@ -225,7 +228,13 @@ js2gtest("browser_tests_js_webui") {
"$root_gen_dir/chrome/test/data/webui/test_util.m.js",
]
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" ]
}
......
......@@ -7,7 +7,15 @@ import("//third_party/closure_compiler/compile_js.gni")
import("//ui/webui/resources/tools/js_modulizer.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 = [
"fake_input_method_private.js",
"fake_language_settings_private.js",
......@@ -349,7 +357,7 @@ js_library("test_about_page_browser_proxy") {
"//chrome/browser/resources/settings:settings",
"//ui/webui/resources/js:cr.m",
]
extra_deps = [ ":modulize" ]
extra_deps = [ ":modulize_local" ]
}
js_library("test_hats_browser_proxy") {
......@@ -365,7 +373,7 @@ js_library("test_lifetime_browser_proxy.m") {
"..:test_browser_proxy.m",
"//chrome/browser/resources/settings:settings",
]
extra_deps = [ ":modulize" ]
extra_deps = [ ":modulize_local" ]
}
js_library("test_local_data_browser_proxy") {
......@@ -381,7 +389,7 @@ js_library("test_search_engines_browser_proxy.m") {
"..:test_browser_proxy.m",
"//chrome/browser/resources/settings:settings",
]
extra_deps = [ ":modulize" ]
extra_deps = [ ":modulize_local" ]
}
js_library("test_site_settings_prefs_browser_proxy") {
......
......@@ -2,7 +2,11 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//chrome/browser/resources/settings/chromeos/os_settings.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") {
deps = [
......@@ -24,3 +28,16 @@ js_library("fake_settings_search_handler") {
"//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() {
}
}
// #cr_define_end
return {FakeSettingsSearchHandler: FakeSettingsSearchHandler};
});
......@@ -48,5 +48,6 @@ cr.define('settings', function() {
}
}
// #cr_define_end
return {FakeUserActionRecorder: FakeUserActionRecorder};
});
......@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// 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() {
let localizedStringWithLink;
......
os_test_namespace_rewrites = [
"reset_page.TestOsResetBrowserProxy|TestOsResetBrowserProxy",
"settings.TestLifetimeBrowserProxy|TestLifetimeBrowserProxy",
]
......@@ -2,6 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// 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() {
/** @enum {string} */
const TestNames = {
......@@ -9,85 +15,84 @@ cr.define('settings_reset_page', function() {
PowerwashDialogOpenClose: 'PowerwashDialogOpenClose',
};
function registerDialogTests() {
suite('DialogTests', function() {
let resetPage = null;
suite('DialogTests', function() {
let resetPage = null;
/** @type {!settings.ResetPageBrowserProxy} */
let resetPageBrowserProxy = null;
/** @type {!settings.ResetPageBrowserProxy} */
let resetPageBrowserProxy = null;
/** @type {!settings.LifetimeBrowserProxy} */
let lifetimeBrowserProxy = null;
/** @type {!settings.LifetimeBrowserProxy} */
let lifetimeBrowserProxy = null;
setup(function() {
lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy();
settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
setup(function() {
lifetimeBrowserProxy = new settings.TestLifetimeBrowserProxy();
settings.LifetimeBrowserProxyImpl.instance_ = lifetimeBrowserProxy;
resetPageBrowserProxy = new reset_page.TestOsResetBrowserProxy();
settings.OsResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
resetPageBrowserProxy = new reset_page.TestOsResetBrowserProxy();
settings.OsResetBrowserProxyImpl.instance_ = resetPageBrowserProxy;
PolymerTest.clearBody();
resetPage = document.createElement('os-settings-reset-page');
document.body.appendChild(resetPage);
Polymer.dom.flush();
});
PolymerTest.clearBody();
resetPage = document.createElement('os-settings-reset-page');
document.body.appendChild(resetPage);
Polymer.dom.flush();
});
teardown(function() {
resetPage.remove();
});
teardown(function() {
resetPage.remove();
});
/**
* @param {function(SettingsPowerwashDialogElement):!Element}
* closeButtonFn A function that returns the button to be used for
* closing the dialog.
* @return {!Promise}
*/
function testOpenClosePowerwashDialog(closeButtonFn) {
// Open powerwash dialog.
assertTrue(!!resetPage);
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open);
const onDialogClosed = new Promise(function(resolve, reject) {
dialog.addEventListener('close', function() {
assertFalse(dialog.$.dialog.open);
resolve();
});
/**
* @param {function(SettingsPowerwashDialogElement):!Element}
* closeButtonFn A function that returns the button to be used for
* closing the dialog.
* @return {!Promise}
*/
function testOpenClosePowerwashDialog(closeButtonFn) {
// Open powerwash dialog.
assertTrue(!!resetPage);
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog);
assertTrue(dialog.$.dialog.open);
const onDialogClosed = new Promise(function(resolve, reject) {
dialog.addEventListener('close', function() {
assertFalse(dialog.$.dialog.open);
resolve();
});
});
closeButtonFn(dialog).click();
return Promise.all([
onDialogClosed,
resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'),
]);
}
closeButtonFn(dialog).click();
return Promise.all([
onDialogClosed,
resetPageBrowserProxy.whenCalled('onPowerwashDialogShow'),
]);
}
// Tests that the powerwash dialog opens and closes correctly, and
// that chrome.send calls are propagated as expected.
test(TestNames.PowerwashDialogOpenClose, function() {
// Test case where the 'cancel' button is clicked.
return testOpenClosePowerwashDialog(function(dialog) {
return dialog.$.cancel;
});
// Tests that the powerwash dialog opens and closes correctly, and
// that chrome.send calls are propagated as expected.
test(TestNames.PowerwashDialogOpenClose, function() {
// Test case where the 'cancel' button is clicked.
return testOpenClosePowerwashDialog(function(dialog) {
return dialog.$.cancel;
});
});
// Tests that when powerwash is requested chrome.send calls are
// propagated as expected.
test(TestNames.PowerwashDialogAction, async () => {
// Open powerwash dialog.
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog);
dialog.$.powerwash.click();
const requestTpmFirmwareUpdate =
await lifetimeBrowserProxy.whenCalled('factoryReset');
assertFalse(requestTpmFirmwareUpdate);
});
// Tests that when powerwash is requested chrome.send calls are
// propagated as expected.
test(TestNames.PowerwashDialogAction, async () => {
// Open powerwash dialog.
resetPage.$.powerwash.click();
Polymer.dom.flush();
const dialog = resetPage.$$('os-settings-powerwash-dialog');
assertTrue(!!dialog);
dialog.$.powerwash.click();
const requestTpmFirmwareUpdate =
await lifetimeBrowserProxy.whenCalled('factoryReset');
assertFalse(requestTpmFirmwareUpdate);
});
}
});
registerDialogTests();
// #cr_define_end
return {};
});
......@@ -1329,6 +1329,7 @@ var OSSettingsResetPageTest = class extends OSSettingsBrowserTest {
BROWSER_SETTINGS_PATH + '../test_util.js',
'test_os_reset_browser_proxy.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 @@
// 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';
cr.define('reset_page', function() {
/** @implements {settings.OsResetBrowserProxy} */
class TestOsResetBrowserProxy extends TestBrowserProxy {
/* #export */ class TestOsResetBrowserProxy extends TestBrowserProxy {
constructor() {
super([
'onPowerwashDialogShow',
......@@ -17,6 +19,7 @@ cr.define('reset_page', function() {
}
}
// #cr_define_end
return {
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