Commit 32718882 authored by James Hawkins's avatar James Hawkins Committed by Commit Bot

OS Settings: Convert TimezoneSelector to Polymer3.

Added a unit test to help confirm success of the migration and removed an unused dependency on date_time_types.

R=khorimoto@chromium.org

Bug: 1045266
Test: OSSettingsTimezoneSelector*
Change-Id: I89bba050a66202c2d21e312bee42972c7bcd91b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2337112Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: James Hawkins <jhawkins@chromium.org>
Cr-Commit-Position: refs/heads/master@{#794781}
parent 7be284bd
...@@ -253,7 +253,8 @@ group("closure_compile_module") { ...@@ -253,7 +253,8 @@ group("closure_compile_module") {
"bluetooth_page:closure_compile_module", "bluetooth_page:closure_compile_module",
#"crostini_page:closure_compile_module", #"crostini_page:closure_compile_module",
#"date_time_page:closure_compile_module", "date_time_page: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",
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# 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("../os_settings.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
deps = [ deps = [
...@@ -39,7 +40,6 @@ js_library("timezone_browser_proxy") { ...@@ -39,7 +40,6 @@ js_library("timezone_browser_proxy") {
js_library("timezone_selector") { js_library("timezone_selector") {
deps = [ deps = [
":date_time_types",
"../../controls:settings_dropdown_menu", "../../controls:settings_dropdown_menu",
"../../prefs:prefs_behavior", "../../prefs:prefs_behavior",
"//ui/webui/resources/js:cr", "//ui/webui/resources/js:cr",
...@@ -57,17 +57,18 @@ js_library("timezone_subpage") { ...@@ -57,17 +57,18 @@ js_library("timezone_subpage") {
] ]
} }
# 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 = [ # ":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"
#} ]
}
js_library("date_time_page.m") { js_library("date_time_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/date_time_page.m.js" ]
...@@ -96,7 +97,11 @@ js_library("timezone_browser_proxy.m") { ...@@ -96,7 +97,11 @@ js_library("timezone_browser_proxy.m") {
js_library("timezone_selector.m") { js_library("timezone_selector.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.m.js" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.m.js" ]
deps = [ deps = [
# TODO: Fill those in. "../../controls:settings_dropdown_menu.m",
"../../prefs:prefs_behavior.m",
"../../prefs:prefs_types.m",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:load_time_data.m",
] ]
extra_deps = [ ":timezone_selector_module" ] extra_deps = [ ":timezone_selector_module" ]
} }
...@@ -137,6 +142,9 @@ polymer_modulizer("timezone_selector") { ...@@ -137,6 +142,9 @@ polymer_modulizer("timezone_selector") {
js_file = "timezone_selector.js" js_file = "timezone_selector.js"
html_file = "timezone_selector.html" html_file = "timezone_selector.html"
html_type = "dom-module" html_type = "dom-module"
migrated_imports = os_settings_migrated_imports
namespace_rewrites = os_settings_namespace_rewrites
auto_imports = os_settings_auto_imports
} }
polymer_modulizer("timezone_subpage") { polymer_modulizer("timezone_subpage") {
......
<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/i18n_behavior.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="../../controls/settings_dropdown_menu.html"> <link rel="import" href="../../controls/settings_dropdown_menu.html">
<link rel="import" href="../../i18n_setup.html"> <link rel="import" href="../../i18n_setup.html">
<link rel="import" href="../../prefs/prefs_behavior.html"> <link rel="import" href="../../prefs/prefs_behavior.html">
<link rel="import" href="../../prefs/prefs_types.html">
<link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_shared_css.html">
<link rel="import" href="date_time_types.html">
<dom-module id="timezone-selector"> <dom-module id="timezone-selector">
<template> <template>
......
...@@ -5,13 +5,11 @@ ...@@ -5,13 +5,11 @@
/** /**
* @fileoverview 'timezone-selector' is the time zone selector dropdown. * @fileoverview 'timezone-selector' is the time zone selector dropdown.
*/ */
(function() {
'use strict';
Polymer({ Polymer({
is: 'timezone-selector', is: 'timezone-selector',
behaviors: [I18nBehavior, PrefsBehavior], behaviors: [PrefsBehavior],
properties: { properties: {
/** /**
...@@ -179,4 +177,3 @@ Polymer({ ...@@ -179,4 +177,3 @@ Polymer({
prefResolveOnOffValue; prefResolveOnOffValue;
}, },
}); });
})();
...@@ -7,44 +7,43 @@ import("//ui/webui/resources/cr_components/chromeos/os_cr_components.gni") ...@@ -7,44 +7,43 @@ import("//ui/webui/resources/cr_components/chromeos/os_cr_components.gni")
import("//ui/webui/resources/cr_elements/chromeos/os_cr_elements.gni") import("//ui/webui/resources/cr_elements/chromeos/os_cr_elements.gni")
import("../settings.gni") import("../settings.gni")
os_settings_namespace_rewrites = os_settings_namespace_rewrites = settings_namespace_rewrites +
settings_namespace_rewrites + cr_components_chromeos_namespace_rewrites + cr_components_chromeos_namespace_rewrites +
cr_elements_chromeos_namespace_rewrites + cr_elements_chromeos_namespace_rewrites + [
[ "parental_controls.ParentalControlsBrowserProxy|ParentalControlsBrowserProxy",
"parental_controls.ParentalControlsBrowserProxy|ParentalControlsBrowserProxy", "settings.AccountManagerBrowserProxy|AccountManagerBrowserProxy",
"settings.AccountManagerBrowserProxy|AccountManagerBrowserProxy", "settings.AmbientModeBrowserProxy|AmbientModeBrowserProxy",
"settings.AmbientModeBrowserProxy|AmbientModeBrowserProxy", "settings.ChangePictureBrowserProxy|ChangePictureBrowserProxy",
"settings.ChangePictureBrowserProxy|ChangePictureBrowserProxy", "settings.DefaultImage|DefaultImage",
"settings.DefaultImage|DefaultImage", "settings.KerberosAccountsBrowserProxy|KerberosAccountsBrowserProxy",
"settings.KerberosAccountsBrowserProxy|KerberosAccountsBrowserProxy", "settings.KerberosErrorType|KerberosErrorType",
"settings.KerberosErrorType|KerberosErrorType", "settings.KerberosConfigErrorCode|KerberosConfigErrorCode",
"settings.KerberosConfigErrorCode|KerberosConfigErrorCode", "settings.MultiDeviceBrowserProxy|MultiDeviceBrowserProxy",
"settings.MultiDeviceBrowserProxy|MultiDeviceBrowserProxy", "settings.MultiDeviceSettingsMode|MultiDeviceSettingsMode",
"settings.MultiDeviceSettingsMode|MultiDeviceSettingsMode", "settings.MultiDeviceFeature|MultiDeviceFeature",
"settings.MultiDeviceFeature|MultiDeviceFeature", "settings.MultiDeviceFeatureState|MultiDeviceFeatureState",
"settings.MultiDeviceFeatureState|MultiDeviceFeatureState", "settings.MultiDevicePageContentData|MultiDevicePageContentData",
"settings.MultiDevicePageContentData|MultiDevicePageContentData", "settings.LanguagesMetricsProxy|LanguagesMetricsProxy",
"settings.LanguagesMetricsProxy|LanguagesMetricsProxy", "settings.LanguagesPageInteraction|LanguagesPageInteraction",
"settings.LanguagesPageInteraction|LanguagesPageInteraction", "settings.OsResetBrowserProxy|OsResetBrowserProxy",
"settings.OsResetBrowserProxy|OsResetBrowserProxy", "settings.RouteObserverBehavior|RouteObserverBehavior",
"settings.RouteObserverBehavior|RouteObserverBehavior", "settings.Route|Route",
"settings.Route|Route", "settings.routes|routes",
"settings.routes|routes", "settings.recordSettingChange|recordSettingChange",
"settings.recordSettingChange|recordSettingChange", "settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState",
"settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState", "settings.WallpaperBrowserProxy|WallpaperBrowserProxy",
"settings.WallpaperBrowserProxy|WallpaperBrowserProxy", "settings.FingerprintBrowserProxy|FingerprintBrowserProxy",
"settings.FingerprintBrowserProxy|FingerprintBrowserProxy", "settings.FingerprintResultType|FingerprintResultType",
"settings.FingerprintResultType|FingerprintResultType", "settings.recordLockScreenProgress|recordLockScreenProgress",
"settings.recordLockScreenProgress|recordLockScreenProgress", "settings.OsSyncBrowserProxy|OsSyncBrowserProxy",
"settings.OsSyncBrowserProxy|OsSyncBrowserProxy", "settings.FingerprintInfo|FingerprintInfo",
"settings.FingerprintInfo|FingerprintInfo", "settings.FingerprintSetupStep|FingerprintSetupStep",
"settings.FingerprintSetupStep|FingerprintSetupStep", "settings.FingerprintAttempt|FingerprintAttempt",
"settings.FingerprintAttempt|FingerprintAttempt", "settings.FingerprintScan|FingerprintScan",
"settings.FingerprintScan|FingerprintScan", "settings.KerberosAccount|KerberosAccount",
"settings.KerberosAccount|KerberosAccount", "settings.OsSyncPrefs|OsSyncPrefs",
"settings.OsSyncPrefs|OsSyncPrefs", "settings.ValidateKerberosConfigResult|ValidateKerberosConfigResult",
"settings.ValidateKerberosConfigResult|ValidateKerberosConfigResult", ]
]
os_settings_auto_imports = settings_auto_imports + os_settings_auto_imports = settings_auto_imports +
cr_components_chromeos_auto_imports + cr_components_chromeos_auto_imports +
...@@ -68,6 +67,7 @@ os_settings_auto_imports = settings_auto_imports + ...@@ -68,6 +67,7 @@ os_settings_auto_imports = settings_auto_imports +
"chrome/browser/resources/settings/chromeos/personalization_page/wallpaper_browser_proxy.html|WallpaperBrowserProxy,WallpaperBrowserProxyImpl", "chrome/browser/resources/settings/chromeos/personalization_page/wallpaper_browser_proxy.html|WallpaperBrowserProxy,WallpaperBrowserProxyImpl",
"chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_browser_proxy.html|ParentalControlsBrowserProxy,ParentalControlsBrowserProxyImpl", "chrome/browser/resources/settings/chromeos/parental_controls_page/parental_controls_browser_proxy.html|ParentalControlsBrowserProxy,ParentalControlsBrowserProxyImpl",
"chrome/browser/resources/settings/chromeos/route_origin_behavior.html|RouteOriginBehaviorImpl,RouteOriginBehavior", "chrome/browser/resources/settings/chromeos/route_origin_behavior.html|RouteOriginBehaviorImpl,RouteOriginBehavior",
"chrome/browser/resources/settings/controls/settings_dropdown_menu.html|DropdownMenuOptionList",
"chrome/browser/resources/settings/lifetime_browser_proxy.html|LifetimeBrowserProxy,LifetimeBrowserProxyImpl", "chrome/browser/resources/settings/lifetime_browser_proxy.html|LifetimeBrowserProxy,LifetimeBrowserProxyImpl",
"chrome/browser/resources/settings/people_page/account_manager_browser_proxy.html|AccountManagerBrowserProxy,AccountManagerBrowserProxyImpl,Account", "chrome/browser/resources/settings/people_page/account_manager_browser_proxy.html|AccountManagerBrowserProxy,AccountManagerBrowserProxyImpl,Account",
"chrome/browser/resources/settings/people_page/profile_info_browser_proxy.html|ProfileInfoBrowserProxyImpl,ProfileInfoBrowserProxy,ProfileInfo", "chrome/browser/resources/settings/people_page/profile_info_browser_proxy.html|ProfileInfoBrowserProxyImpl,ProfileInfoBrowserProxy,ProfileInfo",
......
...@@ -19,6 +19,7 @@ import './os_people_page/kerberos_accounts.m.js'; ...@@ -19,6 +19,7 @@ import './os_people_page/kerberos_accounts.m.js';
import './parental_controls_page/parental_controls_page.m.js'; 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';
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';
......
...@@ -62,6 +62,11 @@ ...@@ -62,6 +62,11 @@
use_base_dir="false" use_base_dir="false"
compress="false" compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_DROPDOWN_MENU_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/controls/settings_dropdown_menu.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_PEOPLE_PAGE_ACCOUNT_MANAGER_BROWSER_PROXY_M_JS" <include name="IDR_OS_SETTINGS_PEOPLE_PAGE_ACCOUNT_MANAGER_BROWSER_PROXY_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.m.js" file="${root_gen_dir}/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.m.js"
use_base_dir="false" use_base_dir="false"
...@@ -455,4 +460,14 @@ ...@@ -455,4 +460,14 @@
file="chromeos/os_settings.js" file="chromeos/os_settings.js"
compress="false" compress="false"
type="BINDATA" /> type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_DATE_TIME_PAGE_DATE_TIME_TYPES_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/date_time_types.m.js"
use_base_dir="false"
compress="false"
type="BINDATA" />
<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"
use_base_dir="false"
compress="false"
type="BINDATA" />
</grit-part> </grit-part>
...@@ -262,6 +262,7 @@ if (include_js_tests) { ...@@ -262,6 +262,7 @@ if (include_js_tests) {
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/personalization_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/personalization_page_test.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",
] ]
} }
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
......
...@@ -58,6 +58,7 @@ js_modulizer("modulize") { ...@@ -58,6 +58,7 @@ js_modulizer("modulize") {
"test_multidevice_browser_proxy.js", "test_multidevice_browser_proxy.js",
"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",
] ]
namespace_rewrites = namespace_rewrites =
os_settings_namespace_rewrites + os_test_namespace_rewrites os_settings_namespace_rewrites + os_test_namespace_rewrites
......
...@@ -1531,4 +1531,23 @@ TEST_F('OSSettingsSwitchAccessSubpageTest', 'AllJsTests', () => { ...@@ -1531,4 +1531,23 @@ TEST_F('OSSettingsSwitchAccessSubpageTest', 'AllJsTests', () => {
mocha.run(); mocha.run();
}); });
// Tests for the Date Time timezone selector
// eslint-disable-next-line no-var
var OSSettingsTimezoneSelectorTest = class extends OSSettingsBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload +
'chromeos/date_time_page/timezone_selector.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat(['timezone_selector_test.js']);
}
};
TEST_F('OSSettingsTimezoneSelectorTest', 'AllJsTests', () => {
mocha.run();
});
GEN('#endif // defined(NDEBUG)'); GEN('#endif // defined(NDEBUG)');
...@@ -54,6 +54,7 @@ var OSSettingsV3BrowserTest = class extends PolymerTest { ...@@ -54,6 +54,7 @@ var OSSettingsV3BrowserTest = class extends PolymerTest {
['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'], ['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'],
['PeoplePageKerberosAccounts', 'people_page_kerberos_accounts_test.m.js'], ['PeoplePageKerberosAccounts', 'people_page_kerberos_accounts_test.m.js'],
['PrivacyPage', 'os_privacy_page_test.m.js'], ['PrivacyPage', 'os_privacy_page_test.m.js'],
['TimezoneSelector', 'timezone_selector_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 {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('TimezoneSelectorTests', function() {
/** @type {TimezoneSelector} */
let timezoneSelector = null;
setup(function() {
PolymerTest.clearBody();
});
teardown(function() {
timezoneSelector.remove();
});
test('Per-user timezone disabled', async () => {
timezoneSelector = document.createElement('timezone-selector');
timezoneSelector.prefs = {
'cros': {
'flags': {
'per_user_timezone_enabled': {
value: false,
}
}
}
};
document.body.appendChild(timezoneSelector);
Polymer.dom.flush();
assertEquals(null, timezoneSelector.$$('#userTimeZoneSelector'));
assertEquals(null, timezoneSelector.$$('#systemTimezoneSelector'));
});
test('Per-user timezone enabled', async () => {
timezoneSelector = document.createElement('timezone-selector');
timezoneSelector.prefs = {
'cros': {
'flags': {
'per_user_timezone_enabled': {
value: true,
}
}
}
};
document.body.appendChild(timezoneSelector);
Polymer.dom.flush();
const userTimezoneSelector =
assert(timezoneSelector.$$('#userTimeZoneSelector'));
const systemTimezoneSelector =
assert(timezoneSelector.$$('#systemTimezoneSelector'));
});
});
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