Commit 490318e1 authored by James Hawkins's avatar James Hawkins Committed by Commit Bot

OS Settings: Convert date_time_page/timezone_subpage to Poly3.

Added a unit test to help confirm success of the migration

Bug: 1045266
Test: OSSettingsTimezoneSubpage*

Change-Id: Ifd9d0f07dda4da83e19bab7b1d708bd61be5ad0d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2339279Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: James Hawkins <jhawkins@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795290}
parent f5c7390b
...@@ -61,12 +61,10 @@ js_type_check("closure_compile_module") { ...@@ -61,12 +61,10 @@ js_type_check("closure_compile_module") {
is_polymer3 = true is_polymer3 = true
deps = [ deps = [
# ":date_time_page.m", # ":date_time_page.m",
# ":date_time_types.m", ":date_time_types.m",
":timezone_browser_proxy.m",
# ":timezone_browser_proxy.m",
":timezone_selector.m", ":timezone_selector.m",
":timezone_subpage.m",
# ":timezone_subpage.m"
] ]
} }
...@@ -81,15 +79,16 @@ js_library("date_time_page.m") { ...@@ -81,15 +79,16 @@ js_library("date_time_page.m") {
js_library("date_time_types.m") { js_library("date_time_types.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/date_time_types.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/date_time_types.m.js" ]
deps = [ deps = [
# TODO: Fill those in. "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
] ]
extra_deps = [ ":date_time_types_module" ] extra_deps = [ ":modulize" ]
} }
js_library("timezone_browser_proxy.m") { js_library("timezone_browser_proxy.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_browser_proxy.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_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" ]
} }
...@@ -109,7 +108,12 @@ js_library("timezone_selector.m") { ...@@ -109,7 +108,12 @@ js_library("timezone_selector.m") {
js_library("timezone_subpage.m") { js_library("timezone_subpage.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_subpage.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_subpage.m.js" ]
deps = [ deps = [
# TODO: Fill those in. ":date_time_types.m",
":timezone_browser_proxy.m",
"..:os_settings_routes.m",
"../..:router.m",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:web_ui_listener_behavior.m",
] ]
extra_deps = [ ":timezone_subpage_module" ] extra_deps = [ ":timezone_subpage_module" ]
} }
...@@ -119,7 +123,6 @@ import("//tools/polymer/polymer.gni") ...@@ -119,7 +123,6 @@ import("//tools/polymer/polymer.gni")
group("polymer3_elements") { group("polymer3_elements") {
public_deps = [ public_deps = [
":date_time_page_module", ":date_time_page_module",
":date_time_types_module",
":modulize", ":modulize",
":timezone_selector_module", ":timezone_selector_module",
":timezone_subpage_module", ":timezone_subpage_module",
...@@ -132,12 +135,6 @@ polymer_modulizer("date_time_page") { ...@@ -132,12 +135,6 @@ polymer_modulizer("date_time_page") {
html_type = "dom-module" html_type = "dom-module"
} }
polymer_modulizer("date_time_types") {
js_file = "date_time_types.js"
html_file = "date_time_types.html"
html_type = "dom-module"
}
polymer_modulizer("timezone_selector") { polymer_modulizer("timezone_selector") {
js_file = "timezone_selector.js" js_file = "timezone_selector.js"
html_file = "timezone_selector.html" html_file = "timezone_selector.html"
...@@ -151,10 +148,22 @@ polymer_modulizer("timezone_subpage") { ...@@ -151,10 +148,22 @@ polymer_modulizer("timezone_subpage") {
js_file = "timezone_subpage.js" js_file = "timezone_subpage.js"
html_file = "timezone_subpage.html" html_file = "timezone_subpage.html"
html_type = "dom-module" html_type = "dom-module"
migrated_imports = os_settings_migrated_imports
namespace_rewrites = os_settings_namespace_rewrites +
[ "settings.TimeZoneBrowserProxy|TimeZoneBrowserProxy" ]
auto_imports = os_settings_auto_imports + [
"chrome/browser/resources/settings/chromeos/date_time_page/date_time_types.html|TimeZoneAutoDetectMethod",
"chrome/browser/resources/settings/chromeos/date_time_page/timezone_browser_proxy.html|TimeZoneBrowserProxyImpl,TimeZoneBrowserProxy",
]
} }
import("//ui/webui/resources/tools/js_modulizer.gni") import("//ui/webui/resources/tools/js_modulizer.gni")
js_modulizer("modulize") { js_modulizer("modulize") {
input_files = [ "timezone_browser_proxy.js" ] input_files = [
"date_time_types.js",
"timezone_browser_proxy.js",
]
namespace_rewrites = os_settings_namespace_rewrites +
[ "settings.TimeZoneBrowserProxy|TimeZoneBrowserProxy" ]
} }
...@@ -9,7 +9,7 @@ cr.define('settings', function() { ...@@ -9,7 +9,7 @@ cr.define('settings', function() {
* in sync with TimeZoneResolverManager::TimeZoneResolveMethod enum. * in sync with TimeZoneResolverManager::TimeZoneResolveMethod enum.
* @enum {number} * @enum {number}
*/ */
const TimeZoneAutoDetectMethod = { /* #export */ const TimeZoneAutoDetectMethod = {
DISABLED: 0, DISABLED: 0,
IP_ONLY: 1, IP_ONLY: 1,
SEND_WIFI_ACCESS_POINTS: 2, SEND_WIFI_ACCESS_POINTS: 2,
......
...@@ -2,16 +2,20 @@ ...@@ -2,16 +2,20 @@
// 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 {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
// clang-format on
/** @fileoverview A helper object used by the time zone subpage page. */ /** @fileoverview A helper object used by the time zone subpage page. */
cr.define('settings', function() { cr.define('settings', function() {
/** @interface */ /** @interface */
class TimeZoneBrowserProxy { /* #export */ class TimeZoneBrowserProxy {
/** Notifies C++ code to show parent access code verification view. */ /** Notifies C++ code to show parent access code verification view. */
showParentAccessForTimeZone() {} showParentAccessForTimeZone() {}
} }
/** @implements {settings.TimeZoneBrowserProxy} */ /** @implements {settings.TimeZoneBrowserProxy} */
class TimeZoneBrowserProxyImpl { /* #export */ class TimeZoneBrowserProxyImpl {
/** @override */ /** @override */
showParentAccessForTimeZone() { showParentAccessForTimeZone() {
chrome.send('handleShowParentAccessForTimeZone'); chrome.send('handleShowParentAccessForTimeZone');
......
<link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/html/cr.html">
<link rel="import" href="chrome://resources/html/load_time_data.html">
<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
<link rel="import" href="../../controls/controlled_radio_button.html"> <link rel="import" href="../../controls/controlled_radio_button.html">
<link rel="import" href="../../controls/settings_radio_group.html"> <link rel="import" href="../../controls/settings_radio_group.html">
<link rel="import" href="../../prefs/prefs.html"> <link rel="import" href="../../prefs/prefs.html">
<link rel="import" href="../../prefs/prefs_behavior.html"> <link rel="import" href="../../prefs/prefs_behavior.html">
<link rel="import" href="../../router.html">
<link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_shared_css.html">
<link rel="import" href="../os_route.html">
<link rel="import" href="date_time_types.html"> <link rel="import" href="date_time_types.html">
<link rel="import" href="timezone_browser_proxy.html"> <link rel="import" href="timezone_browser_proxy.html">
<link rel="import" href="timezone_selector.html"> <link rel="import" href="timezone_selector.html">
......
...@@ -56,6 +56,8 @@ os_settings_namespace_rewrites = settings_namespace_rewrites + ...@@ -56,6 +56,8 @@ os_settings_namespace_rewrites = settings_namespace_rewrites +
"settings.Router|Router", "settings.Router|Router",
"settings.routes|routes", "settings.routes|routes",
"settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState", "settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState",
"settings.TimeZoneAutoDetectMethod|TimeZoneAutoDetectMethod",
"settings.TimeZoneBrowserProxyImpl|TimeZoneBrowserProxyImpl",
"settings.ValidateKerberosConfigResult|ValidateKerberosConfigResult", "settings.ValidateKerberosConfigResult|ValidateKerberosConfigResult",
"settings.WallpaperBrowserProxy|WallpaperBrowserProxy", "settings.WallpaperBrowserProxy|WallpaperBrowserProxy",
] ]
......
...@@ -18,6 +18,7 @@ import './parental_controls_page/parental_controls_page.m.js'; ...@@ -18,6 +18,7 @@ import './parental_controls_page/parental_controls_page.m.js';
import './os_people_page/os_people_page.m.js'; import './os_people_page/os_people_page.m.js';
import './os_privacy_page/os_privacy_page.m.js'; import './os_privacy_page/os_privacy_page.m.js';
import './date_time_page/timezone_selector.m.js'; import './date_time_page/timezone_selector.m.js';
import './date_time_page/timezone_subpage.m.js';
export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js'; export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js';
export {dataUsageStringToEnum, NearbyShareDataUsage} from '../nearby_share_page/types.m.js'; export {dataUsageStringToEnum, NearbyShareDataUsage} from '../nearby_share_page/types.m.js';
......
...@@ -390,6 +390,11 @@ ...@@ -390,6 +390,11 @@
use_base_dir="false" use_base_dir="false"
compress="false" compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_SETTINGS_CONTROLS_CONTROLLED_RADIO_BUTTON_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/controlled_radio_button.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_OS_ICONS_M_JS" <include name="IDR_OS_SETTINGS_OS_ICONS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_icons.m.js" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_icons.m.js"
use_base_dir="false" use_base_dir="false"
...@@ -525,9 +530,19 @@ ...@@ -525,9 +530,19 @@
use_base_dir="false" use_base_dir="false"
compress="false" compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_DATE_TIME_PAGE_TIMEZONE_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/timezone_browser_proxy.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_DATE_TIME_PAGE_TIMEZONE_SELECTOR_M_JS" <include name="IDR_OS_SETTINGS_SETTINGS_DATE_TIME_PAGE_TIMEZONE_SELECTOR_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.m.js" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.m.js"
use_base_dir="false" use_base_dir="false"
compress="false" compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_DATE_TIME_PAGE_TIMEZONE_SUBPAGE_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/timezone_subpage.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
</grit-part> </grit-part>
...@@ -267,6 +267,7 @@ if (include_js_tests) { ...@@ -267,6 +267,7 @@ if (include_js_tests) {
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_sync_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_selector_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_selector_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.m.js",
] ]
} }
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
......
...@@ -63,6 +63,7 @@ js_modulizer("modulize") { ...@@ -63,6 +63,7 @@ js_modulizer("modulize") {
"test_wallpaper_browser_proxy.js", "test_wallpaper_browser_proxy.js",
"test_os_sync_browser_proxy.js", "test_os_sync_browser_proxy.js",
"timezone_selector_test.js", "timezone_selector_test.js",
"timezone_subpage_test.js",
] ]
namespace_rewrites = namespace_rewrites =
os_settings_namespace_rewrites + os_test_namespace_rewrites os_settings_namespace_rewrites + os_test_namespace_rewrites
......
...@@ -1550,4 +1550,23 @@ TEST_F('OSSettingsTimezoneSelectorTest', 'AllJsTests', () => { ...@@ -1550,4 +1550,23 @@ TEST_F('OSSettingsTimezoneSelectorTest', 'AllJsTests', () => {
mocha.run(); mocha.run();
}); });
// Tests for the Date Time subpage
// eslint-disable-next-line no-var
var OSSettingsTimezoneSubpageTest = class extends OSSettingsBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload +
'chromeos/date_time_page/timezone_subpage.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat(['timezone_subpage_test.js']);
}
};
TEST_F('OSSettingsTimezoneSubpageTest', 'AllJsTests', () => {
mocha.run();
});
GEN('#endif // defined(NDEBUG)'); GEN('#endif // defined(NDEBUG)');
...@@ -58,6 +58,7 @@ var OSSettingsV3BrowserTest = class extends PolymerTest { ...@@ -58,6 +58,7 @@ var OSSettingsV3BrowserTest = class extends PolymerTest {
['ResetPage', 'os_reset_page_test.m.js'], ['ResetPage', 'os_reset_page_test.m.js'],
['SmartInputsPage', 'smart_inputs_page_test.m.js'], ['SmartInputsPage', 'smart_inputs_page_test.m.js'],
['TimezoneSelector', 'timezone_selector_test.m.js'], ['TimezoneSelector', 'timezone_selector_test.m.js'],
['TimezoneSubpage', 'timezone_subpage_test.m.js'],
].forEach(test => registerTest(...test)); ].forEach(test => registerTest(...test));
function registerTest(testName, module, caseName) { function registerTest(testName, module, caseName) {
......
// 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.
// clang-format off
// #import 'chrome://os-settings/chromeos/os_settings.js';
// #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js'
// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// #import {assertEquals} from '../../chai_assert.js';
// #import {assert} from 'chrome://resources/js/assert.m.js';
// clang-format on
suite('TimezoneSubpageTests', function() {
/** @type {TimezoneSubpage} */
let timezoneSubpage = null;
setup(function() {
PolymerTest.clearBody();
const prefElement = document.createElement('settings-prefs');
document.body.appendChild(prefElement);
return CrSettingsPrefs.initialized.then(function() {
timezoneSubpage = document.createElement('timezone-subpage');
timezoneSubpage.prefs = prefElement.prefs;
document.body.appendChild(timezoneSubpage);
});
});
teardown(function() {
timezoneSubpage.remove();
CrSettingsPrefs.resetForTesting();
});
test('Timezone autodetect by geolocation radio', async () => {
const timezoneRadioGroup =
assert(timezoneSubpage.$$('#timeZoneRadioGroup'));
// Resolve timezone by geolocation is on.
timezoneSubpage.setPrefValue(
'generated.resolve_timezone_by_geolocation_on_off', true);
Polymer.dom.flush();
assertEquals('true', timezoneRadioGroup.selected);
// Resolve timezone by geolocation is off.
timezoneSubpage.setPrefValue(
'generated.resolve_timezone_by_geolocation_on_off', false);
Polymer.dom.flush();
assertEquals('false', timezoneRadioGroup.selected);
// Set timezone autodetect on by clicking the 'on' radio.
const timezoneAutodetectOn =
assert(timezoneSubpage.$$('#timeZoneAutoDetectOn'));
timezoneAutodetectOn.click();
assertTrue(timezoneSubpage
.getPref('generated.resolve_timezone_by_geolocation_on_off')
.value);
// Turn timezone autodetect off by clicking the 'off' radio.
const timezoneAutodetectOff =
assert(timezoneSubpage.$$('#timeZoneAutoDetectOff'));
timezoneAutodetectOff.click();
assertFalse(timezoneSubpage
.getPref('generated.resolve_timezone_by_geolocation_on_off')
.value);
});
});
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