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") {
is_polymer3 = true
deps = [
# ":date_time_page.m",
# ":date_time_types.m",
# ":timezone_browser_proxy.m",
":date_time_types.m",
":timezone_browser_proxy.m",
":timezone_selector.m",
# ":timezone_subpage.m"
":timezone_subpage.m",
]
}
......@@ -81,15 +79,16 @@ js_library("date_time_page.m") {
js_library("date_time_types.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/date_time_types.m.js" ]
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") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_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" ]
}
......@@ -109,7 +108,12 @@ js_library("timezone_selector.m") {
js_library("timezone_subpage.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/date_time_page/timezone_subpage.m.js" ]
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" ]
}
......@@ -119,7 +123,6 @@ import("//tools/polymer/polymer.gni")
group("polymer3_elements") {
public_deps = [
":date_time_page_module",
":date_time_types_module",
":modulize",
":timezone_selector_module",
":timezone_subpage_module",
......@@ -132,12 +135,6 @@ polymer_modulizer("date_time_page") {
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") {
js_file = "timezone_selector.js"
html_file = "timezone_selector.html"
......@@ -151,10 +148,22 @@ polymer_modulizer("timezone_subpage") {
js_file = "timezone_subpage.js"
html_file = "timezone_subpage.html"
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")
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() {
* in sync with TimeZoneResolverManager::TimeZoneResolveMethod enum.
* @enum {number}
*/
const TimeZoneAutoDetectMethod = {
/* #export */ const TimeZoneAutoDetectMethod = {
DISABLED: 0,
IP_ONLY: 1,
SEND_WIFI_ACCESS_POINTS: 2,
......
......@@ -2,16 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// 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. */
cr.define('settings', function() {
/** @interface */
class TimeZoneBrowserProxy {
/* #export */ class TimeZoneBrowserProxy {
/** Notifies C++ code to show parent access code verification view. */
showParentAccessForTimeZone() {}
}
/** @implements {settings.TimeZoneBrowserProxy} */
class TimeZoneBrowserProxyImpl {
/* #export */ class TimeZoneBrowserProxyImpl {
/** @override */
showParentAccessForTimeZone() {
chrome.send('handleShowParentAccessForTimeZone');
......
<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/settings_radio_group.html">
<link rel="import" href="../../prefs/prefs.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="../os_route.html">
<link rel="import" href="date_time_types.html">
<link rel="import" href="timezone_browser_proxy.html">
<link rel="import" href="timezone_selector.html">
......
......@@ -56,6 +56,8 @@ os_settings_namespace_rewrites = settings_namespace_rewrites +
"settings.Router|Router",
"settings.routes|routes",
"settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState",
"settings.TimeZoneAutoDetectMethod|TimeZoneAutoDetectMethod",
"settings.TimeZoneBrowserProxyImpl|TimeZoneBrowserProxyImpl",
"settings.ValidateKerberosConfigResult|ValidateKerberosConfigResult",
"settings.WallpaperBrowserProxy|WallpaperBrowserProxy",
]
......
......@@ -18,6 +18,7 @@ import './parental_controls_page/parental_controls_page.m.js';
import './os_people_page/os_people_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_subpage.m.js';
export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js';
export {dataUsageStringToEnum, NearbyShareDataUsage} from '../nearby_share_page/types.m.js';
......
......@@ -390,6 +390,11 @@
use_base_dir="false"
compress="false"
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"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_icons.m.js"
use_base_dir="false"
......@@ -525,9 +530,19 @@
use_base_dir="false"
compress="false"
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"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/date_time_page/timezone_selector.m.js"
use_base_dir="false"
compress="false"
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>
......@@ -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_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_subpage_test.m.js",
]
}
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
......
......@@ -63,6 +63,7 @@ js_modulizer("modulize") {
"test_wallpaper_browser_proxy.js",
"test_os_sync_browser_proxy.js",
"timezone_selector_test.js",
"timezone_subpage_test.js",
]
namespace_rewrites =
os_settings_namespace_rewrites + os_test_namespace_rewrites
......
......@@ -1550,4 +1550,23 @@ TEST_F('OSSettingsTimezoneSelectorTest', 'AllJsTests', () => {
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)');
......@@ -58,6 +58,7 @@ var OSSettingsV3BrowserTest = class extends PolymerTest {
['ResetPage', 'os_reset_page_test.m.js'],
['SmartInputsPage', 'smart_inputs_page_test.m.js'],
['TimezoneSelector', 'timezone_selector_test.m.js'],
['TimezoneSubpage', 'timezone_subpage_test.m.js'],
].forEach(test => registerTest(...test));
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