Commit 5d7d283c authored by Jimmy Gong's avatar Jimmy Gong Committed by Chromium LUCI CQ

Power settings: Remove 'While Charging' dropdown for devices that do not have an internal battery

If a device has no internal battery, it made no sense to use the phrase
"While charging" as it implies that there is a battery to be charged.
This change moves the idle power dropdown to the "When idle" section.

Screenshot: https://screenshot.googleplex.com/4qDUBZaQWDFyRwj

Fixed: 1096675
Test: browser_tests
Change-Id: Ib7e8cd1331b92ac9bf420d32833f14486f07befd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2616800Reviewed-by: default avatarRegan Hsu <hsuregan@chromium.org>
Commit-Queue: Jimmy Gong <jimmyxgong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#841647}
parent ac58ad3c
...@@ -53,35 +53,55 @@ ...@@ -53,35 +53,55 @@
</div> </div>
</div> </div>
<div id="powerIdleLabel" <div class$="cr-row [[getFirst_(batteryStatus_.present)]]">
class$="cr-row [[getFirst_(batteryStatus_.present)]]" <div id="powerIdleLabel" class="flex" aria-label="true">
aria-label="true"> $i18n{powerIdleLabel}
$i18n{powerIdleLabel}
</div>
<div class="cr-row indented first">
<div class="flex" aria-hidden="true">
$i18n{powerIdleWhileChargingLabel}
</div> </div>
<template is="dom-if" if="[[acIdleManaged_]]" restamp> <template is="dom-if" if="[[!batteryStatus_.present]]" restamp>
<cr-policy-indicator id="acIdleManagedIndicator" <template is="dom-if" if="[[acIdleManaged_]]" restamp>
indicator-type="devicePolicy" <cr-policy-indicator id="noBatteryAcIdleManagedIndicator"
icon-aria-label="$i18n{powerIdleWhileChargingAriaLabel}"> indicator-type="devicePolicy"
</cr-policy-indicator> icon-aria-label="$i18n{powerIdleWhileChargingAriaLabel}">
</template> </cr-policy-indicator>
<select id="acIdleSelect" class="md-select"
on-change="onAcIdleSelectChange_"
disabled="[[shouldAcIdleSelectBeDisabled_]]"
aria-label="$i18n{powerIdleWhileChargingAriaLabel}"
deep-link-focus-id$="[[Setting.kPowerIdleBehaviorWhileCharging]]">
<template is="dom-repeat" items="[[acIdleOptions_]]">
<option value="[[item.value]]" selected="[[item.selected]]">
[[item.name]]
</option>
</template> </template>
</select> <select id="noBatteryAcIdleSelect" class="md-select"
on-change="onAcIdleSelectChange_"
disabled="[[shouldAcIdleSelectBeDisabled_]]"
aria-label="$i18n{powerIdleWhileChargingAriaLabel}"
deep-link-focus-id$="[[Setting.kPowerIdleBehaviorWhileCharging]]">
<template is="dom-repeat" items="[[acIdleOptions_]]">
<option value="[[item.value]]" selected="[[item.selected]]">
[[item.name]]
</option>
</template>
</select>
</template>
</div> </div>
<template is="dom-if" if="[[batteryStatus_.present]]" restamp> <template is="dom-if" if="[[batteryStatus_.present]]" restamp>
<div id="acIdleSettingBox" class="cr-row indented first">
<div class="flex" aria-hidden="true">
$i18n{powerIdleWhileChargingLabel}
</div>
<template is="dom-if" if="[[acIdleManaged_]]" restamp>
<cr-policy-indicator id="acIdleManagedIndicator"
indicator-type="devicePolicy"
icon-aria-label="$i18n{powerIdleWhileChargingAriaLabel}">
</cr-policy-indicator>
</template>
<select id="acIdleSelect" class="md-select"
on-change="onAcIdleSelectChange_"
disabled="[[shouldAcIdleSelectBeDisabled_]]"
aria-label="$i18n{powerIdleWhileChargingAriaLabel}"
deep-link-focus-id$="[[Setting.kPowerIdleBehaviorWhileCharging]]">
<template is="dom-repeat" items="[[acIdleOptions_]]">
<option value="[[item.value]]" selected="[[item.selected]]">
[[item.name]]
</option>
</template>
</select>
</div>
<div id="batteryIdleSettingBox" class="cr-row indented"> <div id="batteryIdleSettingBox" class="cr-row indented">
<div class="flex" aria-hidden="true"> <div class="flex" aria-hidden="true">
$i18n{powerIdleWhileOnBatteryLabel} $i18n{powerIdleWhileOnBatteryLabel}
......
...@@ -1547,7 +1547,6 @@ cr.define('device_page_tests', function() { ...@@ -1547,7 +1547,6 @@ cr.define('device_page_tests', function() {
settings.DevicePageBrowserProxyImpl.getInstance() settings.DevicePageBrowserProxyImpl.getInstance()
.updatePowerStatusCalled_); .updatePowerStatusCalled_);
acIdleSelect = assert(powerPage.$$('#acIdleSelect'));
lidClosedToggle = assert(powerPage.$$('#lidClosedToggle')); lidClosedToggle = assert(powerPage.$$('#lidClosedToggle'));
assertEquals( assertEquals(
...@@ -1587,9 +1586,13 @@ cr.define('device_page_tests', function() { ...@@ -1587,9 +1586,13 @@ cr.define('device_page_tests', function() {
// Power source row is hidden since there's no battery. // Power source row is hidden since there's no battery.
assertTrue(powerSourceRow.hidden); assertTrue(powerSourceRow.hidden);
// Idle settings while on battery should not be visible if the // Idle settings while on battery and while charging should not be
// battery is not present. // visible if the battery is not present.
assertEquals(null, powerPage.$$('#batteryIdleSettingBox')); assertEquals(null, powerPage.$$('#batteryIdleSettingBox'));
assertEquals(null, powerPage.$$('#acIdleSettingBox'));
// Expect the "When idle" dropdown options to appear instead.
assert(powerPage.$$('#noBatteryAcIdleSelect'));
}); });
test('power sources', function() { test('power sources', function() {
...@@ -1666,6 +1669,19 @@ cr.define('device_page_tests', function() { ...@@ -1666,6 +1669,19 @@ cr.define('device_page_tests', function() {
}); });
test('set AC idle behavior', function() { test('set AC idle behavior', function() {
const batteryStatus = {
present: true,
charging: false,
calculating: false,
percent: 50,
statusText: '5 hours left',
};
cr.webUIListenerCallback(
'battery-status-changed', Object.assign({}, batteryStatus));
setPowerSources([], '', false);
Polymer.dom.flush();
acIdleSelect = assert(powerPage.$$('#acIdleSelect'));
selectValue(acIdleSelect, settings.IdleBehavior.DISPLAY_ON); selectValue(acIdleSelect, settings.IdleBehavior.DISPLAY_ON);
expectEquals( expectEquals(
settings.IdleBehavior.DISPLAY_ON, settings.IdleBehavior.DISPLAY_ON,
...@@ -1885,6 +1901,7 @@ cr.define('device_page_tests', function() { ...@@ -1885,6 +1901,7 @@ cr.define('device_page_tests', function() {
}); });
}) })
.then(function() { .then(function() {
acIdleSelect = assert(powerPage.$$('#acIdleSelect'));
const batteryIdleSelect = const batteryIdleSelect =
assert(powerPage.$$('#batteryIdleSelect')); assert(powerPage.$$('#batteryIdleSelect'));
expectEquals( expectEquals(
...@@ -1971,6 +1988,7 @@ cr.define('device_page_tests', function() { ...@@ -1971,6 +1988,7 @@ cr.define('device_page_tests', function() {
powerPage.async(resolve); powerPage.async(resolve);
}) })
.then(function() { .then(function() {
acIdleSelect = assert(powerPage.$$('#acIdleSelect'));
const batteryIdleSelect = const batteryIdleSelect =
assert(powerPage.$$('#batteryIdleSelect')); assert(powerPage.$$('#batteryIdleSelect'));
expectEquals( expectEquals(
......
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