Chromium Code Reviews

Unified Diff: chrome/test/data/webui/settings/device_page_tests.js

Issue 2853113004: chromeos: Add settings to control power management prefs. (Closed)
Patch Set: add c++ and js tests Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: chrome/test/data/webui/settings/device_page_tests.js
diff --git a/chrome/test/data/webui/settings/device_page_tests.js b/chrome/test/data/webui/settings/device_page_tests.js
index 227fcfeb362b998d64f4a9bfefae064d592f2c51..c7e678b6e3710afd86212056819a0d343088a087 100644
--- a/chrome/test/data/webui/settings/device_page_tests.js
+++ b/chrome/test/data/webui/settings/device_page_tests.js
@@ -20,6 +20,7 @@ cr.define('device_page_tests', function() {
function TestDevicePageBrowserProxy() {
this.keyboardShortcutsOverlayShown_ = 0;
this.updatePowerStatusCalled_ = 0;
+ this.requestPowerManagementSettingsCalled_ = 0;
this.onNoteTakingAppsUpdated_ = null;
this.requestNoteTakingApps_ = 0;
this.setPreferredNoteTakingApp_ = '';
@@ -65,6 +66,21 @@ cr.define('device_page_tests', function() {
this.powerSourceId_ = powerSourceId;
},
+ /** @override */
+ requestPowerManagementSettings: function() {
+ this.requestPowerManagementSettingsCalled_++;
+ },
+
+ /** @override */
+ setIdleBehavior: function(behavior) {
+ this.idleBehavior_ = behavior;
+ },
+
+ /** @override */
+ setLidClosedBehavior: function(behavior) {
+ this.lidClosedBehavior_ = behavior;
+ },
+
/** @override */
setNoteTakingAppsUpdatedCallback: function(callback) {
this.onNoteTakingAppsUpdated_ = callback;
@@ -241,6 +257,27 @@ cr.define('device_page_tests', function() {
});
};
+ /**
+ * @param {settings.IdleBehavior} idleBehavior
+ * @param {boolean} idleManaged
+ * @param {settings.LidClosedBehavior} lidClosedBehavior
+ * @param {boolean} lidClosedManaged
+ * @param {boolean} hasLid
+ */
+ function sendPowerManagementSettings(idleBehavior, idleManaged,
+ lidClosedBehavior, lidClosedManaged,
+ hasLid) {
+ cr.webUIListenerCallback(
+ 'power-management-settings-changed',
+ {
+ idleBehavior: idleBehavior,
+ idleManaged: idleManaged,
+ lidClosedBehavior: lidClosedBehavior,
+ lidClosedManaged: lidClosedManaged,
+ hasLid: hasLid,
+ });
michaelpg 2017/06/16 01:35:01 after changing the handler to this.async (prior co
+ };
+
/**
* @param {!HTMLElement} pointersPage
* @param {boolean} expected
@@ -593,6 +630,13 @@ cr.define('device_page_tests', function() {
}
suite('no power settings', function() {
+ suiteSetup(function() {
+ // Never show power settings.
+ loadTimeData.overrideValues({
+ enablePowerSettings: false,
+ });
+ });
+
test('power row hidden', function() {
assertEquals(null, devicePage.$$('#powerRow'));
assertEquals(0,
@@ -606,6 +650,8 @@ cr.define('device_page_tests', function() {
var powerSourceRow;
var powerSourceWrapper;
var powerSourceSelect;
+ var idleSelect;
+ var lidClosedSelect;
suiteSetup(function() {
// Always show power settings.
@@ -626,6 +672,17 @@ cr.define('device_page_tests', function() {
1,
settings.DevicePageBrowserProxyImpl.getInstance()
.updatePowerStatusCalled_);
+
+ idleSelect = assert(powerPage.$$('#idleSelect'));
+ lidClosedSelect = assert(powerPage.$$('#lidClosedSelect'));
+
+ assertEquals(
+ 1,
+ settings.DevicePageBrowserProxyImpl.getInstance()
+ .requestPowerManagementSettingsCalled_);
michaelpg 2017/06/16 01:35:00 nit: make this not private (no underscore), or add
Daniel Erat 2017/06/16 02:34:25 Acknowledged.
+ sendPowerManagementSettings(
+ settings.IdleBehavior.DISPLAY_OFF_SLEEP, false,
michaelpg 2017/06/16 01:35:00 nit: add comments for parameter names for these bo
Daniel Erat 2017/06/16 02:34:25 Done.
+ settings.LidClosedBehavior.SUSPEND, false, true);
});
});
@@ -700,6 +757,84 @@ cr.define('device_page_tests', function() {
powerSource.id,
settings.DevicePageBrowserProxyImpl.getInstance().powerSourceId_);
});
+
+ test('set idle behavior', function() {
+ idleSelect.value = settings.IdleBehavior.DISPLAY_ON;
+ idleSelect.dispatchEvent(new CustomEvent('change'));
michaelpg 2017/06/16 01:35:00 maybe make a helper function selectValue(selectId,
Daniel Erat 2017/06/16 02:34:25 Done.
+ Polymer.dom.flush();
+ expectEquals(
+ settings.IdleBehavior.DISPLAY_ON,
+ settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_);
+
+ idleSelect.value = settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE;
+ idleSelect.dispatchEvent(new CustomEvent('change'));
+ Polymer.dom.flush();
+ expectEquals(
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE,
+ settings.DevicePageBrowserProxyImpl.getInstance().idleBehavior_);
+ });
+
+ test('set lid behavior', function() {
+ lidClosedSelect.value = settings.LidClosedBehavior.DO_NOTHING;
+ lidClosedSelect.dispatchEvent(new CustomEvent('change'));
+ Polymer.dom.flush();
+ expectEquals(
+ settings.LidClosedBehavior.DO_NOTHING,
+ settings.DevicePageBrowserProxyImpl.getInstance()
+ .lidClosedBehavior_);
+
+ lidClosedSelect.value = settings.LidClosedBehavior.SUSPEND;
+ lidClosedSelect.dispatchEvent(new CustomEvent('change'));
+ Polymer.dom.flush();
+ expectEquals(
+ settings.LidClosedBehavior.SUSPEND,
+ settings.DevicePageBrowserProxyImpl.getInstance()
+ .lidClosedBehavior_);
+ });
+
+ test('display idle and lid behavior', function() {
+ sendPowerManagementSettings(
+ settings.IdleBehavior.DISPLAY_ON, false,
+ settings.LidClosedBehavior.DO_NOTHING, false, true);
+ expectEquals(
+ settings.IdleBehavior.DISPLAY_ON.toString(), idleSelect.value);
+ expectFalse(idleSelect.disabled);
+ expectEquals(null, powerPage.$$('#idleManagedIndicator'));
+ expectEquals(
+ settings.LidClosedBehavior.DO_NOTHING.toString(),
+ lidClosedSelect.value);
+ expectFalse(lidClosedSelect.disabled);
+ expectEquals(null, powerPage.$$('#lidClosedManagedIndicator'));
+
+ sendPowerManagementSettings(
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE, false,
+ settings.LidClosedBehavior.SUSPEND, false, true);
+ expectEquals(
+ settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE.toString(),
+ idleSelect.value);
+ expectFalse(idleSelect.disabled);
+ expectEquals(null, powerPage.$$('#idleManagedIndicator'));
+ expectEquals(
+ settings.LidClosedBehavior.SUSPEND.toString(),
+ lidClosedSelect.value);
+ expectFalse(lidClosedSelect.disabled);
+ expectEquals(null, powerPage.$$('#lidClosedManagedIndicator'));
+
+ // When settings are managed, the selects should be disabled and the
+ // indicators should be shown.
+ sendPowerManagementSettings(
+ settings.IdleBehavior.OTHER, true,
+ settings.LidClosedBehavior.SUSPEND, true, true);
+ expectEquals(
+ settings.IdleBehavior.OTHER.toString(), idleSelect.value);
+ expectTrue(idleSelect.disabled);
+ expectTrue(powerPage.$$('#idleManagedIndicator') != null);
michaelpg 2017/06/16 01:35:00 expectNotEquals (or often we just expectTrue(!!foo
Daniel Erat 2017/06/16 02:34:25 Done.
+ expectEquals(
+ settings.LidClosedBehavior.SUSPEND.toString(),
+ lidClosedSelect.value);
+ expectTrue(lidClosedSelect.disabled);
+ expectTrue(powerPage.$$('#lidClosedManagedIndicator') != null);
+ });
});
});

Powered by Google App Engine